ffprobe: only show tags when explicitly requested

pull/51/head
Stefano Sabatini 11 years ago
parent 2cfe70ff3e
commit 66a703ea01
  1. 27
      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 "

Loading…
Cancel
Save