Somewhat riskily remove use of AV_SEEK_BACKWARD. It was causing
[dcpomatic.git] / src / lib / decoder.h
index 654cacad4bc63d71131483422fcb231fe9a0729a..562073c1ebcbc2bbd75985e3bf7a30d5e769f8ac 100644 (file)
@@ -41,7 +41,7 @@ public:
        Decoder (boost::shared_ptr<const Film>);
        virtual ~Decoder () {}
 
-       /** Seek so that the next get_*() will yield the next thing
+       /** Seek so that the next peek() will yield the next thing
         *  (video/sound frame, subtitle etc.) at or after the requested
         *  time.  Pass accurate = true to try harder to get close to
         *  the request.
@@ -49,13 +49,17 @@ public:
        virtual void seek (ContentTime time, bool accurate);
        
        boost::shared_ptr<Decoded> peek ();
-       boost::shared_ptr<Decoded> get ();
+
+       /* Consume the last peek()ed thing so that it won't be returned
+        * from the next peek().
+        */
+       void consume ();
 
 protected:
 
        /** Perform one decode pass of the content, which may or may not
         *  result in a complete quantum (Decoded object) of decoded stuff
-        *  being made ready.
+        *  being added to _pending.
         *  @return true if the decoder is done (i.e. no more data will be
         *  produced by any future calls to pass() without a seek() first).
         */
@@ -66,6 +70,7 @@ protected:
        boost::weak_ptr<const Film> _film;
 
        std::list<boost::shared_ptr<Decoded> > _pending;
+       bool _done;
 };
 
 #endif