[FFmpeg-devel] [PATCH v7 11/14] ffmpeg: pass first video AVFrame's side data to encoder

Anton Khirnov anton at khirnov.net
Tue Mar 5 13:10:48 EET 2024


Quoting Jan Ekström (2024-02-29 17:42:58)
> This enables further configuration of output based on the results
> of input decoding and filtering in a similar manner as the color
> information.
> ---
>  fftools/ffmpeg_enc.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c
> index bdba50df03..e39ba05b3b 100644
> --- a/fftools/ffmpeg_enc.c
> +++ b/fftools/ffmpeg_enc.c
> @@ -245,6 +245,16 @@ int enc_open(void *opaque, const AVFrame *frame)
>          enc_ctx->colorspace             = frame->colorspace;
>          enc_ctx->chroma_sample_location = frame->chroma_location;
>  
> +        ret = avcodec_configure_side_data(
> +            enc_ctx,
> +            (const AVFrameSideData **)frame->side_data, frame->nb_side_data,
> +            AV_FRAME_SIDE_DATA_SET_FLAG_NO_DUPLICATES);

I'm not sure this makes sense in general.

The side data in AVCodecContext is supposed to be 'static', i.e.
applying to the whole stream. Many side data types do not make sense as
global side data (e.g. closed captions). Or it could be that the side
data is not actually static, but ffmpeg CLI will now always claim that
it is.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list