[FFmpeg-cvslog] ffplay: add -(no)find_stream_info expert option

Clément Bœsch git at videolan.org
Tue Jul 18 11:40:53 EEST 2017


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Wed Jul 12 11:06:54 2017 +0200| [998687f1b23d2899d9975834faf3a2aed2f335ee] | committer: Clément Bœsch

ffplay: add -(no)find_stream_info expert option

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=998687f1b23d2899d9975834faf3a2aed2f335ee
---

 ffplay.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index c0b326c8cc..2eaeebc826 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -349,6 +349,7 @@ static int nb_vfilters = 0;
 static char *afilters = NULL;
 #endif
 static int autorotate = 1;
+static int find_stream_info = 1;
 
 /* current context */
 static int is_full_screen;
@@ -2695,8 +2696,6 @@ static int read_thread(void *arg)
     int64_t stream_start_time;
     int pkt_in_play_range = 0;
     AVDictionaryEntry *t;
-    AVDictionary **opts;
-    int orig_nb_streams;
     SDL_mutex *wait_mutex = SDL_CreateMutex();
     int scan_all_pmts_set = 0;
     int64_t pkt_ts;
@@ -2746,9 +2745,11 @@ static int read_thread(void *arg)
 
     av_format_inject_global_side_data(ic);
 
-    opts = setup_find_stream_info_opts(ic, codec_opts);
-    orig_nb_streams = ic->nb_streams;
+    if (find_stream_info) {
+        AVDictionary **opts = setup_find_stream_info_opts(ic, codec_opts);
+        int orig_nb_streams = ic->nb_streams;
 
+        // TODO: reindent
     err = avformat_find_stream_info(ic, opts);
 
     for (i = 0; i < orig_nb_streams; i++)
@@ -2761,6 +2762,7 @@ static int read_thread(void *arg)
         ret = -1;
         goto fail;
     }
+    }
 
     if (ic->pb)
         ic->pb->eof_reached = 0; // FIXME hack, ffplay maybe should not use avio_feof() to test for the end
@@ -3557,6 +3559,8 @@ static const OptionDef options[] = {
     { "scodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &subtitle_codec_name }, "force subtitle decoder", "decoder_name" },
     { "vcodec", HAS_ARG | OPT_STRING | OPT_EXPERT, {    &video_codec_name }, "force video decoder",    "decoder_name" },
     { "autorotate", OPT_BOOL, { &autorotate }, "automatically rotate video", "" },
+    { "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { &find_stream_info },
+        "read and decode the streams to fill missing information with heuristics" },
     { NULL, },
 };
 



More information about the ffmpeg-cvslog mailing list