[FFmpeg-cvslog] avprobe: Handle unknown values for the color description
Luca Barbato
git at videolan.org
Mon Oct 30 19:59:09 EET 2017
ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Mon Apr 17 13:48:54 2017 +0000| [c55f2ae2b8d4de473f945aebd6a7a89b6b83e87a] | committer: Luca Barbato
avprobe: Handle unknown values for the color description
print_str() cannot print NULL.
Bug-Id: 1040
CC: libav-stable at libav.org
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c55f2ae2b8d4de473f945aebd6a7a89b6b83e87a
---
avtools/avprobe.c | 36 +++++++++++++++++++++++++++++++-----
1 file changed, 31 insertions(+), 5 deletions(-)
diff --git a/avtools/avprobe.c b/avtools/avprobe.c
index 68f19220c8..5f5e670f1b 100644
--- a/avtools/avprobe.c
+++ b/avtools/avprobe.c
@@ -609,6 +609,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];
@@ -660,6 +666,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");
@@ -718,11 +725,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:
More information about the ffmpeg-cvslog
mailing list