Mostly-merge master.
[dcpomatic.git] / test / play_test.cc
index 51e2272568acbf26a1bc321d0ad1bdf63af3bc36..ed3e497ed6e3c4fc6248537ad1e98f7d22ce1241 100644 (file)
@@ -34,7 +34,7 @@ struct Video
 {
        boost::shared_ptr<Content> content;
        boost::shared_ptr<const Image> image;
-       Time time;
+       DCPTime time;
 };
 
 class PlayerWrapper
@@ -46,11 +46,11 @@ public:
                _player->Video.connect (bind (&PlayerWrapper::process_video, this, _1, _2, _5));
        }
 
-       void process_video (shared_ptr<PlayerImage> i, bool, Time t)
+       void process_video (shared_ptr<PlayerImage> i, bool, DCPTime t)
        {
                Video v;
                v.content = _player->_last_video;
-               v.image = i->image ();
+               v.image = i->image (PIX_FMT_RGB24, false);
                v.time = t;
                _queue.push_front (v);
        }
@@ -67,7 +67,7 @@ public:
                return v;
        }
 
-       void seek (Time t, bool ac)
+       void seek (DCPTime t, bool ac)
        {
                _player->seek (t, ac);
                _queue.clear ();
@@ -89,25 +89,23 @@ BOOST_AUTO_TEST_CASE (play_test)
        film->examine_and_add_content (A);
        wait_for_jobs ();
 
-       BOOST_CHECK_EQUAL (A->video_length_after_3d_combine(), 16);
+       BOOST_CHECK_EQUAL (A->video_length_after_3d_combine().frames (24), 16);
 
        shared_ptr<FFmpegContent> B (new FFmpegContent (film, "test/data/red_30.mp4"));
        film->examine_and_add_content (B);
        wait_for_jobs ();
 
-       BOOST_CHECK_EQUAL (B->video_length_after_3d_combine(), 16);
+       BOOST_CHECK_EQUAL (B->video_length_after_3d_combine().frames (30), 16);
        
        /* Film should have been set to 25fps */
        BOOST_CHECK_EQUAL (film->video_frame_rate(), 25);
 
-       BOOST_CHECK_EQUAL (A->position(), 0);
+       BOOST_CHECK_EQUAL (A->position(), DCPTime ());
        /* A is 16 frames long at 25 fps */
-       BOOST_CHECK_EQUAL (B->position(), 16 * TIME_HZ / 25);
+       BOOST_CHECK_EQUAL (B->position(), DCPTime::from_frames (16, 25));
 
        shared_ptr<Player> player = film->make_player ();
        PlayerWrapper wrap (player);
-       /* Seek and audio don't get on at the moment */
-       player->disable_audio ();
 
        for (int i = 0; i < 32; ++i) {
                optional<Video> v = wrap.get_video ();
@@ -119,10 +117,10 @@ BOOST_AUTO_TEST_CASE (play_test)
                }
        }
 
-       player->seek (10 * TIME_HZ / 25, true);
+       player->seek (DCPTime::from_frames (6, 25), true);
        optional<Video> v = wrap.get_video ();
        BOOST_CHECK (v);
-       BOOST_CHECK_EQUAL (v.get().time, 10 * TIME_HZ / 25);
+       BOOST_CHECK_EQUAL (v.get().time, DCPTime::from_frames (6, 25));
 }
 
 #endif