[FFmpeg-devel] [PATCH] Add test for avpriv_get_trc_function_from_trc function

NagaChaitanya Vellanki nagachaitanya.vellanki at gmail.com
Tue Mar 1 19:41:32 CET 2016


---
 libavutil/Makefile      |  1 +
 libavutil/color_utils.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/libavutil/Makefile b/libavutil/Makefile
index a4d79cd..934564f 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -176,6 +176,7 @@ TESTPROGS = adler32                                                     \
             bprint                                                      \
             cast5                                                       \
             camellia                                                    \
+            color_utils                                                 \
             cpu                                                         \
             crc                                                         \
             des                                                         \
diff --git a/libavutil/color_utils.c b/libavutil/color_utils.c
index b68b402..419de31 100644
--- a/libavutil/color_utils.c
+++ b/libavutil/color_utils.c
@@ -21,6 +21,7 @@
 #include <stddef.h>
 #include <math.h>
 
+#include "common.h"
 #include "libavutil/color_utils.h"
 #include "libavutil/pixfmt.h"
 
@@ -216,3 +217,54 @@ avpriv_trc_function avpriv_get_trc_function_from_trc(enum AVColorTransferCharact
     }
     return func;
 }
+
+#ifdef TEST
+// LCOV_EXCL_START
+
+static int test_avpriv_get_trc_function_from_trc(enum AVColorTransferCharacteristic trc, avpriv_trc_function func) {
+
+    if(avpriv_get_trc_function_from_trc(trc) != func) {
+        printf("Failed: invalid function returned for %d\n", trc);
+        return 1;
+    }
+
+    printf("Passed!\n");
+    return 0;
+}
+
+int main(int argc, char ** argv)
+{
+    int i, error_count = 0;
+    struct test {
+        enum AVColorTransferCharacteristic trc;
+        avpriv_trc_function func;
+    } tests[] = {
+        { AVCOL_TRC_BT709, avpriv_trc_bt709 },
+        { AVCOL_TRC_SMPTE170M, avpriv_trc_bt709 },
+    { AVCOL_TRC_BT2020_10, avpriv_trc_bt709 },
+    { AVCOL_TRC_BT2020_12, avpriv_trc_bt709 },
+    { AVCOL_TRC_GAMMA22, avpriv_trc_gamma22 },
+    { AVCOL_TRC_GAMMA28, avpriv_trc_gamma28 },
+    { AVCOL_TRC_SMPTE240M, avpriv_trc_smpte240M },
+    { AVCOL_TRC_LINEAR, avpriv_trc_linear },
+    { AVCOL_TRC_LOG, avpriv_trc_log },
+    { AVCOL_TRC_LOG_SQRT, avpriv_trc_log_sqrt },
+    { AVCOL_TRC_IEC61966_2_4, avpriv_trc_iec61966_2_4 },
+    { AVCOL_TRC_BT1361_ECG, avpriv_trc_bt1361 },
+    { AVCOL_TRC_IEC61966_2_1, avpriv_trc_iec61966_2_1 },
+    { AVCOL_TRC_SMPTEST2084, avpriv_trc_smpte_st2084 },
+    { AVCOL_TRC_SMPTEST428_1, avpriv_trc_smpte_st428_1 },
+    { AVCOL_TRC_RESERVED0, NULL },
+    { AVCOL_TRC_UNSPECIFIED, NULL },
+    { AVCOL_TRC_RESERVED, NULL }
+    };
+
+    for(i = 0; i < FF_ARRAY_ELEMS(tests); i++) {
+        if(test_avpriv_get_trc_function_from_trc(tests[i].trc, tests[i].func)) {
+            error_count++;
+        }
+    }
+    return !!error_count;
+}
+// LCOV_EXCL_STOP
+#endif
-- 
2.7.2



More information about the ffmpeg-devel mailing list