On Sat, 23 Dec 2017 03:14:49 +0100 wm4 <nfx...@googlemail.com> wrote:
> This provides a generic way to the API user to deal with files that > either lack this SEI, or which have the SEI only in packets not passed > to the decoder (such as the common case of the SEI being in the very > firsat video packet, but decoding is started somewhere in the middle of > the file). Bugs like 840b41b2a643fc8f0617c0370125a19c02c6b586 make this > somewhat of a necessity. > > This intentionally uses the version in the SEI instead, if any is found. > --- > A bit crappy. Better than other workarounds I've thought of. And at > least it doesn't require the API user to guess which x264 versions > trigger which bugs. > --- > libavcodec/h264dec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > index 1e98765439..8c9c6d9f3b 100644 > --- a/libavcodec/h264dec.c > +++ b/libavcodec/h264dec.c > @@ -315,7 +315,6 @@ static int h264_init_context(AVCodecContext *avctx, > H264Context *h) > h->flags = avctx->flags; > h->poc.prev_poc_msb = 1 << 16; > h->recovery_frame = -1; > - h->x264_build = -1; > h->frame_recovered = 0; > h->poc.prev_frame_num = -1; > h->sei.frame_packing.arrangement_cancel_flag = -1; > @@ -1037,6 +1036,7 @@ static const AVOption h264_options[] = { > { "is_avc", "is avc", OFFSET(is_avc), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, > 1, 0 }, > { "nal_length_size", "nal_length_size", OFFSET(nal_length_size), > AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0 }, > { "enable_er", "Enable error resilience on damaged frames (unsafe)", > OFFSET(enable_er), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD }, > + { "x264_build", "Assume this x264 version if no x264 version found in > any SEI", OFFSET(x264_build), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VD }, > { NULL }, > }; > Pushed. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel