Module: libav
Branch: release/12
Commit: 46a67fc132be6b4bd796e7e3e17c03c80024840e

Author:    Luca Barbato <lu_z...@gentoo.org>
Committer: Sean McGovern <gsean...@gmail.com>
Date:      Mon Apr 17 13:48:54 2017 +0000

avprobe: Handle unknown values for the color description

print_str() cannot print NULL.

Bug-Id: 1040
CC: libav-sta...@libav.org

Signed-off-by: Luca Barbato <lu_z...@gentoo.org>
(cherry picked from commit c55f2ae2b8d4de473f945aebd6a7a89b6b83e87a)

Signed-off-by: Sean McGovern <gsean...@gmail.com>

---

 avprobe.c | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/avprobe.c b/avprobe.c
index eff9c0d..f60e1ad 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -571,6 +571,12 @@ static char *tag_string(char *buf, int buf_size, int tag)
     return buf;
 }
 
+static char *unknown_string(char *buf, int buf_size, int val)
+{
+    snprintf(buf, buf_size, "Unknown (%d)", val);
+    return buf;
+}
+
 static void show_packet(AVFormatContext *fmt_ctx, AVPacket *pkt)
 {
     char val_str[128];
@@ -622,6 +628,7 @@ static void show_stream(InputFile *ifile, InputStream *ist)
     char val_str[128];
     AVRational display_aspect_ratio, *sar = NULL;
     const AVPixFmtDescriptor *desc;
+    const char *val;
 
     probe_object_header("stream");
 
@@ -680,11 +687,30 @@ static void show_stream(InputFile *ifile, InputStream 
*ist)
         probe_str("pix_fmt", desc ? desc->name : "unknown");
         probe_int("level", par->level);
 
-        probe_str("color_range", av_color_range_name    (par->color_range));
-        probe_str("color_space", av_color_space_name    (par->color_space));
-        probe_str("color_trc",   av_color_transfer_name (par->color_trc));
-        probe_str("color_pri",   
av_color_primaries_name(par->color_primaries));
-        probe_str("chroma_loc", av_chroma_location_name 
(par->chroma_location));
+        val = av_color_range_name(par->color_range);
+        if (!val)
+            val = unknown_string(val_str, sizeof(val_str), par->color_range);
+        probe_str("color_range", val);
+
+        val = av_color_space_name(par->color_space);
+        if (!val)
+            val = unknown_string(val_str, sizeof(val_str), par->color_space);
+        probe_str("color_space", val);
+
+        val = av_color_transfer_name(par->color_trc);
+        if (!val)
+            val = unknown_string(val_str, sizeof(val_str), par->color_trc);
+        probe_str("color_trc", val);
+
+        val = av_color_primaries_name(par->color_primaries);
+        if (!val)
+            val = unknown_string(val_str, sizeof(val_str), 
par->color_primaries);
+        probe_str("color_pri", val);
+
+        val = av_chroma_location_name(par->chroma_location);
+        if (!val)
+            val = unknown_string(val_str, sizeof(val_str), 
par->chroma_location);
+        probe_str("chroma_loc", val);
         break;
 
     case AVMEDIA_TYPE_AUDIO:

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to