Merge branch 'master' into speed-up
[dcpomatic.git] / src / lib / ffmpeg_decoder.cc
index 46e851e372439a232169b77f1e0a229559dc831a..acaf149f43ade599dff78d95c109d36c86133097 100644 (file)
@@ -164,14 +164,7 @@ FFmpegDecoder::setup_video ()
                throw DecodeError ("could not find video decoder");
        }
 
-       /* I think this prevents problems with green hash on decodes and
-          "changing frame properties on the fly is not supported by all filters"
-          messages with some content.  Although I'm not sure; needs checking.
-       */
-       AVDictionary* opts = 0;
-       av_dict_set (&opts, "threads", "1", 0);
-       
-       if (avcodec_open2 (_video_codec_context, _video_codec, &opts) < 0) {
+       if (avcodec_open2 (_video_codec_context, _video_codec, 0) < 0) {
                throw DecodeError ("could not open video decoder");
        }
 }
@@ -638,3 +631,9 @@ FFmpegAudioStream::to_string () const
        return String::compose ("ffmpeg %1 %2 %3 %4", _id, _sample_rate, _channel_layout, _name);
 }
 
+/** @return Length (in video frames) according to our content's header */
+SourceFrame
+FFmpegDecoder::length () const
+{
+       return (double(_format_context->duration) / AV_TIME_BASE) * frames_per_second();
+}