[FFmpeg-cvslog] avcodec/libopenjpegenc: Set numresolutions by default to a value that is not too large
Michael Niedermayer
git at videolan.org
Fri Jul 1 05:05:46 CEST 2016
ffmpeg | branch: release/3.0 | Michael Niedermayer <michael at niedermayer.cc> | Sun Jun 26 17:34:37 2016 +0200| [96f5019bde0f6719133a36433fec465b8538df25] | committer: James Almer
avcodec/libopenjpegenc: Set numresolutions by default to a value that is not too large
Fixes issues with libopenjpeg 2.1
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit e9394ca63dab3434bc8e869de019ecd86cb604ac)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=96f5019bde0f6719133a36433fec465b8538df25
---
libavcodec/libopenjpegenc.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index b67c320..058ca36 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -352,6 +352,12 @@ static av_cold int libopenjpeg_encode_init(AVCodecContext *avctx)
ctx->enc_params.cp_cinema = ctx->cinema_mode;
#endif
+ if (!ctx->numresolution) {
+ ctx->numresolution = 6;
+ while (FFMIN(avctx->width, avctx->height) >> ctx->numresolution < 1)
+ ctx->numresolution --;
+ }
+
ctx->enc_params.mode = !!avctx->global_quality;
ctx->enc_params.prog_order = ctx->prog_order;
ctx->enc_params.numresolution = ctx->numresolution;
@@ -814,7 +820,7 @@ static const AVOption options[] = {
{ "rpcl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ(RPCL) }, 0, 0, VE, "prog_order" },
{ "pcrl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ(PCRL) }, 0, 0, VE, "prog_order" },
{ "cprl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ(CPRL) }, 0, 0, VE, "prog_order" },
- { "numresolution", NULL, OFFSET(numresolution), AV_OPT_TYPE_INT, { .i64 = 6 }, 1, INT_MAX, VE },
+ { "numresolution", NULL, OFFSET(numresolution), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
{ "numlayers", NULL, OFFSET(numlayers), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, 10, VE },
{ "disto_alloc", NULL, OFFSET(disto_alloc), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
{ "fixed_alloc", NULL, OFFSET(fixed_alloc), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
More information about the ffmpeg-cvslog
mailing list