Merge master.
[dcpomatic.git] / test / seek_zero_test.cc
index c20c99ee7372a48c14b39666b3b53f342edf17c6..150e12d9016e389a6477d731f7d6155608eb24dc 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include "lib/ratio.h"
 #include "lib/dcp_content_type.h"
 #include "lib/ffmpeg_decoder.h"
+#include "lib/content_video.h"
 #include "test.h"
 
 using std::cout;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
+using boost::optional;
 
 BOOST_AUTO_TEST_CASE (seek_zero_test)
 {
@@ -41,17 +43,13 @@ BOOST_AUTO_TEST_CASE (seek_zero_test)
        film->set_container (Ratio::from_id ("185"));
        film->set_dcp_content_type (DCPContentType::from_pretty_name ("Test"));
        shared_ptr<FFmpegContent> content (new FFmpegContent (film, "test/data/count300bd48.m2ts"));
-       content->set_ratio (Ratio::from_id ("185"));
+       content->set_scale (VideoContentScale (Ratio::from_id ("185")));
        film->examine_and_add_content (content);
        wait_for_jobs ();
 
-       FFmpegDecoder decoder (film, content, true, false);
-       shared_ptr<DecodedVideo> a = dynamic_pointer_cast<DecodedVideo> (decoder.peek ());
-       decoder.seek (0, true);
-       shared_ptr<DecodedVideo> b = dynamic_pointer_cast<DecodedVideo> (decoder.peek ());
-
-       /* a will be after no seek, and b after a seek to zero, which should
-          have the same effect.
-       */
-       BOOST_CHECK_EQUAL (a->frame, b->frame);
+       FFmpegDecoder decoder (content, film->log());
+       optional<ContentVideo> a = decoder.get_video (0, true);
+       optional<ContentVideo> b = decoder.get_video (0, true);
+       BOOST_CHECK_EQUAL (a->frame, 0);
+       BOOST_CHECK_EQUAL (b->frame, 0);
 }