summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/dcpdecryptmxf.cc10
-rw-r--r--tools/dcpdumpimage.cc4
-rw-r--r--tools/dcpinfo.cc10
-rw-r--r--tools/dcpverify.cc21
-rw-r--r--tools/wscript2
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')