Merge master.
[dcpomatic.git] / src / lib / decoder.cc
index 4e136d619e075b3d49f52e147365ded667cd3d15..53a0c31e140d6ceab0a3d2f222fe419bda88237b 100644 (file)
@@ -40,6 +40,14 @@ Decoder::Decoder (shared_ptr<const Film> f)
 
 }
 
+struct DecodedSorter
+{
+       bool operator() (shared_ptr<Decoded> a, shared_ptr<Decoded> b)
+       {
+               return a->dcp_time < b->dcp_time;
+       }
+};
+
 shared_ptr<Decoded>
 Decoder::peek ()
 {
@@ -47,10 +55,11 @@ Decoder::peek ()
                _done = pass ();
        }
 
-       if (_done) {
+       if (_done && _pending.empty ()) {
                return shared_ptr<Decoded> ();
        }
 
+       _pending.sort (DecodedSorter ());
        return _pending.front ();
 }