diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-12-24 02:52:35 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-12-24 02:52:35 +0000 |
| commit | 64dc289b343641fc37db51fcd6b3069078cb5edf (patch) | |
| tree | ecdee5041e771892b34a7acd13cc8a79381b8142 /src/lib/decoder.cc | |
| parent | dc87445987c00b85a44b6372e43894067fae44b3 (diff) | |
Some fixes to playback of drop-frame content.
Diffstat (limited to 'src/lib/decoder.cc')
| -rw-r--r-- | src/lib/decoder.cc | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc index 18c5acd35..7f4973737 100644 --- a/src/lib/decoder.cc +++ b/src/lib/decoder.cc @@ -23,6 +23,7 @@ #include "film.h" #include "decoder.h" +#include "decoded.h" #include "i18n.h" @@ -37,10 +38,19 @@ Decoder::Decoder (shared_ptr<const Film> f) } +class DecodedSorter +{ +public: + bool operator() (shared_ptr<Decoded> a, shared_ptr<Decoded> b) + { + return a->dcp_time < b->dcp_time; + } +}; + shared_ptr<Decoded> Decoder::peek () { - while (_pending.empty () && !pass ()) {} + while (_pending.empty() && !pass ()) {} if (_pending.empty ()) { return shared_ptr<Decoded> (); @@ -49,15 +59,12 @@ Decoder::peek () return _pending.front (); } -shared_ptr<Decoded> -Decoder::get () +void +Decoder::consume () { - shared_ptr<Decoded> d = peek (); - if (d) { + if (!_pending.empty ()) { _pending.pop_front (); } - - return d; } void |
