From 66a703ea01687bbe57469116bbe7ab0c414b3509 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Fri, 13 Dec 2013 00:23:35 +0100 Subject: [PATCH] ffprobe: only show tags when explicitly requested --- ffprobe.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/ffprobe.c b/ffprobe.c index 8afe5cbc88..71e801f6eb 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -66,6 +66,12 @@ static int do_show_data = 0; static int do_show_program_version = 0; static int do_show_library_versions = 0; +static int do_show_chapter_tags = 0; +static int do_show_format_tags = 0; +static int do_show_frame_tags = 0; +static int do_show_program_tags = 0; +static int do_show_stream_tags = 0; + static int show_value_unit = 0; static int use_value_prefix = 0; static int use_byte_value_binary_prefix = 0; @@ -1764,7 +1770,8 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, print_str_opt("channel_layout", "unknown"); break; } - show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS); + if (do_show_frame_tags) + show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS); writer_print_section_footer(w); @@ -2116,7 +2123,8 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id writer_print_section_footer(w); } - ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS); + if (do_show_stream_tags) + ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS); writer_print_section_footer(w); av_bprint_finalize(&pbuf, NULL); @@ -2155,7 +2163,8 @@ static int show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *p print_time("start_time", program->start_time, &AV_TIME_BASE_Q); print_ts("end_pts", program->end_time); print_time("end_time", program->end_time, &AV_TIME_BASE_Q); - ret = show_tags(w, program->metadata, SECTION_ID_PROGRAM_TAGS); + if (do_show_program_tags) + ret = show_tags(w, program->metadata, SECTION_ID_PROGRAM_TAGS); if (ret < 0) goto end; @@ -2206,7 +2215,8 @@ static int show_chapters(WriterContext *w, AVFormatContext *fmt_ctx) print_time("start_time", chapter->start, &chapter->time_base); print_int("end", chapter->end); print_time("end_time", chapter->end, &chapter->time_base); - ret = show_tags(w, chapter->metadata, SECTION_ID_CHAPTER_TAGS); + if (do_show_chapter_tags) + ret = show_tags(w, chapter->metadata, SECTION_ID_CHAPTER_TAGS); writer_print_section_footer(w); } writer_print_section_footer(w); @@ -2236,7 +2246,8 @@ static int show_format(WriterContext *w, AVFormatContext *fmt_ctx) if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); else print_str_opt("bit_rate", "N/A"); print_int("probe_score", av_format_get_probe_score(fmt_ctx)); - ret = show_tags(w, fmt_ctx->metadata, SECTION_ID_FORMAT_TAGS); + if (do_show_format_tags) + ret = show_tags(w, fmt_ctx->metadata, SECTION_ID_FORMAT_TAGS); writer_print_section_footer(w); fflush(stdout); @@ -2895,6 +2906,12 @@ int main(int argc, char **argv) SET_DO_SHOW(STREAM_DISPOSITION, stream_disposition); SET_DO_SHOW(PROGRAM_STREAM_DISPOSITION, stream_disposition); + SET_DO_SHOW(CHAPTER_TAGS, chapter_tags); + SET_DO_SHOW(FORMAT_TAGS, format_tags); + SET_DO_SHOW(FRAME_TAGS, frame_tags); + SET_DO_SHOW(PROGRAM_TAGS, program_tags); + SET_DO_SHOW(STREAM_TAGS, stream_tags); + if (do_bitexact && (do_show_program_version || do_show_library_versions)) { av_log(NULL, AV_LOG_ERROR, "-bitexact and -show_program_version or -show_library_versions "