summaryrefslogtreecommitdiff
path: root/src/lib/decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-12-18 09:39:36 +0000
committerCarl Hetherington <cth@carlh.net>2013-12-18 09:39:36 +0000
commit9c399a21b37d83ceb2c81706975e2c46d1a3f673 (patch)
tree5b1123cd22cad797c9587c22927f9c9249ed4ca4 /src/lib/decoder.cc
parentda19eaac0dd80afed3dd282d61ea3298196a5090 (diff)
Considerable rework of decoder timing; tests pass, at least.
Diffstat (limited to 'src/lib/decoder.cc')
-rw-r--r--src/lib/decoder.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc
index 3f4cda6eb..18c5acd35 100644
--- a/src/lib/decoder.cc
+++ b/src/lib/decoder.cc
@@ -36,3 +36,32 @@ Decoder::Decoder (shared_ptr<const Film> f)
{
}
+
+shared_ptr<Decoded>
+Decoder::peek ()
+{
+ while (_pending.empty () && !pass ()) {}
+
+ if (_pending.empty ()) {
+ return shared_ptr<Decoded> ();
+ }
+
+ return _pending.front ();
+}
+
+shared_ptr<Decoded>
+Decoder::get ()
+{
+ shared_ptr<Decoded> d = peek ();
+ if (d) {
+ _pending.pop_front ();
+ }
+
+ return d;
+}
+
+void
+Decoder::seek (ContentTime, bool)
+{
+ _pending.clear ();
+}