summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/dcpdecryptmxf.cc10
-rw-r--r--tools/dcpdiff.cc2
-rw-r--r--tools/dcpdumpimage.cc4
-rw-r--r--tools/dcpdumpsub.cc4
-rw-r--r--tools/dcpinfo.cc34
-rw-r--r--tools/dcpverify.cc21
-rw-r--r--tools/wscript2
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 4f1d84e8..e4dee74a 100644
--- a/tools/dcpdiff.cc
+++ b/tools/dcpdiff.cc
@@ -199,7 +199,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')