Various work on better seeking (and seeking of audio).
[dcpomatic.git] / src / lib / ffmpeg_decoder.h
index e3aa484d1a18673be645298d811d338decd4d338..f54ee2496fa0479fcdcea793e576568bd1452073 100644 (file)
@@ -52,7 +52,7 @@ public:
        ~FFmpegDecoder ();
 
        void pass ();
-       void seek (VideoContent::Frame, bool);
+       void seek (Time time, bool);
        bool done () const;
 
 private:
@@ -60,6 +60,8 @@ private:
 
        static double compute_pts_offset (double, double, float);
 
+       void flush ();
+
        void setup_subtitle ();
 
        AVSampleFormat audio_sample_format () const;
@@ -72,6 +74,11 @@ private:
        void maybe_add_subtitle ();
        boost::shared_ptr<AudioBuffers> deinterleave_audio (uint8_t** data, int size);
 
+       bool seek_overrun_finished (Time) const;
+       bool seek_final_finished (int, int) const;
+       int minimal_run (boost::function<bool (int)>);
+       void seek_and_flush (int64_t);
+
        AVCodecContext* _subtitle_codec_context; ///< may be 0 if there is no subtitle
        AVCodec* _subtitle_codec;                ///< may be 0 if there is no subtitle