X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Freels_test.cc;h=ef134811672b95c4b8b58bd9fba364e676c4283d;hp=72a3fe7d3545773e68ba9355a044418d81f8c5d7;hb=295c425291c9449188106452386b103d970291db;hpb=2517ec798da291dedc02dd7a7a432f7aa63133e4 diff --git a/test/reels_test.cc b/test/reels_test.cc index 72a3fe7d3..ef1348116 100644 --- a/test/reels_test.cc +++ b/test/reels_test.cc @@ -236,16 +236,17 @@ BOOST_AUTO_TEST_CASE (reels_test5) film->examine_and_add_content (dcp); wait_for_jobs (); + /* Set to 123 but it will be rounded up to the next frame (4000) */ dcp->set_position(DCPTime(123)); { list p = dcp->reels (); BOOST_REQUIRE_EQUAL (p.size(), 4); list::const_iterator i = p.begin(); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 0), DCPTime(123 + 96000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 96000), DCPTime(123 + 192000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 192000), DCPTime(123 + 288000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 288000), DCPTime(123 + 384000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 96000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 96000), DCPTime(4000 + 192000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 192000), DCPTime(4000 + 288000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 288000), DCPTime(4000 + 384000))); } { @@ -253,10 +254,10 @@ BOOST_AUTO_TEST_CASE (reels_test5) list p = dcp->reels (); BOOST_REQUIRE_EQUAL (p.size(), 4); list::const_iterator i = p.begin(); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 0), DCPTime(123 + 48000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 48000), DCPTime(123 + 144000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 144000), DCPTime(123 + 240000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 240000), DCPTime(123 + 336000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 240000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 240000), DCPTime(4000 + 336000))); } { @@ -264,10 +265,10 @@ BOOST_AUTO_TEST_CASE (reels_test5) list p = dcp->reels (); BOOST_REQUIRE_EQUAL (p.size(), 4); list::const_iterator i = p.begin(); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 0), DCPTime(123 + 48000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 48000), DCPTime(123 + 144000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 144000), DCPTime(123 + 240000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 240000), DCPTime(123 + 288000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 240000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 240000), DCPTime(4000 + 288000))); } { @@ -275,9 +276,9 @@ BOOST_AUTO_TEST_CASE (reels_test5) list p = dcp->reels (); BOOST_REQUIRE_EQUAL (p.size(), 3); list::const_iterator i = p.begin(); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 0), DCPTime(123 + 48000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 48000), DCPTime(123 + 144000))); - BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(123 + 144000), DCPTime(123 + 192000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 0), DCPTime(4000 + 48000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 48000), DCPTime(4000 + 144000))); + BOOST_CHECK (*i++ == DCPTimePeriod (DCPTime(4000 + 144000), DCPTime(4000 + 192000))); } } @@ -326,3 +327,20 @@ BOOST_AUTO_TEST_CASE (reels_test7) film->make_dcp (); BOOST_REQUIRE (!wait_for_jobs ()); } + +/** Check a reels-related error; make_dcp() would raise a ProgrammingError */ +BOOST_AUTO_TEST_CASE (reels_test8) +{ + shared_ptr film = new_test_film ("reels_test8"); + film->set_name ("reels_test8"); + film->set_container (Ratio::from_id ("185")); + film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST")); + shared_ptr A (new FFmpegContent (film, "test/data/test2.mp4")); + film->examine_and_add_content (A); + BOOST_REQUIRE (!wait_for_jobs ()); + + A->set_trim_end (ContentTime::from_seconds (1)); + cout << to_string(A->length_after_trim()) << "\n"; + film->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs ()); +}