From ea3c3b42dff56ab45d6674cd3d64273dd62fab58 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 29 Dec 2024 10:55:48 -0300 Subject: [PATCH] avutil/frame: add a side data prop to signal channel layout dependent types Signed-off-by: James Almer --- doc/APIchanges | 3 +++ libavutil/frame.c | 4 ++-- libavutil/frame.h | 7 +++++++ libavutil/version.h | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index e0e1ff53ae..22a93db32f 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2024-03-07 API changes, most recent first: +2025-01-25 - xxxxxxxxxx - lavu 59.56.100 - frame.h + Add AV_SIDE_DATA_PROP_CHANNEL_DEPENDENT. + 2025-01-25 - xxxxxxxxxx - lavfi 10.9.100 - buffersink.h Add av_buffersink_get_side_data(). diff --git a/libavutil/frame.c b/libavutil/frame.c index 10b59545f0..00d0bab8b5 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -31,8 +31,8 @@ static const AVSideDataDescriptor sd_props[] = { [AV_FRAME_DATA_PANSCAN] = { "AVPanScan", AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, [AV_FRAME_DATA_A53_CC] = { "ATSC A53 Part 4 Closed Captions" }, - [AV_FRAME_DATA_MATRIXENCODING] = { "AVMatrixEncoding" }, - [AV_FRAME_DATA_DOWNMIX_INFO] = { "Metadata relevant to a downmix procedure" }, + [AV_FRAME_DATA_MATRIXENCODING] = { "AVMatrixEncoding", AV_SIDE_DATA_PROP_CHANNEL_DEPENDENT }, + [AV_FRAME_DATA_DOWNMIX_INFO] = { "Metadata relevant to a downmix procedure", AV_SIDE_DATA_PROP_CHANNEL_DEPENDENT }, [AV_FRAME_DATA_AFD] = { "Active format description" }, [AV_FRAME_DATA_MOTION_VECTORS] = { "Motion vectors", AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, [AV_FRAME_DATA_SKIP_SAMPLES] = { "Skip samples" }, diff --git a/libavutil/frame.h b/libavutil/frame.h index 628f2b5b3a..49260ae2dd 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -297,6 +297,13 @@ enum AVSideDataProps { * adapting to a different set of primaries or transfer characteristics. */ AV_SIDE_DATA_PROP_COLOR_DEPENDENT = (1 << 3), + + /** + * Side data depends on the channel layout. Side data with this property + * loses its meaning when downmixing or upmixing, unless either recomputed + * or adjusted to the new layout. + */ + AV_SIDE_DATA_PROP_CHANNEL_DEPENDENT = (1 << 4), }; /** diff --git a/libavutil/version.h b/libavutil/version.h index a6f344a4c3..83b7822125 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 59 -#define LIBAVUTIL_VERSION_MINOR 55 +#define LIBAVUTIL_VERSION_MINOR 56 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \