Revert mac rdisk vs disk stuff as I'm not convinced it makes much difference.
[dcpomatic.git] / src / lib / ffmpeg.cc
index adc5c224c6f4e8ea408287de3a7360f3cb3e25fc..8eb19816c0828b44b1dfc82bc030f19d37378ea5 100644 (file)
@@ -116,15 +116,16 @@ FFmpeg::setup_general ()
        _file_group.set_paths (_ffmpeg_content->paths ());
        _avio_buffer = static_cast<uint8_t*> (wrapped_av_malloc (_avio_buffer_size));
        _avio_context = avio_alloc_context (_avio_buffer, _avio_buffer_size, 0, this, avio_read_wrapper, 0, avio_seek_wrapper);
+       if (!_avio_context) {
+               throw std::bad_alloc ();
+       }
        _format_context = avformat_alloc_context ();
+       if (!_format_context) {
+               throw std::bad_alloc ();
+       }
        _format_context->pb = _avio_context;
 
        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", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
-       av_dict_set (&options, "probesize", raw_convert<string> (5 * 60 * 1000000).c_str(), 0);
 #ifdef DCPOMATIC_VARIANT_SWAROOP
        if (_ffmpeg_content->kdm()) {
                DecryptedECinemaKDM kdm (_ffmpeg_content->kdm().get(), Config::instance()->decryption_chain()->key().get());
@@ -134,7 +135,7 @@ FFmpeg::setup_general ()
 
        int e = avformat_open_input (&_format_context, 0, 0, &options);
        if (e < 0) {
-               throw OpenFileError (_ffmpeg_content->path(0).string(), e, true);
+               throw OpenFileError (_ffmpeg_content->path(0).string(), e, OpenFileError::READ);
        }
 
        if (avformat_find_stream_info (_format_context, 0) < 0) {