From 633a7e06b94fc04f24d0945aec05b2f9b9d1ea8e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 19 Nov 2013 22:37:27 +0000 Subject: [PATCH] Increase probe duration for FFmpeg content so that there is more chance of all streams being found in MPEG files. --- src/lib/ffmpeg.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc index 596703a01..e9c41ea18 100644 --- a/src/lib/ffmpeg.cc +++ b/src/lib/ffmpeg.cc @@ -33,6 +33,7 @@ using std::string; using std::cout; using std::stringstream; using boost::shared_ptr; +using boost::lexical_cast; boost::mutex FFmpeg::_mutex; @@ -68,7 +69,14 @@ FFmpeg::setup_general () { av_register_all (); - if (avformat_open_input (&_format_context, _ffmpeg_content->path().string().c_str(), 0, 0) < 0) { + AVDictionary* options = 0; + /* These durations are in microseconds, and represent how far into the content file + we will look for streams. + */ + av_dict_set (&options, "analyzeduration", lexical_cast (5 * 60 * 1e6).c_str(), 0); + av_dict_set (&options, "probesize", lexical_cast (5 * 60 * 1e6).c_str(), 0); + + if (avformat_open_input (&_format_context, _ffmpeg_content->path().string().c_str(), 0, &options) < 0) { throw OpenFileError (_ffmpeg_content->path().string ()); } -- 2.30.2