name += "h264";
extension = "mp4";
break;
- case ExportFormat::PRORES:
- name += "prores";
+ case ExportFormat::PRORES_4444:
+ name += "prores-444";
+ extension = "mov";
+ break;
+ case ExportFormat::PRORES_HQ:
+ name += "prores-hq";
extension = "mov";
break;
- case ExportFormat::H264_PCM:
case ExportFormat::SUBTITLES_DCP:
BOOST_REQUIRE (false);
}
/** Red / green / blue MP4 -> Prores */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test1)
{
- ffmpeg_content_test (1, "test/data/test.mp4", ExportFormat::PRORES);
+ ffmpeg_content_test (1, "test/data/test.mp4", ExportFormat::PRORES_HQ);
}
/** Dolby Aurora trailer VOB -> Prores */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test2)
{
- ffmpeg_content_test (2, TestPaths::private_data() / "dolby_aurora.vob", ExportFormat::PRORES);
+ ffmpeg_content_test (2, TestPaths::private_data() / "dolby_aurora.vob", ExportFormat::PRORES_HQ);
}
/** Sintel trailer -> Prores */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test3)
{
- ffmpeg_content_test (3, TestPaths::private_data() / "Sintel_Trailer1.480p.DivX_Plus_HD.mkv", ExportFormat::PRORES);
+ ffmpeg_content_test (3, TestPaths::private_data() / "Sintel_Trailer1.480p.DivX_Plus_HD.mkv", ExportFormat::PRORES_HQ);
}
/** Big Buck Bunny trailer -> Prores */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_test4)
{
- ffmpeg_content_test (4, TestPaths::private_data() / "big_buck_bunny_trailer_480p.mov", ExportFormat::PRORES);
+ ffmpeg_content_test (4, TestPaths::private_data() / "big_buck_bunny_trailer_480p.mov", ExportFormat::PRORES_HQ);
}
film->write_metadata ();
auto job = make_shared<TranscodeJob>(film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test5.mov", ExportFormat::PRORES, false, false, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test5.mov", ExportFormat::PRORES_HQ, false, false, false, 23);
encoder.go ();
}
film->write_metadata();
auto job = make_shared<TranscodeJob> (film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test6.mov", ExportFormat::PRORES, false, false, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test6.mov", ExportFormat::PRORES_HQ, false, false, false, 23);
encoder.go ();
}
s->only_text()->set_effect_colour (dcp::Colour (0, 255, 255));
auto job = make_shared<TranscodeJob>(film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test7.mov", ExportFormat::PRORES, false, false, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_test7.mov", ExportFormat::PRORES_HQ, false, false, false, 23);
encoder.go ();
}
film2->examine_and_add_content (ov);
BOOST_REQUIRE (!wait_for_jobs());
ov->set_reference_video (true);
- auto subs = content_factory("test/data/subrip.srt").front();
+ auto subs = content_factory("test/data/subrip.srt")[0];
film2->examine_and_add_content (subs);
BOOST_REQUIRE (!wait_for_jobs());
for (auto i: subs->text) {
film->write_metadata ();
auto job = make_shared<TranscodeJob>(film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_from_dcp_with_crop.mov", ExportFormat::PRORES, false, false, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_from_dcp_with_crop.mov", ExportFormat::PRORES_HQ, false, false, false, 23);
encoder.go ();
}
/** Export to H264 with reels */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_h264_with_reels)
{
- auto content1 = content_factory("test/data/flat_red.png").front();
- auto content2 = content_factory("test/data/flat_red.png").front();
+ auto content1 = content_factory("test/data/flat_red.png")[0];
+ auto content2 = content_factory("test/data/flat_red.png")[0];
auto film = new_test_film2 ("ffmpeg_encoder_h264_with_reels", { content1, content2 });
film->set_reel_type (ReelType::BY_VIDEO_CONTENT);
content1->video->set_length (240);
encoder.go ();
auto check = [](boost::filesystem::path path) {
- auto reel = std::dynamic_pointer_cast<FFmpegContent>(content_factory(path).front());
+ auto reel = std::dynamic_pointer_cast<FFmpegContent>(content_factory(path)[0]);
BOOST_REQUIRE (reel);
FFmpegExaminer examiner(reel);
BOOST_CHECK_EQUAL (examiner.video_length(), 240U);
/** Regression test for "Error during decoding: Butler finished" (#2097) */
BOOST_AUTO_TEST_CASE (ffmpeg_encoder_prores_regression_1)
{
- auto content = content_factory(TestPaths::private_data() / "arrietty_JP-EN.mkv").front();
+ auto content = content_factory(TestPaths::private_data() / "arrietty_JP-EN.mkv")[0];
auto film = new_test_film2 ("ffmpeg_encoder_prores_regression_1", { content });
auto job = make_shared<TranscodeJob>(film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_regression_1.mov", ExportFormat::PRORES, false, true, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_regression_1.mov", ExportFormat::PRORES_HQ, false, true, false, 23);
encoder.go ();
}
auto logs = dcpomatic_log->types();
dcpomatic_log->set_types(logs | LogEntry::TYPE_DEBUG_PLAYER);
- auto content = content_factory(TestPaths::private_data() / "tge_clip.mkv").front();
+ auto content = content_factory(TestPaths::private_data() / "tge_clip.mkv")[0];
auto film = new_test_film2 ("ffmpeg_encoder_prores_regression_2", { content });
auto job = make_shared<TranscodeJob>(film, TranscodeJob::ChangedBehaviour::IGNORE);
- FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_regression_2.mov", ExportFormat::PRORES, false, true, false, 23);
+ FFmpegEncoder encoder (film, job, "build/test/ffmpeg_encoder_prores_regression_2.mov", ExportFormat::PRORES_HQ, false, true, false, 23);
encoder.go ();
dcpomatic_log->set_types(logs);