[FFmpeg-devel] [PATCH] codec_desc: mark CFHD as intra-only

James Almer jamrial at gmail.com
Mon Jun 8 16:46:07 EEST 2020


On 6/8/2020 7:54 AM, Anton Khirnov wrote:
> Quoting Hendrik Leppkes (2020-06-08 12:42:08)
>> On Mon, Jun 8, 2020 at 12:22 PM Anton Khirnov <anton at khirnov.net> wrote:
>>>
>>> This stops update_thread_context() from being called with frame
>>> threading, which causes races.
>>> ---
>>>  libavcodec/codec_desc.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
>>> index 9f8847544f..5117984c75 100644
>>> --- a/libavcodec/codec_desc.c
>>> +++ b/libavcodec/codec_desc.c
>>> @@ -1520,7 +1520,7 @@ static const AVCodecDescriptor codec_descriptors[] = {
>>>          .type      = AVMEDIA_TYPE_VIDEO,
>>>          .name      = "cfhd",
>>>          .long_name = NULL_IF_CONFIG_SMALL("Cineform HD"),
>>> -        .props     = AV_CODEC_PROP_LOSSY,
>>> +        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_INTRA_ONLY,
>>>      },
>>>      {
>>>          .id        = AV_CODEC_ID_TRUEMOTION2RT,
>>> --
>>> 2.26.2
>>>
>>
>> A codec property influencing a decoder implementation behavior seems
>> iffy at best, doesn't it?
>> What if I make an intra-only implementation for a codec that
>> theoretically supports more? The information no longer matches.
>>
>> Flags changing behavior of an implementation should really be on AVCodec.
> 
> I generally agree, but that condition is already there and changing it
> to be more robust is not entirely trivial. I am planning to get to that
> as a part of some other threading work, but I did not want it to delay
> my other set which is blocked by this.

Maybe we could partially revert 13b1bbff0b (the intra only part) and
re-purpose the flag to also apply to decoders? Or only decoders,
whatever is best.

We still can seeing 4.3 wasn't tagged.


More information about the ffmpeg-devel mailing list