ffmpeg | branch: release/3.0 | Michael Niedermayer <mich...@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 <mich...@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           
     },

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to