From bb90b262d6d23f1bca3587a48abc15b951cbbf05 Mon Sep 17 00:00:00 2001 From: Leo Izen Date: Wed, 5 Mar 2025 09:20:20 -0500 Subject: [PATCH] avutil/side_data: add EXIF side data type This commit adds support for the additional side data type AV_FRAME_DATA_EXIF, which contains a buffer of an EXIF metadata payload. Signed-off-by: Leo Izen --- libavutil/frame.h | 6 ++++++ libavutil/side_data.c | 1 + libavutil/version.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libavutil/frame.h b/libavutil/frame.h index d440cfba2e..d7d98e67e4 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -254,6 +254,12 @@ enum AVFrameSideDataType { * libavutil/tdrdi.h. */ AV_FRAME_DATA_3D_REFERENCE_DISPLAYS, + + /** + * Extensible image file format metadata. The payload is a buffer containing + * EXIF metadata, starting with either 49 49 2a 00, or 4d 4d 00 2a. + */ + AV_FRAME_DATA_EXIF, }; enum AVActiveFormatDescription { diff --git a/libavutil/side_data.c b/libavutil/side_data.c index fa2a2c2a13..8df117478a 100644 --- a/libavutil/side_data.c +++ b/libavutil/side_data.c @@ -53,6 +53,7 @@ static const AVSideDataDescriptor sd_props[] = { [AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT] = { "Ambient viewing environment", AV_SIDE_DATA_PROP_GLOBAL }, [AV_FRAME_DATA_SPHERICAL] = { "Spherical Mapping", AV_SIDE_DATA_PROP_GLOBAL | AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, [AV_FRAME_DATA_ICC_PROFILE] = { "ICC profile", AV_SIDE_DATA_PROP_GLOBAL | AV_SIDE_DATA_PROP_COLOR_DEPENDENT }, + [AV_FRAME_DATA_EXIF] = { "EXIF metadata", AV_SIDE_DATA_PROP_GLOBAL }, [AV_FRAME_DATA_SEI_UNREGISTERED] = { "H.26[45] User Data Unregistered SEI message", AV_SIDE_DATA_PROP_MULTI }, [AV_FRAME_DATA_VIDEO_HINT] = { "Encoding video hint", AV_SIDE_DATA_PROP_SIZE_DEPENDENT }, [AV_FRAME_DATA_3D_REFERENCE_DISPLAYS] = { "3D Reference Displays Information", AV_SIDE_DATA_PROP_GLOBAL }, diff --git a/libavutil/version.h b/libavutil/version.h index 5cde712c9f..27b9fe73d8 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 60 -#define LIBAVUTIL_VERSION_MINOR 9 +#define LIBAVUTIL_VERSION_MINOR 10 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \