[FFmpeg-devel] [PATCH 08/11] avcodec/hevcdec: check for DOVI configuration record in AVCodecContext side data
Anton Khirnov
anton at khirnov.net
Tue Oct 3 13:18:30 EEST 2023
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.
> @@ -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.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list