From 9ecccd6e5a21e3d9091a9e8dd40221b6812cb17e Mon Sep 17 00:00:00 2001
From: Stefano Sabatini <stefasab@gmail.com>
Date: Fri, 6 Jan 2012 18:45:08 +0100
Subject: [PATCH] ffprobe: move header and trailer print from probe_file() to
 main()

Simplify printing from the main() context, in case probe_file() is not
called, as required by the pending -show_version option.
---
 ffprobe.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/ffprobe.c b/ffprobe.c
index 08dc2a4bdc6..4a03dba4741 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -1397,17 +1397,13 @@ static int probe_file(WriterContext *wctx, const char *filename)
     AVFormatContext *fmt_ctx;
     int ret;
 
-    writer_print_header(wctx);
     ret = open_input_file(&fmt_ctx, filename);
     if (ret >= 0) {
         PRINT_CHAPTER(packets);
         PRINT_CHAPTER(streams);
         PRINT_CHAPTER(format);
         avformat_close_input(&fmt_ctx);
-    } else if (do_show_error) {
-        show_error(wctx, ret);
     }
-    writer_print_footer(wctx);
 
     return ret;
 }
@@ -1520,14 +1516,20 @@ int main(int argc, char **argv)
     }
 
     if ((ret = writer_open(&wctx, w, w_args, NULL)) >= 0) {
+        writer_print_header(wctx);
+
         if (!input_filename) {
             show_usage();
             av_log(NULL, AV_LOG_ERROR, "You have to specify one input file.\n");
             av_log(NULL, AV_LOG_ERROR, "Use -h to get full help or, even better, run 'man %s'.\n", program_name);
             ret = AVERROR(EINVAL);
-        } else
+        } else {
             ret = probe_file(wctx, input_filename);
+            if (ret < 0 && do_show_error)
+                show_error(wctx, ret);
+        }
 
+        writer_print_footer(wctx);
         writer_close(&wctx);
     }
 
-- 
GitLab