Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: add -(no)find_stream_info expert option
On Wed, Jul 12, 2017 at 05:30:04PM +0200, Clément Bœsch wrote: > On Wed, Jul 12, 2017 at 05:14:14PM +0200, Nicolas George wrote: > > Le quartidi 24 messidor, an CCXXV, Clement Boesch a écrit : > > > --- > > > ffmpeg_opt.c | 22 +- > > > 1 file changed, 13 insertions(+), 9 deletions(-) > > > > > > diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c > > > index 9b7e8c74b9..10ca260648 100644 > > > --- a/ffmpeg_opt.c > > > +++ b/ffmpeg_opt.c > > > @@ -145,6 +145,7 @@ static int override_ffserver = 0; > > > static int input_stream_potentially_available = 0; > > > static int ignore_unknown_streams = 0; > > > static int copy_unknown_streams = 0; > > > +static int find_stream_info = 1; > > > > > +{ "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { > > > _stream_info }, > > > +"read and decode the streams to fill missing information with > > > heuristics" }, > > > > > > /* video options */ > > > { "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, > > > { .func_arg = opt_video_frames }, > > > > Should it not be implemented for OPT_PERFILE? > > > > Yeah, I guess so. Fixed locally. Also changed in ffplay and ffprobe, even > thought it doesn't make much sense "yet". > Actually only done for ffmpeg to be safe. Patchset applied, thanks -- Clément B. signature.asc Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: add -(no)find_stream_info expert option
On Wed, Jul 12, 2017 at 05:14:14PM +0200, Nicolas George wrote: > Le quartidi 24 messidor, an CCXXV, Clement Boesch a écrit : > > --- > > ffmpeg_opt.c | 22 +- > > 1 file changed, 13 insertions(+), 9 deletions(-) > > > > diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c > > index 9b7e8c74b9..10ca260648 100644 > > --- a/ffmpeg_opt.c > > +++ b/ffmpeg_opt.c > > @@ -145,6 +145,7 @@ static int override_ffserver = 0; > > static int input_stream_potentially_available = 0; > > static int ignore_unknown_streams = 0; > > static int copy_unknown_streams = 0; > > +static int find_stream_info = 1; > > > +{ "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { > > _stream_info }, > > +"read and decode the streams to fill missing information with > > heuristics" }, > > > > /* video options */ > > { "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, > > { .func_arg = opt_video_frames }, > > Should it not be implemented for OPT_PERFILE? > Yeah, I guess so. Fixed locally. Also changed in ffplay and ffprobe, even thought it doesn't make much sense "yet". -- Clément B. signature.asc Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/3] ffmpeg: add -(no)find_stream_info expert option
Le quartidi 24 messidor, an CCXXV, Clement Boesch a écrit : > --- > ffmpeg_opt.c | 22 +- > 1 file changed, 13 insertions(+), 9 deletions(-) > > diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c > index 9b7e8c74b9..10ca260648 100644 > --- a/ffmpeg_opt.c > +++ b/ffmpeg_opt.c > @@ -145,6 +145,7 @@ static int override_ffserver = 0; > static int input_stream_potentially_available = 0; > static int ignore_unknown_streams = 0; > static int copy_unknown_streams = 0; > +static int find_stream_info = 1; > +{ "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { > _stream_info }, > +"read and decode the streams to fill missing information with > heuristics" }, > > /* video options */ > { "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, > { .func_arg = opt_video_frames }, Should it not be implemented for OPT_PERFILE? Regards, -- Nicolas George signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 1/3] ffmpeg: add -(no)find_stream_info expert option
--- ffmpeg_opt.c | 22 +- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 9b7e8c74b9..10ca260648 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -145,6 +145,7 @@ static int override_ffserver = 0; static int input_stream_potentially_available = 0; static int ignore_unknown_streams = 0; static int copy_unknown_streams = 0; +static int find_stream_info = 1; static void uninit_options(OptionsContext *o) { @@ -949,10 +950,8 @@ static int open_input_file(OptionsContext *o, const char *filename) AVInputFormat *file_iformat = NULL; int err, i, ret; int64_t timestamp; -AVDictionary **opts; AVDictionary *unused_opts = NULL; AVDictionaryEntry *e = NULL; -int orig_nb_streams; // number of streams before avformat_find_stream_info char * video_codec_name = NULL; char * audio_codec_name = NULL; char *subtitle_codec_name = NULL; @@ -1055,13 +1054,19 @@ static int open_input_file(OptionsContext *o, const char *filename) for (i = 0; i < ic->nb_streams; i++) choose_decoder(o, ic, ic->streams[i]); -/* Set AVCodecContext options for avformat_find_stream_info */ -opts = setup_find_stream_info_opts(ic, o->g->codec_opts); -orig_nb_streams = ic->nb_streams; +if (find_stream_info) { +AVDictionary **opts = setup_find_stream_info_opts(ic, o->g->codec_opts); +int orig_nb_streams = ic->nb_streams; +// TODO: reindent /* If not enough info to get the stream parameters, we decode the first frames to get it. (used in mpeg case for example) */ ret = avformat_find_stream_info(ic, opts); + +for (i = 0; i < orig_nb_streams; i++) +av_dict_free([i]); +av_freep(); + if (ret < 0) { av_log(NULL, AV_LOG_FATAL, "%s: could not find codec parameters\n", filename); if (ic->nb_streams == 0) { @@ -1069,6 +1074,7 @@ static int open_input_file(OptionsContext *o, const char *filename) exit_program(1); } } +} if (o->start_time_eof != AV_NOPTS_VALUE) { if (ic->duration>0) { @@ -1180,10 +1186,6 @@ static int open_input_file(OptionsContext *o, const char *filename) } } -for (i = 0; i < orig_nb_streams; i++) -av_dict_free([i]); -av_freep(); - input_stream_potentially_available = 1; return 0; @@ -3520,6 +3522,8 @@ const OptionDef options[] = { { "thread_queue_size", HAS_ARG | OPT_INT | OPT_OFFSET | OPT_EXPERT | OPT_INPUT, { .off = OFFSET(thread_queue_size) }, "set the maximum number of queued packets from the demuxer" }, +{ "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { _stream_info }, +"read and decode the streams to fill missing information with heuristics" }, /* video options */ { "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_video_frames }, -- 2.13.2 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel