[FFmpeg-devel] [PATCH 3/7] avutil/frame: add a param change side data type
Lynne
dev at lynne.ee
Wed Jan 22 05:13:58 EET 2025
On 22/01/2025 11:53, James Almer wrote:
> Equivalent to the one from packet side data using AVSideDataParamChangeFlags,
> and will be used for the same purpose with encoders.
>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavutil/frame.c | 1 +
> libavutil/frame.h | 13 +++++++++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index 10b59545f0..f3575afc31 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -48,6 +48,7 @@ static const AVSideDataDescriptor sd_props[] = {
> [AV_FRAME_DATA_DOVI_METADATA] = { "Dolby Vision Metadata", AV_SIDE_DATA_PROP_COLOR_DEPENDENT },
> [AV_FRAME_DATA_LCEVC] = { "LCEVC NAL data", AV_SIDE_DATA_PROP_SIZE_DEPENDENT },
> [AV_FRAME_DATA_VIEW_ID] = { "View ID" },
> + [AV_FRAME_DATA_PARAM_CHANGE] = { "Param Change" },
> [AV_FRAME_DATA_STEREO3D] = { "Stereo 3D", AV_SIDE_DATA_PROP_GLOBAL },
> [AV_FRAME_DATA_REPLAYGAIN] = { "AVReplayGain", AV_SIDE_DATA_PROP_GLOBAL },
> [AV_FRAME_DATA_DISPLAYMATRIX] = { "3x3 displaymatrix", AV_SIDE_DATA_PROP_GLOBAL },
> diff --git a/libavutil/frame.h b/libavutil/frame.h
> index 628f2b5b3a..de7a8e9eab 100644
> --- a/libavutil/frame.h
> +++ b/libavutil/frame.h
> @@ -243,6 +243,19 @@ enum AVFrameSideDataType {
> * The data is an int storing the view ID.
> */
> AV_FRAME_DATA_VIEW_ID,
> +
> + /**
> + * An AV_FRAME_DATA_PARAM_CHANGE side data packet is laid out as follows:
> + * @code
> + * u32le param_flags
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
> + * s32le sample_rate
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
> + * s32le width
> + * s32le height
> + * @endcode
> + */
> + AV_FRAME_DATA_PARAM_CHANGE,
Could you make the struct defined, and allocated by libavutil, like with
encode data and film grain?
That way new fields could be added in the future.
I'd also like for the FPS and timebase to be signaled. Encoders can
sometimes handle them gracefully, as its just a rate control parameter
change.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xA2FEA5F03F034464.asc
Type: application/pgp-keys
Size: 624 bytes
Desc: OpenPGP public key
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250122/40a58578/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250122/40a58578/attachment.sig>
More information about the ffmpeg-devel
mailing list