diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/dcpdecryptmxf.cc | 10 | ||||
| -rw-r--r-- | tools/dcpdumpimage.cc | 4 | ||||
| -rw-r--r-- | tools/dcpinfo.cc | 10 | ||||
| -rw-r--r-- | tools/dcpverify.cc | 21 | ||||
| -rw-r--r-- | tools/wscript | 2 |
5 files changed, 30 insertions, 17 deletions
diff --git a/tools/dcpdecryptmxf.cc b/tools/dcpdecryptmxf.cc index 451a4d34..1145d77d 100644 --- a/tools/dcpdecryptmxf.cc +++ b/tools/dcpdecryptmxf.cc @@ -41,8 +41,8 @@ #include "encrypted_kdm.h" #include "exceptions.h" #include "key.h" -#include "mono_picture_asset.h" -#include "mono_picture_asset_writer.h" +#include "mono_j2k_picture_asset.h" +#include "mono_j2k_picture_asset_writer.h" #include "sound_asset.h" #include "sound_asset_writer.h" #include "util.h" @@ -232,10 +232,10 @@ main (int argc, char* argv[]) } case Type::PICTURE: { - dcp::MonoPictureAsset in (input_file); + dcp::MonoJ2KPictureAsset 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(), dcp::PictureAsset::Behaviour::MAKE_NEW); + dcp::MonoJ2KPictureAsset out (in.edit_rate(), dcp::Standard::SMPTE); + auto writer = out.start_write(output_file.get(), dcp::Behaviour::MAKE_NEW); copy (in, writer, ignore_hmac); break; } diff --git a/tools/dcpdumpimage.cc b/tools/dcpdumpimage.cc index 728e42c7..0ddf2d62 100644 --- a/tools/dcpdumpimage.cc +++ b/tools/dcpdumpimage.cc @@ -35,7 +35,7 @@ #include "colour_conversion.h" #include "cpl.h" #include "dcp.h" -#include "mono_picture_asset.h" +#include "mono_j2k_picture_asset.h" #include "openjpeg_image.h" #include "reel_picture_asset.h" #include "raw_convert.h" @@ -152,7 +152,7 @@ main(int argc, char* argv[]) if (frame_index >= duration) { frame_index -= duration; } else { - auto reader = dynamic_pointer_cast<dcp::MonoPictureAsset>(reel->main_picture()->asset())->start_read(); + auto reader = dynamic_pointer_cast<dcp::MonoJ2KPictureAsset>(reel->main_picture()->asset())->start_read(); auto frame = reader->get_frame(frame_index); auto xyz = frame->xyz_image(); std::vector<uint8_t> rgba(xyz->size().width * xyz->size().height * 4); diff --git a/tools/dcpinfo.cc b/tools/dcpinfo.cc index e812afe4..f68fac24 100644 --- a/tools/dcpinfo.cc +++ b/tools/dcpinfo.cc @@ -41,8 +41,8 @@ #include "exceptions.h" #include "filesystem.h" #include "interop_subtitle_asset.h" -#include "mono_picture_asset.h" -#include "picture_asset.h" +#include "mono_j2k_picture_asset.h" +#include "j2k_picture_asset.h" #include "reel.h" #include "reel_picture_asset.h" #include "reel_sound_asset.h" @@ -158,12 +158,12 @@ main_picture (vector<string> const& only, shared_ptr<Reel> reel, bool analyse, b OUTPUT_PICTURE("\n Picture: %1x%2\n", mp->asset()->size().width, mp->asset()->size().height); } - shared_ptr<MonoPictureAsset> ma = dynamic_pointer_cast<MonoPictureAsset>(mp->asset()); + shared_ptr<MonoJ2KPictureAsset> ma = dynamic_pointer_cast<MonoJ2KPictureAsset>(mp->asset()); if (analyse && ma) { - shared_ptr<MonoPictureAssetReader> reader = ma->start_read (); + shared_ptr<MonoJ2KPictureAssetReader> reader = ma->start_read (); pair<int, int> j2k_size_range (INT_MAX, 0); for (int64_t i = 0; i < ma->intrinsic_duration(); ++i) { - shared_ptr<const MonoPictureFrame> frame = reader->get_frame (i); + shared_ptr<const MonoJ2KPictureFrame> frame = reader->get_frame (i); if (SHOULD_PICTURE) { printf("Frame %" PRId64 " J2K size %7d", i, frame->size()); } diff --git a/tools/dcpverify.cc b/tools/dcpverify.cc index 0ef256eb..88f0d705 100644 --- a/tools/dcpverify.cc +++ b/tools/dcpverify.cc @@ -37,6 +37,7 @@ #include "filesystem.h" #include "raw_convert.h" #include "verify.h" +#include "verify_report.h" #include "version.h" #include <boost/bind/bind.hpp> #include <boost/filesystem.hpp> @@ -68,6 +69,7 @@ help (string n) << " --ignore-bv21-smpte don't give the SMPTE Bv2.1 error about a DCP not being SMPTE\n" << " --no-asset-hash-check don't check asset hashes\n" << " --asset-hash-check-maximum-size <size-in-MB> only check hashes for assets smaller than this size (in MB)\n" + << " -o <filename> write HTML report to filename\n" << " -q, --quiet don't report progress\n"; } @@ -80,6 +82,7 @@ main (int argc, char* argv[]) bool ignore_missing_assets = false; bool ignore_bv21_smpte = false; bool quiet = false; + boost::optional<boost::filesystem::path> report_filename; dcp::VerificationOptions verification_options; @@ -96,7 +99,7 @@ main (int argc, char* argv[]) { 0, 0, 0, 0 } }; - int c = getopt_long (argc, argv, "VhABCD:q", long_options, &option_index); + int c = getopt_long (argc, argv, "VhABCD:qo:", long_options, &option_index); if (c == -1) { break; @@ -126,6 +129,9 @@ main (int argc, char* argv[]) case 'q': quiet = true; break; + case 'o': + report_filename = optarg; + break; } } @@ -173,8 +179,8 @@ main (int argc, char* argv[]) vector<boost::filesystem::path> directories; directories.push_back (argv[optind]); - auto notes = dcp::verify(directories, {}, stage, progress, verification_options); - dcp::filter_notes (notes, ignore_missing_assets); + auto result = dcp::verify(directories, {}, stage, progress, verification_options); + dcp::filter_notes(result.notes, ignore_missing_assets); if (!quiet) { cout << "\n"; @@ -183,11 +189,13 @@ main (int argc, char* argv[]) bool failed = false; bool bv21_failed = false; bool warned = false; - for (auto i: notes) { + for (auto i: result.notes) { if (ignore_bv21_smpte && i.code() == dcp::VerificationNote::Code::INVALID_STANDARD) { continue; } switch (i.type()) { + case dcp::VerificationNote::Type::OK: + break; case dcp::VerificationNote::Type::ERROR: cout << "Error: " << note_to_string(i) << "\n"; failed = true; @@ -215,5 +223,10 @@ main (int argc, char* argv[]) } } + if (report_filename) { + dcp::HTMLFormatter formatter(*report_filename); + dcp::verify_report(result, formatter); + } + exit (failed ? EXIT_FAILURE : EXIT_SUCCESS); } diff --git a/tools/wscript b/tools/wscript index 3ee04e94..d282c88c 100644 --- a/tools/wscript +++ b/tools/wscript @@ -32,7 +32,7 @@ # def build(bld): - uselib = 'OPENJPEG CXML OPENMP ASDCPLIB_CTH BOOST_FILESYSTEM LIBXML++ XMLSEC1 OPENSSL XERCES DL MAGICK' + uselib = 'OPENJPEG CXML OPENMP ASDCPLIB_DCPOMATIC BOOST_FILESYSTEM LIBXML++ XMLSEC1 OPENSSL XERCES DL MAGICK AVCODEC AVUTIL' for f in ['diff', 'info', 'verify']: obj = bld(features='cxx cxxprogram') |
