diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/dcpdecryptmxf.cc | 10 | ||||
| -rw-r--r-- | tools/dcpdiff.cc | 2 | ||||
| -rw-r--r-- | tools/dcpdumpimage.cc | 4 | ||||
| -rw-r--r-- | tools/dcpdumpsub.cc | 4 | ||||
| -rw-r--r-- | tools/dcpinfo.cc | 34 | ||||
| -rw-r--r-- | tools/dcpverify.cc | 21 | ||||
| -rw-r--r-- | tools/wscript | 2 |
7 files changed, 45 insertions, 32 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/dcpdiff.cc b/tools/dcpdiff.cc index 7c7c4b71..6c101ab0 100644 --- a/tools/dcpdiff.cc +++ b/tools/dcpdiff.cc @@ -198,7 +198,7 @@ main (int argc, char* argv[]) options.reel_annotation_texts_can_differ = true; break; case 'F': - options.export_differing_subtitles = true; + options.export_differing_texts = true; 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/dcpdumpsub.cc b/tools/dcpdumpsub.cc index fa7a170c..da40b386 100644 --- a/tools/dcpdumpsub.cc +++ b/tools/dcpdumpsub.cc @@ -36,7 +36,7 @@ #include "decrypted_kdm_key.h" #include "encrypted_kdm.h" #include "file.h" -#include "smpte_subtitle_asset.h" +#include "smpte_text_asset.h" #include "util.h" #include <getopt.h> #include <cstdlib> @@ -107,7 +107,7 @@ main (int argc, char* argv[]) exit (EXIT_FAILURE); } - dcp::SMPTESubtitleAsset sub (argv[optind]); + dcp::SMPTETextAsset sub(argv[optind]); if (sub.key_id() && (!kdm_file || !private_key_file)) { cerr << "Subtitle MXF is encrypted so you must provide a KDM and private key.\n"; diff --git a/tools/dcpinfo.cc b/tools/dcpinfo.cc index e812afe4..8a7f738e 100644 --- a/tools/dcpinfo.cc +++ b/tools/dcpinfo.cc @@ -40,18 +40,18 @@ #include "encrypted_kdm.h" #include "exceptions.h" #include "filesystem.h" -#include "interop_subtitle_asset.h" -#include "mono_picture_asset.h" -#include "picture_asset.h" +#include "interop_text_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" -#include "reel_subtitle_asset.h" -#include "smpte_subtitle_asset.h" +#include "reel_text_asset.h" +#include "smpte_text_asset.h" #include "sound_asset.h" -#include "subtitle_asset.h" -#include "subtitle_image.h" -#include "subtitle_string.h" +#include "text_asset.h" +#include "text_image.h" +#include "text_string.h" #include <getopt.h> #include <boost/filesystem.hpp> #include <boost/algorithm/string.hpp> @@ -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()); } @@ -243,7 +243,7 @@ static void main_subtitle (vector<string> const& only, shared_ptr<Reel> reel, bool list_subtitles) { - shared_ptr<dcp::ReelSubtitleAsset> ms = reel->main_subtitle (); + auto ms = reel->main_subtitle(); if (!ms) { return; } @@ -251,25 +251,25 @@ main_subtitle (vector<string> const& only, shared_ptr<Reel> reel, bool list_subt OUTPUT_SUBTITLE(" Subtitle ID: %1", ms->id()); if (ms->asset_ref().resolved()) { - auto subs = ms->asset()->subtitles (); + auto subs = ms->asset()->texts(); OUTPUT_SUBTITLE("\n Subtitle: %1 subtitles", subs.size()); - shared_ptr<InteropSubtitleAsset> iop = dynamic_pointer_cast<InteropSubtitleAsset> (ms->asset()); + auto iop = dynamic_pointer_cast<InteropTextAsset>(ms->asset()); if (iop) { OUTPUT_SUBTITLE(" in %1\n", iop->language()); } - shared_ptr<SMPTESubtitleAsset> smpte = dynamic_pointer_cast<SMPTESubtitleAsset> (ms->asset()); + auto smpte = dynamic_pointer_cast<SMPTETextAsset>(ms->asset()); if (smpte && smpte->language ()) { OUTPUT_SUBTITLE(" in %1\n", smpte->language().get()); } if (list_subtitles) { for (auto k: subs) { - auto ks = dynamic_pointer_cast<const SubtitleString>(k); + auto ks = dynamic_pointer_cast<const TextString>(k); if (ks) { stringstream s; s << *ks; OUTPUT_SUBTITLE("%1\n", s.str()); } - auto is = dynamic_pointer_cast<const SubtitleImage>(k); + auto is = dynamic_pointer_cast<const TextImage>(k); if (is) { stringstream s; s << *is; 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') |
