Hi there, 

I added a set of tests for libavutil/mastering_display_metadata module. I 
attached the patch in this message.


Thanks,
Petru Rares.
From 1e502305f098c9aef852e19e91ddee831cc5ebaf Mon Sep 17 00:00:00 2001
From: Petru Rares Sincraian <psincra...@outlook.com>
Date: Tue, 22 Mar 2016 11:39:08 +0100
Subject: [PATCH] Add selftest to libavutil/mastering_display_metadata

This commit adds tests for functions of libavutil/mastering_display_metadata.c
---
 libavutil/Makefile                        |  1 +
 libavutil/mastering_display_metadata.c    | 68 +++++++++++++++++++++++++++++++
 libavutil/mastering_display_metadata.h    |  1 +
 tests/fate/libavutil.mak                  |  4 ++
 tests/ref/fate/mastering_display_metadata |  0
 5 files changed, 74 insertions(+)
 create mode 100644 tests/ref/fate/mastering_display_metadata

diff --git a/libavutil/Makefile b/libavutil/Makefile
index 58df75a..3d89335 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -198,6 +198,7 @@ TESTPROGS = adler32                                                     \
             parseutils                                                  \
             pixdesc                                                     \
             pixelutils                                                  \
+            mastering_display_metadata                                  \
             random_seed                                                 \
             rational                                                    \
             ripemd                                                      \
diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c
index e1683e5..8c264a2 100644
--- a/libavutil/mastering_display_metadata.c
+++ b/libavutil/mastering_display_metadata.c
@@ -41,3 +41,71 @@ AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFra
 
     return (AVMasteringDisplayMetadata *)side_data->data;
 }
+
+#ifdef TEST
+
+static int check_alloc(void)
+{
+    int result = 0;
+    AVMasteringDisplayMetadata *original = av_mastering_display_metadata_alloc();
+
+    if (original == NULL) {
+        printf("Failed to allocate display metadata\n");
+        result = 1;
+    }
+
+    if (original)
+        av_freep(original);
+
+    return result;
+}
+
+static int check_create_side_data(void)
+{
+    int result = 0;
+    AVFrame *frame = av_frame_alloc();
+    AVMasteringDisplayMetadata *metadata;
+    AVFrameSideData *side_data;
+
+    if (frame == NULL) {
+        printf("Failed to allocate frame");
+        result = 1;
+        goto end;
+    }
+
+    metadata = av_mastering_display_metadata_create_side_data(frame);
+    if (metadata == NULL) {
+        printf("Failed to create display metadata frame side data");
+        result = 1;
+        goto end;
+    }
+
+    side_data = av_frame_get_side_data(frame, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
+    if (side_data == NULL) {
+        printf("Failed to get frame side data");
+        result = 1;
+        goto end;
+    }
+
+    if (metadata != (AVMasteringDisplayMetadata *) side_data->data) {
+        printf("Metadata and frame data are not the same attributes");
+        result = 1;
+        goto end;
+    }
+
+end:
+    if (frame)
+        av_frame_free(&frame);
+
+    return result;
+}
+
+
+int main(void)
+{
+    int result = check_alloc();
+    result = result && check_create_side_data();
+    return result;
+}
+
+#endif
diff --git a/libavutil/mastering_display_metadata.h b/libavutil/mastering_display_metadata.h
index 936533f..aeaa8b3 100644
--- a/libavutil/mastering_display_metadata.h
+++ b/libavutil/mastering_display_metadata.h
@@ -23,6 +23,7 @@
 
 #include "frame.h"
 #include "rational.h"
+#include "common.h"
 
 
 /**
diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
index 5d8e0e2..773f923 100644
--- a/tests/fate/libavutil.mak
+++ b/tests/fate/libavutil.mak
@@ -107,6 +107,10 @@ FATE_LIBAVUTIL += fate-ripemd
 fate-ripemd: libavutil/ripemd-test$(EXESUF)
 fate-ripemd: CMD = run libavutil/ripemd-test
 
+FATE_LIBAVUTIL += fate-mastering_display_metadata
+fate-mastering_display_metadata: libavutil/mastering_display_metadata-test$(EXESUF)
+fate-mastering_display_metadata: CMD = run libavutil/mastering_display_metadata-test
+
 FATE_LIBAVUTIL += fate-sha
 fate-sha: libavutil/sha-test$(EXESUF)
 fate-sha: CMD = run libavutil/sha-test
diff --git a/tests/ref/fate/mastering_display_metadata b/tests/ref/fate/mastering_display_metadata
new file mode 100644
index 0000000..e69de29
-- 
1.9.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to