[FFmpeg-devel] [PATCH 16/38] lavc: add a decoder option for configuring side data preference
James Almer
jamrial at gmail.com
Fri Feb 23 19:53:33 EET 2024
On 2/23/2024 2:51 PM, Marton Balint wrote:
>
>
> On Fri, 23 Feb 2024, Anton Khirnov wrote:
>
>> This and the following commits fix #10857
>> ---
>> doc/APIchanges | 3 +++
>> libavcodec/avcodec.h | 20 ++++++++++++++++++++
>> libavcodec/decode.c | 36 ++++++++++++++++++++++++++++++++++++
>> libavcodec/options_table.h | 12 ++++++++++++
>> 4 files changed, 71 insertions(+)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index 371fd2f465..78744a674a 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -2,6 +2,9 @@ The last version increases of all libraries were on
>> 2023-02-09
>>
>> API changes, most recent first:
>>
>> +2024-02-xx - xxxxxxxxxx - lavc 60.xx.100 - avcodec.h
>> + Add AVCodecContext.[nb_]side_data_prefer_global.
>> +
>> 2024-02-xx - xxxxxxxxxx - lavu 58.xx.100 - opt.h
>> Add AV_OPT_FLAG_ARRAY and AVOption.array_max_size.
>>
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index 43859251cc..307a3e99db 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -2120,6 +2120,26 @@ typedef struct AVCodecContext {
>> * an error.
>> */
>> int64_t frame_num;
>> +
>> + /**
>> + * Decoding only. May be set by the caller before avcodec_open2()
>> to an
>> + * av_malloc()'ed array (or via AVOptions). Owned and freed by
>> the decoder
>> + * afterwards.
>> + *
>> + * By default, when some side data type is present both in global
>> + * user-supplied coded_side_data and inside the coded bitstream,
>> avcodec
>> + * will propagate the latter to the decoded frame.
>> + *
>> + * This array contains a list of AVPacketSideDataType for which this
>> + * preference should be switched, i.e. avcodec will prefer global
>> side data
>> + * over those in stored in the bytestream. It may also contain a
>> single -1,
>> + * in which case the preference is switched for all side data types.
>> + */
>> + int *side_data_prefer_global;
>
> Why is this a list and AV_OPT_FLAG_ARRAY? This simply should be a mask,
> so AV_OPT_TYPE_FLAGS.
That would effectively limit side data element types to 64.
More information about the ffmpeg-devel
mailing list