#include <iostream>
using std::cout;
-using boost::shared_ptr;
+using std::shared_ptr;
/** Basic sanity check of 3D_LEFT_RIGHT */
BOOST_AUTO_TEST_CASE (threed_test1)
BOOST_REQUIRE (!wait_for_jobs());
c->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT_RIGHT);
- c->video->set_scale (VideoContentScale (Ratio::from_id ("185")));
film->set_container (Ratio::from_id ("185"));
film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST"));
BOOST_REQUIRE (!wait_for_jobs());
c->video->set_frame_type (VIDEO_FRAME_TYPE_3D_ALTERNATE);
- c->video->set_scale (VideoContentScale (Ratio::from_id ("185")));
film->set_container (Ratio::from_id ("185"));
film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST"));
BOOST_AUTO_TEST_CASE (threed_test4)
{
- Config::instance()->set_master_encoding_threads (8);
-
shared_ptr<Film> film = new_test_film2 ("threed_test4");
- shared_ptr<FFmpegContent> L (new FFmpegContent(private_data / "LEFT_TEST_DCP3D4K.mov"));
+ shared_ptr<FFmpegContent> L (new FFmpegContent(TestPaths::private_data() / "LEFT_TEST_DCP3D4K.mov"));
film->examine_and_add_content (L);
- shared_ptr<FFmpegContent> R (new FFmpegContent(private_data / "RIGHT_TEST_DCP3D4K.mov"));
+ shared_ptr<FFmpegContent> R (new FFmpegContent(TestPaths::private_data() / "RIGHT_TEST_DCP3D4K.mov"));
film->examine_and_add_content (R);
BOOST_REQUIRE (!wait_for_jobs());
L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT);
R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT);
+ /* There doesn't seem much point in encoding the whole input, especially as we're only
+ * checking for errors during the encode and not the result. Also decoding these files
+ * (4K HQ Prores) is very slow.
+ */
+ L->set_trim_end (dcpomatic::ContentTime::from_seconds(22));
+ R->set_trim_end (dcpomatic::ContentTime::from_seconds(22));
film->set_three_d (true);
film->make_dcp ();
film->write_metadata ();
BOOST_REQUIRE (!wait_for_jobs ());
-
- Config::instance()->set_master_encoding_threads (8);
}
BOOST_AUTO_TEST_CASE (threed_test5)
{
- Config::instance()->set_master_encoding_threads (8);
-
shared_ptr<Film> film = new_test_film2 ("threed_test5");
- shared_ptr<FFmpegContent> L (new FFmpegContent(private_data / "boon_telly.mkv"));
+ shared_ptr<FFmpegContent> L (new FFmpegContent(TestPaths::private_data() / "boon_telly.mkv"));
film->examine_and_add_content (L);
- shared_ptr<FFmpegContent> R (new FFmpegContent(private_data / "boon_telly.mkv"));
+ shared_ptr<FFmpegContent> R (new FFmpegContent(TestPaths::private_data() / "boon_telly.mkv"));
film->examine_and_add_content (R);
BOOST_REQUIRE (!wait_for_jobs());
L->video->set_frame_type (VIDEO_FRAME_TYPE_3D_LEFT);
R->video->set_frame_type (VIDEO_FRAME_TYPE_3D_RIGHT);
+ /* There doesn't seem much point in encoding the whole input, especially as we're only
+ * checking for errors during the encode and not the result.
+ */
+ L->set_trim_end (dcpomatic::ContentTime::from_seconds(3 * 60 + 20));
+ R->set_trim_end (dcpomatic::ContentTime::from_seconds(3 * 60 + 20));
film->set_three_d (true);
film->make_dcp ();
film->write_metadata ();
BOOST_REQUIRE (!wait_for_jobs ());
-
- Config::instance()->set_master_encoding_threads (1);
}
BOOST_AUTO_TEST_CASE (threed_test6)
/** Check 2D content set as being 3D; this should give an informative error */
BOOST_AUTO_TEST_CASE (threed_test7)
{
+ using boost::filesystem::path;
+
shared_ptr<Film> film = new_test_film2 ("threed_test7");
- shared_ptr<FFmpegContent> c (new FFmpegContent("test/data/red_24.mp4"));
+ path const content_path = "test/data/red_24.mp4";
+ shared_ptr<FFmpegContent> c (new FFmpegContent(content_path));
film->examine_and_add_content (c);
BOOST_REQUIRE (!wait_for_jobs());
JobManager* jm = JobManager::instance ();
while (jm->work_to_do ()) {
while (signal_manager->ui_idle()) {}
- dcpomatic_sleep (1);
+ dcpomatic_sleep_seconds (1);
}
while (signal_manager->ui_idle ()) {}
+ std::cout << "Here's the jobs:\n";
+ for (auto i: jm->_jobs) {
+ std::cout << i->name() << " " << i->status() << " " << i->is_new() << " " << i->running() << " " << i->finished() << " " << i->finished_ok() << " " << i->finished_in_error() << "\n";
+ }
+
BOOST_REQUIRE (jm->errors());
shared_ptr<Job> failed;
- BOOST_FOREACH (shared_ptr<Job> i, jm->_jobs) {
+ for (auto i: jm->_jobs) {
if (i->finished_in_error()) {
BOOST_REQUIRE (!failed);
failed = i;
}
}
BOOST_REQUIRE (failed);
- BOOST_CHECK_EQUAL (failed->error_summary(), "The content file test/data/red_24.mp4 is set as 3D but does not appear to contain 3D images. Please set it to 2D. You can still make a 3D DCP from this content by ticking the 3D option in the DCP video tab.");
+ BOOST_CHECK_EQUAL (failed->error_summary(), String::compose("The content file %1 is set as 3D but does not appear to contain 3D images. Please set it to 2D. You can still make a 3D DCP from this content by ticking the 3D option in the DCP video tab.", content_path.string()));
while (signal_manager->ui_idle ()) {}