#include "lib/util.h"
#include "lib/video_content.h"
#include "test.h"
-#include <dcp/mono_picture_asset.h>
-#include <dcp/stereo_picture_asset.h>
+#include <dcp/mono_j2k_picture_asset.h>
+#include <dcp/stereo_j2k_picture_asset.h>
#include <boost/test/unit_test.hpp>
#include <iostream>
R->set_trim_end (dcpomatic::ContentTime::from_seconds(22));
film->set_three_d (true);
- make_and_verify_dcp (film, {dcp::VerificationNote::Code::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D});
+ make_and_verify_dcp(
+ film,
+ {dcp::VerificationNote::Code::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D},
+ true,
+ /* XXX: Clairmeta error about invalid edit rate 24 for 4K 3D */
+ false
+ );
}
film->examine_and_add_content (L);
auto R = make_shared<FFmpegContent>("test/data/3dR.mp4");
film->examine_and_add_content (R);
+ film->set_audio_channels(16);
BOOST_REQUIRE (!wait_for_jobs());
L->video->set_frame_type (VideoFrameType::THREE_D_LEFT);
std::vector<directory_entry> matches;
std::copy_if(recursive_directory_iterator(*input_dcp), recursive_directory_iterator(), std::back_inserter(matches), [](directory_entry const& entry) {
- return boost::algorithm::starts_with(entry.path().leaf().string(), "j2c");
+ return boost::algorithm::starts_with(entry.path().filename().string(), "j2c");
});
BOOST_REQUIRE_EQUAL(matches.size(), 1U);
- auto stereo = dcp::StereoPictureAsset(matches[0]);
+ auto stereo = dcp::StereoJ2KPictureAsset(matches[0]);
auto stereo_reader = stereo.start_read();
- auto mono = dcp::MonoPictureAsset(dcp_file(film, "j2c"));
+ auto mono = dcp::MonoJ2KPictureAsset(dcp_file(film, "j2c"));
auto mono_reader = mono.start_read();
BOOST_REQUIRE_EQUAL(stereo.intrinsic_duration(), mono.intrinsic_duration());
}
}
+/* #2476 was a writer error when 3D picture padding is needed */
+BOOST_AUTO_TEST_CASE(threed_test_when_padding_needed)
+{
+ auto left = content_factory("test/data/flat_red.png").front();
+ auto right = content_factory("test/data/flat_red.png").front();
+ auto sound = content_factory("test/data/sine_440.wav").front();
+ auto film = new_test_film2("threed_test_when_padding_needed", { left, right, sound });
+
+ left->video->set_frame_type(VideoFrameType::THREE_D_LEFT);
+ left->set_position(film, dcpomatic::DCPTime());
+ left->video->set_length(23);
+ right->video->set_frame_type(VideoFrameType::THREE_D_RIGHT);
+ right->set_position(film, dcpomatic::DCPTime());
+ right->video->set_frame_type(VideoFrameType::THREE_D_RIGHT);
+ right->video->set_length(23);
+ film->set_three_d(true);
+
+ make_and_verify_dcp(film);
+}