[FFmpeg-devel] [PATCH 08/11] avcodec/hevcdec: check for DOVI configuration record in AVCodecContext side data
James Almer
jamrial at gmail.com
Tue Oct 3 22:11:45 EEST 2023
On 10/3/2023 7:18 AM, Anton Khirnov wrote:
> Quoting James Almer (2023-09-27 15:12:39)
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> libavcodec/avcodec.h | 2 +-
>> libavcodec/decode.c | 10 ++++++++++
>> libavcodec/decode.h | 3 +++
>> libavcodec/hevcdec.c | 15 ++++++++++++++-
>> 4 files changed, 28 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index da3c5234a0..48a4b73fd3 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -1903,7 +1903,7 @@ typedef struct AVCodecContext {
>> /**
>> * Additional data associated with the entire coded stream.
>> *
>> - * - decoding: unused
>> + * - decoding: set by user before calling avcodec_open2().
>
> Should be "may be set...", because it's optional.
>
> Also, I think this deserves to be mentione in APIchanges.
Ok.
>
>> @@ -3644,12 +3651,18 @@ static av_cold int hevc_decode_init(AVCodecContext *avctx)
>> atomic_init(&s->wpp_err, 0);
>>
>> if (!avctx->internal->is_copy) {
>> + const AVPacketSideData *sd;
>> +
>> if (avctx->extradata_size > 0 && avctx->extradata) {
>> ret = hevc_decode_extradata(s, avctx->extradata, avctx->extradata_size, 1);
>> if (ret < 0) {
>> return ret;
>> }
>> }
>> +
>> + sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF);
>> + if (sd && sd->size > 0)
>> + ff_dovi_update_cfg(&s->dovi_ctx, (AVDOVIDecoderConfigurationRecord *) sd->data);
>
> Do you have a sample for this? Would be very nice to have a test for
> this functionality.
There's a sample in fate, but apparently it does stream copy (testing
demux and mux code), so the hevc decoder never handles it.
More information about the ffmpeg-devel
mailing list