diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-04 13:22:49 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-04 13:22:56 +0100 |
commit | c67ddb56da551b5afe536cf0bdc6487ccc80b8ce (patch) | |
tree | 3f013fa98d1cbcdbb94579b2d5e2b33959b09a40 /libavcodec | |
parent | a2bff49e26a9c0bc6caa5ba3b7479df7afe00342 (diff) | |
parent | 60f06f986f81c5aa0497c4fa189f50a504896c81 (diff) | |
download | ffmpeg-c67ddb56da551b5afe536cf0bdc6487ccc80b8ce.tar.gz |
Merge remote-tracking branch 'mjbshaw/master'
* mjbshaw/master:
libopenjpegenc: make dci compliant j2c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/libopenjpegenc.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 2bbbae902a..c35508376b 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -188,6 +188,35 @@ static av_cold int libopenjpeg_encode_init(AVCodecContext *avctx) ctx->enc_params.tcp_numlayers = ctx->numlayers; ctx->enc_params.tcp_rates[0] = FFMAX(avctx->compression_level, 0) * 2; + if (ctx->cinema_mode > 0) { + ctx->enc_params.irreversible = 1; + ctx->enc_params.tcp_mct = 1; + ctx->enc_params.tile_size_on = 0; + /* no subsampling */ + ctx->enc_params.cp_tdx=1; + ctx->enc_params.cp_tdy=1; + ctx->enc_params.subsampling_dx = 1; + ctx->enc_params.subsampling_dy = 1; + /* Tile and Image shall be at (0,0) */ + ctx->enc_params.cp_tx0 = 0; + ctx->enc_params.cp_ty0 = 0; + ctx->enc_params.image_offset_x0 = 0; + ctx->enc_params.image_offset_y0 = 0; + /* Codeblock size= 32*32 */ + ctx->enc_params.cblockw_init = 32; + ctx->enc_params.cblockh_init = 32; + ctx->enc_params.csty |= 0x01; + /* No ROI */ + ctx->enc_params.roi_compno = -1; + + if (ctx->enc_params.prog_order != CPRL) { + av_log(avctx, AV_LOG_ERROR, "prog_order forced to CPRL\n"); + ctx->enc_params.prog_order = CPRL; + } + ctx->enc_params.tp_flag = 'C'; + ctx->enc_params.tp_on = 1; + } + ctx->compress = opj_create_compress(ctx->format); if (!ctx->compress) { av_log(avctx, AV_LOG_ERROR, "Error creating the compressor\n"); |