[FFmpeg-devel] [PATCH v5 00/14] encoder AVCodecContext configuration side data

Jan Ekström jeebjp at gmail.com
Fri Dec 8 13:59:08 EET 2023


On Sun, Nov 26, 2023 at 9:58 PM Jan Ekström <jeebjp at gmail.com> wrote:
>
> Differences to v3:
> 1. rebased on top of current master
> 2. moved the addition of multiple side data entries from a generic
>    av_frame_side_data_set_extend to avcodec as per request from James.
> 4. adopted various things noted by reviews
>
> Comparison URL (mostly configure and wrappers, avutil/frame.c):
> https://github.com/jeeb/ffmpeg/compare/avcodec_cll_mdcv_side_data_v4..avcodec_cll_mdcv_side_data_v5
>
> This patch set I've now been working for a while since I felt like it was weird
> we couldn't pass through information such as static HDR metadata to encoders
> from decoded input. This initial version adds the necessary framework, as well
> as adds static HDR metadata support for libsvtav1, libx264 as well as libx265
> wrappers.
>
> An alternative to this would be to make encoders only properly initialize when
> they receive the first AVFrame, but that seems to be a bigger, nastier change
> than introducing an AVFrameSideDataSet in avctx as everything seems to
> presume that extradata etc are available after opening the encoder.
>
> Note: Any opinions on whether FFCodec or AVCodec should have
>       handled_side_data list, so that if format specific generic logic is
>       added, it could be checked whether the codec itself handles this side
>       data? This could also be utilized to list handled side data from f.ex.
>       `ffmpeg -h encoder=libsvtav1`.
>
> Jan

Ping.

I'd like to understand whether:

* people are fine with the struct which lets you pass things as a
single argument, or they would like to move all the helper functions
to counter and pointer.
* should the avcodec helper take in the struct/{counter,pointer}, or
should it instead take in a const AVFrame pointer?

as I'd like to start pulling this in, and move towards working on
implemented side data listing in AVCodecs, as well as adding generic
implementations for specific codecs (such as H.264/HEVC/AV1 having CBS
create side data generically, without the need of specific AVCodecs
implementing things),

Jan


More information about the ffmpeg-devel mailing list