[FFmpeg-devel] [PATCH] h264: add AVOption to set x264_build default

Carl Eugen Hoyos ceffmpeg at gmail.com
Thu Dec 28 02:44:53 EET 2017


2017-12-28 1:35 GMT+01:00 James Almer <jamrial at gmail.com>:
> On 12/27/2017 9:31 PM, Carl Eugen Hoyos wrote:
>> 2017-12-28 0:58 GMT+01:00 wm4 <nfxjfg at googlemail.com>:
>>> On Thu, 28 Dec 2017 00:56:05 +0100
>>> Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>>
>>>> 2017-12-26 3:02 GMT+01:00 wm4 <nfxjfg at googlemail.com>:
>>>>> On Sat, 23 Dec 2017 03:14:49 +0100
>>>>> wm4 <nfxjfg at 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.
>>>>
>>>> That's a new low even for your standards.
>>>
>>> What is it now again that you're once again so obnoxious and insulting?
>>
>> Is there really no way to stop you?
>
> I don't know what's gotten into you right now, but antagonizing people

> out of nowhere without being provoked is not a welcome behavior at all.

That doesn't sound correct to me.

Carl Eugen


More information about the ffmpeg-devel mailing list