diff options
author | Clément Bœsch <u@pkh.me> | 2017-07-12 12:06:54 +0300 |
---|---|---|
committer | Clément Bœsch <cboesch@gopro.com> | 2017-07-18 11:39:42 +0300 |
commit | 998687f1b23d2899d9975834faf3a2aed2f335ee (patch) | |
tree | 1409772009c76a43fcead4d5da7c6d7f8adbe381 | |
parent | d7ea14c5e22891b09d14a1e3cde5358146e32a40 (diff) |
ffplay: add -(no)find_stream_info expert option
-rw-r--r-- | ffplay.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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, }, }; |