Remove believed-unnecessary check.
[dcpomatic.git] / src / lib / shuffler.cc
index 0ec4daf5ad654bab9a1c8ef17f17eddfca96bb49..c32649f0014cb154e7c3ca2248f393904e38b33f 100644 (file)
@@ -43,15 +43,15 @@ void
 Shuffler::video (weak_ptr<Piece> weak_piece, ContentVideo video)
 {
        /* Something has gong wrong if our store gets too big */
-       DCPOMATIC_ASSERT (_store.size() != 8);
+       DCPOMATIC_ASSERT (_store.size() < 8);
        /* We should only ever see 3D_LEFT / 3D_RIGHT */
        DCPOMATIC_ASSERT (video.eyes == EYES_LEFT || video.eyes == EYES_RIGHT);
 
        shared_ptr<Piece> piece = weak_piece.lock ();
        DCPOMATIC_ASSERT (piece);
 
-       if (!_last) {
-               /* We haven't seen anything since the last clear() so assume everything is OK */
+       if (!_last && video.eyes == EYES_LEFT) {
+               /* We haven't seen anything since the last clear() and we have some eyes-left so assume everything is OK */
                Video (weak_piece, video);
                _last = video;
                return;
@@ -62,10 +62,10 @@ Shuffler::video (weak_ptr<Piece> weak_piece, ContentVideo video)
 
        while (
                !_store.empty() &&
+               _last &&
                (
                        (_store.front().second.frame == _last->frame && _store.front().second.eyes == EYES_RIGHT && _last->eyes == EYES_LEFT) ||
-                       (_store.front().second.frame == (_last->frame + 1) && _store.front().second.eyes == EYES_LEFT && _last->eyes == EYES_RIGHT) ||
-                       _store.size() > 8
+                       (_store.front().second.frame == (_last->frame + 1) && _store.front().second.eyes == EYES_LEFT && _last->eyes == EYES_RIGHT)
                        )
                ) {