[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