Use a LanguageTag for closed caption tracks.
[dcpomatic.git] / test / shuffler_test.cc
index 440d014cf2d89721f5f475d5729dca44346817d7..aac8285a66992397b25eab589786d6c08dc636fd 100644 (file)
@@ -7,6 +7,10 @@ using std::list;
 using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::optional;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
+
 
 static void
 push (Shuffler& s, int frame, Eyes eyes)
@@ -132,7 +136,7 @@ BOOST_AUTO_TEST_CASE (shuffler_test5)
        check (0, EYES_LEFT, __LINE__);
 
        /* More lefts should be kept in the shuffler in the hope that some rights arrive */
-       for (int i = 0; i < 8; ++i) {
+       for (int i = 0; i < s._max_size; ++i) {
                push (s, i + 1, EYES_LEFT);
        }
        BOOST_CHECK (pending_cv.empty ());
@@ -140,6 +144,30 @@ BOOST_AUTO_TEST_CASE (shuffler_test5)
        /* If enough lefts come the shuffler should conclude that there's no rights and start
           giving out the lefts.
        */
-       push (s, 9, EYES_LEFT);
+       push (s, s._max_size + 1, EYES_LEFT);
        check (1, EYES_LEFT, __LINE__);
 }
+
+/** One complete frame (L+R) missing.
+    Shuffler should carry on, skipping this frame, as the player will cope with it.
+*/
+BOOST_AUTO_TEST_CASE (shuffler_test6)
+{
+       Shuffler s;
+       s.Video.connect (boost::bind (&receive, _1, _2));
+
+       push (s, 0, EYES_LEFT);
+       check (0, EYES_LEFT, __LINE__);
+       push (s, 0, EYES_RIGHT);
+       check (0, EYES_RIGHT, __LINE__);
+
+       push (s, 2, EYES_LEFT);
+       push (s, 2, EYES_RIGHT);
+       check (2, EYES_LEFT, __LINE__);
+       check (2, EYES_RIGHT, __LINE__);
+
+       push (s, 3, EYES_LEFT);
+       check (3, EYES_LEFT, __LINE__);
+       push (s, 3, EYES_RIGHT);
+       check (3, EYES_RIGHT, __LINE__);
+}