diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-03-17 14:11:34 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-03-20 16:41:02 +0100 |
| commit | 20e3e4c2a7a91e45740987a702f5d4c1ea2f9030 (patch) | |
| tree | dd8d9a08834170980ff34ea288ed0334a8b2d9b0 | |
| parent | 870f02f07ee51ee478006260e2c3b683e591b0c9 (diff) | |
Use an enum instead of a bool in PictureAsset::start_write().
| -rw-r--r-- | examples/make_dcp.cc | 2 | ||||
| -rw-r--r-- | src/mono_picture_asset.cc | 4 | ||||
| -rw-r--r-- | src/mono_picture_asset.h | 7 | ||||
| -rw-r--r-- | src/picture_asset.h | 7 | ||||
| -rw-r--r-- | src/stereo_picture_asset.cc | 4 | ||||
| -rw-r--r-- | src/stereo_picture_asset.h | 2 | ||||
| -rw-r--r-- | test/dcp_test.cc | 4 | ||||
| -rw-r--r-- | test/decryption_test.cc | 2 | ||||
| -rw-r--r-- | test/encryption_test.cc | 2 | ||||
| -rw-r--r-- | test/frame_info_hash_test.cc | 2 | ||||
| -rw-r--r-- | test/kdm_test.cc | 2 | ||||
| -rw-r--r-- | test/recovery_test.cc | 4 | ||||
| -rw-r--r-- | test/round_trip_test.cc | 2 | ||||
| -rw-r--r-- | test/test.cc | 4 | ||||
| -rw-r--r-- | test/verify_test.cc | 6 | ||||
| -rw-r--r-- | tools/dcpdecryptmxf.cc | 4 |
16 files changed, 32 insertions, 26 deletions
diff --git a/examples/make_dcp.cc b/examples/make_dcp.cc index 60f5608a..a99d4ef0 100644 --- a/examples/make_dcp.cc +++ b/examples/make_dcp.cc @@ -59,7 +59,7 @@ main () auto picture_asset = std::make_shared<dcp::MonoPictureAsset>(dcp::Fraction(24, 1), dcp::Standard::SMPTE); /* Start off a write to it */ - auto picture_writer = picture_asset->start_write("DCP/picture.mxf", false); + auto picture_writer = picture_asset->start_write("DCP/picture.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); /* Write 24 frames of the same JPEG2000 file */ dcp::ArrayData picture("examples/help.j2c"); diff --git a/src/mono_picture_asset.cc b/src/mono_picture_asset.cc index 5aba95d2..cdfcb0df 100644 --- a/src/mono_picture_asset.cc +++ b/src/mono_picture_asset.cc @@ -183,10 +183,10 @@ MonoPictureAsset::equals (shared_ptr<const Asset> other, EqualityOptions opt, No shared_ptr<PictureAssetWriter> -MonoPictureAsset::start_write (boost::filesystem::path file, bool overwrite) +MonoPictureAsset::start_write(boost::filesystem::path file, Behaviour behaviour) { /* Can't use make_shared here as the MonoPictureAssetWriter constructor is private */ - return shared_ptr<MonoPictureAssetWriter>(new MonoPictureAssetWriter(this, file, overwrite)); + return shared_ptr<MonoPictureAssetWriter>(new MonoPictureAssetWriter(this, file, behaviour == Behaviour::OVERWRITE_EXISTING)); } shared_ptr<MonoPictureAssetReader> diff --git a/src/mono_picture_asset.h b/src/mono_picture_asset.h index 7a37fa73..625d6ac8 100644 --- a/src/mono_picture_asset.h +++ b/src/mono_picture_asset.h @@ -70,10 +70,11 @@ public: /** Start a progressive write to a MonoPictureAsset. * @path file File to write to. - * @path overwrite true to overwrite an existing file; for use when continuing a write which - * previously failed. If in doubt, use false here. + * @path behaviour OVERWRITE_EXISTING to overwrite and potentially add to an existing file + * (after a write previously failed), MAKE_NEW to create a new file. + * If in doubt, use MAKE_NEW here. */ - std::shared_ptr<PictureAssetWriter> start_write (boost::filesystem::path file, bool overwrite) override; + std::shared_ptr<PictureAssetWriter> start_write(boost::filesystem::path file, Behaviour behaviour) override; std::shared_ptr<MonoPictureAssetReader> start_read () const; bool equals ( diff --git a/src/picture_asset.h b/src/picture_asset.h index 011dea87..236eca22 100644 --- a/src/picture_asset.h +++ b/src/picture_asset.h @@ -73,9 +73,14 @@ public: /** Create a new PictureAsset with a given edit rate and standard */ explicit PictureAsset (Fraction edit_rate, Standard standard); + enum class Behaviour { + OVERWRITE_EXISTING, + MAKE_NEW + }; + virtual std::shared_ptr<PictureAssetWriter> start_write ( boost::filesystem::path file, - bool overwrite + Behaviour behaviour ) = 0; Size size () const { diff --git a/src/stereo_picture_asset.cc b/src/stereo_picture_asset.cc index 7e3f6f63..cf07c6be 100644 --- a/src/stereo_picture_asset.cc +++ b/src/stereo_picture_asset.cc @@ -87,9 +87,9 @@ StereoPictureAsset::StereoPictureAsset (Fraction edit_rate, Standard standard) shared_ptr<PictureAssetWriter> -StereoPictureAsset::start_write (boost::filesystem::path file, bool overwrite) +StereoPictureAsset::start_write(boost::filesystem::path file, Behaviour behaviour) { - return shared_ptr<StereoPictureAssetWriter> (new StereoPictureAssetWriter(this, file, overwrite)); + return shared_ptr<StereoPictureAssetWriter>(new StereoPictureAssetWriter(this, file, behaviour == Behaviour::OVERWRITE_EXISTING)); } diff --git a/src/stereo_picture_asset.h b/src/stereo_picture_asset.h index a3365048..9c9a2fa1 100644 --- a/src/stereo_picture_asset.h +++ b/src/stereo_picture_asset.h @@ -58,7 +58,7 @@ public: explicit StereoPictureAsset (Fraction edit_rate, Standard standard); /** Start a progressive write to a StereoPictureAsset */ - std::shared_ptr<PictureAssetWriter> start_write (boost::filesystem::path file, bool) override; + std::shared_ptr<PictureAssetWriter> start_write(boost::filesystem::path file, Behaviour behaviour) override; std::shared_ptr<StereoPictureAssetReader> start_read () const; bool equals ( diff --git a/test/dcp_test.cc b/test/dcp_test.cc index 03c5e2a9..7b2eb4ef 100644 --- a/test/dcp_test.cc +++ b/test/dcp_test.cc @@ -103,7 +103,7 @@ BOOST_AUTO_TEST_CASE (dcp_test2) auto mp = make_shared<dcp::StereoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); mp->set_metadata (mxf_meta); - auto picture_writer = mp->start_write ("build/test/DCP/dcp_test2/video.mxf", false); + auto picture_writer = mp->start_write("build/test/DCP/dcp_test2/video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { /* Left */ @@ -288,7 +288,7 @@ BOOST_AUTO_TEST_CASE (dcp_test5) auto mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); mp->set_metadata (mxf_meta); - shared_ptr<dcp::PictureAssetWriter> picture_writer = mp->start_write ("build/test/DCP/dcp_test5/video.mxf", false); + auto picture_writer = mp->start_write("build/test/DCP/dcp_test5/video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { picture_writer->write (j2c.data (), j2c.size ()); diff --git a/test/decryption_test.cc b/test/decryption_test.cc index 757a6986..1e2ca94b 100644 --- a/test/decryption_test.cc +++ b/test/decryption_test.cc @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE (decryption_test2) auto picture_asset = std::make_shared<dcp::MonoPictureAsset>(dcp::Fraction(24, 1), dcp::Standard::SMPTE); picture_asset->set_key (key); picture_asset->set_context_id (context_id); - auto picture_writer = picture_asset->start_write(dir / "picture.mxf", false); + auto picture_writer = picture_asset->start_write(dir / "picture.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData picture("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { picture_writer->write(picture); diff --git a/test/encryption_test.cc b/test/encryption_test.cc index 29b8f1fb..f2a40843 100644 --- a/test/encryption_test.cc +++ b/test/encryption_test.cc @@ -93,7 +93,7 @@ BOOST_AUTO_TEST_CASE (encryption_test) mp->set_metadata (mxf_metadata); mp->set_key (key); - auto writer = mp->start_write ("build/test/DCP/encryption_test/video.mxf", false); + auto writer = mp->start_write("build/test/DCP/encryption_test/video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { writer->write (j2c.data (), j2c.size ()); diff --git a/test/frame_info_hash_test.cc b/test/frame_info_hash_test.cc index ed914916..c19172c6 100644 --- a/test/frame_info_hash_test.cc +++ b/test/frame_info_hash_test.cc @@ -67,7 +67,7 @@ check (shared_ptr<dcp::PictureAssetWriter> writer, boost::random::uniform_int_di BOOST_AUTO_TEST_CASE (frame_info_hash_test) { auto mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); - auto writer = mp->start_write ("build/test/frame_info_hash_test.mxf", false); + auto writer = mp->start_write("build/test/frame_info_hash_test.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); boost::random::mt19937 rng(1); boost::random::uniform_int_distribution<> dist(0, 4095); diff --git a/test/kdm_test.cc b/test/kdm_test.cc index 5f72f3bc..6f06b4c9 100644 --- a/test/kdm_test.cc +++ b/test/kdm_test.cc @@ -258,7 +258,7 @@ BOOST_AUTO_TEST_CASE (validity_period_test1) auto asset = make_shared<dcp::MonoPictureAsset>(dcp::Fraction(24, 1), dcp::Standard::SMPTE); asset->set_key (dcp::Key()); - auto writer = asset->start_write ("build/test/validity_period_test1.mxf", false); + auto writer = asset->start_write("build/test/validity_period_test1.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData frame ("test/data/flat_red.j2c"); writer->write (frame.data(), frame.size()); writer->finalize (); diff --git a/test/recovery_test.cc b/test/recovery_test.cc index 43e5b93d..eaf34f81 100644 --- a/test/recovery_test.cc +++ b/test/recovery_test.cc @@ -56,7 +56,7 @@ BOOST_AUTO_TEST_CASE (recovery) boost::filesystem::remove_all ("build/test/baz"); boost::filesystem::create_directories ("build/test/baz"); auto mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); - auto writer = mp->start_write ("build/test/baz/video1.mxf", false); + auto writer = mp->start_write("build/test/baz/video1.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); int written_size = 0; for (int i = 0; i < 24; ++i) { @@ -83,7 +83,7 @@ BOOST_AUTO_TEST_CASE (recovery) Kumu::ResetTestRNG (); mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); - writer = mp->start_write ("build/test/baz/video2.mxf", true); + writer = mp->start_write("build/test/baz/video2.mxf", dcp::PictureAsset::Behaviour::OVERWRITE_EXISTING); writer->write (data.data(), data.size()); diff --git a/test/round_trip_test.cc b/test/round_trip_test.cc index add00651..028accbe 100644 --- a/test/round_trip_test.cc +++ b/test/round_trip_test.cc @@ -71,7 +71,7 @@ BOOST_AUTO_TEST_CASE (round_trip_test) boost::filesystem::create_directory (work_dir); auto asset_A = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); - auto writer = asset_A->start_write (work_dir / "video.mxf", false); + auto writer = asset_A->start_write(work_dir / "video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { writer->write (j2c.data (), j2c.size ()); diff --git a/test/test.cc b/test/test.cc index 76ed92f4..a8efa5c3 100644 --- a/test/test.cc +++ b/test/test.cc @@ -273,7 +273,7 @@ simple_picture (boost::filesystem::path path, string suffix, int frames, optiona if (key) { mp->set_key (*key); } - auto picture_writer = mp->start_write (path / dcp::String::compose("video%1.mxf", suffix), false); + auto picture_writer = mp->start_write(path / dcp::String::compose("video%1.mxf", suffix), dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::Size const size (1998, 1080); auto image = make_shared<dcp::OpenJPEGImage>(size); @@ -516,7 +516,7 @@ black_picture_asset (boost::filesystem::path dir, int frames) auto asset = make_shared<dcp::MonoPictureAsset>(dcp::Fraction(24, 1), dcp::Standard::SMPTE); asset->set_metadata (dcp::MXFMetadata("libdcp", "libdcp", "1.6.4devel")); boost::filesystem::create_directories (dir); - auto writer = asset->start_write (dir / "pic.mxf", true); + auto writer = asset->start_write(dir / "pic.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); for (int i = 0; i < frames; ++i) { writer->write (frame.data(), frame.size()); } diff --git a/test/verify_test.cc b/test/verify_test.cc index 396a1ef5..5b51db43 100644 --- a/test/verify_test.cc +++ b/test/verify_test.cc @@ -679,7 +679,7 @@ dcp_from_frame (dcp::ArrayData const& frame, path dir) { auto asset = make_shared<dcp::MonoPictureAsset>(dcp::Fraction(24, 1), dcp::Standard::SMPTE); create_directories (dir); - auto writer = asset->start_write (dir / "pic.mxf", true); + auto writer = asset->start_write(dir / "pic.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); for (int i = 0; i < 24; ++i) { writer->write (frame.data(), frame.size()); } @@ -1227,7 +1227,7 @@ check_picture_size (int width, int height, int frame_rate, bool three_d) } else { mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction(frame_rate, 1), dcp::Standard::SMPTE); } - auto picture_writer = mp->start_write (dcp_path / "video.mxf", false); + auto picture_writer = mp->start_write(dcp_path / "video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); auto image = black_image (dcp::Size(width, height)); auto j2c = dcp::compress_j2k (image, 100000000, frame_rate, three_d, width > 2048); @@ -3025,7 +3025,7 @@ BOOST_AUTO_TEST_CASE (verify_partially_encrypted) auto mp = make_shared<dcp::MonoPictureAsset>(dcp::Fraction (24, 1), dcp::Standard::SMPTE); mp->set_key (key); - auto writer = mp->start_write (dir / "video.mxf", false); + auto writer = mp->start_write(dir / "video.mxf", dcp::PictureAsset::Behaviour::MAKE_NEW); dcp::ArrayData j2c ("test/data/flat_red.j2c"); for (int i = 0; i < 24; ++i) { writer->write (j2c.data(), j2c.size()); diff --git a/tools/dcpdecryptmxf.cc b/tools/dcpdecryptmxf.cc index 33ba79bb..1cdb58ec 100644 --- a/tools/dcpdecryptmxf.cc +++ b/tools/dcpdecryptmxf.cc @@ -221,7 +221,7 @@ main (int argc, char* argv[]) in.max_object_count(), in.atmos_version() ); - auto writer = out.start_write (output_file.get()); + auto writer = out.start_write(output_file.get()); copy (in, writer, ignore_hmac); break; } @@ -230,7 +230,7 @@ main (int argc, char* argv[]) dcp::MonoPictureAsset in (input_file); add_key (in, decrypted_kdm); dcp::MonoPictureAsset out (in.edit_rate(), dcp::Standard::SMPTE); - auto writer = out.start_write (output_file.get(), false); + auto writer = out.start_write(output_file.get(), dcp::PictureAsset::Behaviour::MAKE_NEW); copy (in, writer, ignore_hmac); break; } |
