Increase probe duration for FFmpeg content so that there is more chance of all stream...
authorCarl Hetherington <cth@carlh.net>
Tue, 19 Nov 2013 22:37:27 +0000 (22:37 +0000)
committerCarl Hetherington <cth@carlh.net>
Tue, 19 Nov 2013 22:37:27 +0000 (22:37 +0000)
src/lib/ffmpeg.cc

index 596703a012818299ee601f5b5dcd9166a0a581e3..e9c41ea184f76b4ccabab981b1a3cebb7463d501 100644 (file)
@@ -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<string> (5 * 60 * 1e6).c_str(), 0);
+       av_dict_set (&options, "probesize", lexical_cast<string> (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 ());
        }