aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-06-18 16:12:23 -0300
committerJames Almer <jamrial@gmail.com>2024-06-20 17:02:50 -0300
commit1044c09ecae478fea33f80c13f94c7381a8f0a24 (patch)
tree9d5afdd9d00c16b4e0b54a2b7d5a34261d6e7939
parent7f1b590480e7519e25ac9fcd99b0f9916fb03462 (diff)
downloadffmpeg-1044c09ecae478fea33f80c13f94c7381a8f0a24.tar.gz
avutil/mastering_display_metadata: set a sane default value for AVRational fields
Prevent potential divisions by 0 when using them immediately after allocation. Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavutil/mastering_display_metadata.c16
-rw-r--r--libavutil/version.h2
2 files changed, 16 insertions, 2 deletions
diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c
index ea41f13f9d..dd37ed7d0e 100644
--- a/libavutil/mastering_display_metadata.c
+++ b/libavutil/mastering_display_metadata.c
@@ -25,9 +25,20 @@
#include "mastering_display_metadata.h"
#include "mem.h"
+static void get_defaults(AVMasteringDisplayMetadata *mastering)
+{
+ for (int i = 0; i < 3; i++)
+ for (int j = 0; j < 2; j++)
+ mastering->display_primaries[i][j] = (AVRational) { 0, 1 };
+ mastering->white_point[0] =
+ mastering->white_point[1] =
+ mastering->min_luminance =
+ mastering->max_luminance = (AVRational) { 0, 1 };
+}
+
AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void)
{
- return av_mallocz(sizeof(AVMasteringDisplayMetadata));
+ return av_mastering_display_metadata_alloc_size(NULL);
}
AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size)
@@ -36,6 +47,8 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *siz
if (!mastering)
return NULL;
+ get_defaults(mastering);
+
if (size)
*size = sizeof(*mastering);
@@ -51,6 +64,7 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFra
return NULL;
memset(side_data->data, 0, sizeof(AVMasteringDisplayMetadata));
+ get_defaults((AVMasteringDisplayMetadata *)side_data->data);
return (AVMasteringDisplayMetadata *)side_data->data;
}
diff --git a/libavutil/version.h b/libavutil/version.h
index 4f51d441fa..9c24b64032 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -80,7 +80,7 @@
#define LIBAVUTIL_VERSION_MAJOR 59
#define LIBAVUTIL_VERSION_MINOR 24
-#define LIBAVUTIL_VERSION_MICRO 101
+#define LIBAVUTIL_VERSION_MICRO 102
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \