summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-02-21 22:28:31 +0100
committerCarl Hetherington <cth@carlh.net>2025-02-23 00:28:58 +0100
commitcb5b8b1d7585ab0134ce8a496110af473c95a25a (patch)
tree1389d8226e521ec6bd6a0cc6fb84cec28c45e36f
parent6e5b5f763a18f3473b1b49a755bfc5adb8777ff8 (diff)
Make picture details checks optional.v1.10.12
-rw-r--r--src/verify.cc6
-rw-r--r--src/verify.h2
-rw-r--r--test/verify_test.cc4
-rw-r--r--tools/dcpverify.cc7
4 files changed, 14 insertions, 5 deletions
diff --git a/src/verify.cc b/src/verify.cc
index 5ea5dfd4..458883d5 100644
--- a/src/verify.cc
+++ b/src/verify.cc
@@ -557,8 +557,10 @@ verify_main_picture_asset(Context& context, shared_ptr<const ReelPictureAsset> r
}
}
- context.stage("Checking picture frame sizes", asset->file());
- verify_picture_details(context, reel_asset, file, start_frame);
+ if (context.options.check_picture_details) {
+ context.stage("Checking picture asset details", asset->file());
+ verify_picture_details(context, reel_asset, file, start_frame);
+ }
/* Only flat/scope allowed by Bv2.1 */
if (
diff --git a/src/verify.h b/src/verify.h
index 10a798d4..c9df2781 100644
--- a/src/verify.h
+++ b/src/verify.h
@@ -702,6 +702,8 @@ struct VerificationOptions
///< true to check asset hashes (except those which match maximum_asset_size_for_hash_check)
///< false to check no asset hashes.
bool check_asset_hashes = true;
+ ///< true to do some time-consuming detailed picture checks (e.g. J2K bitstream)
+ bool check_picture_details = true;
};
diff --git a/test/verify_test.cc b/test/verify_test.cc
index 8a3d5676..3352b472 100644
--- a/test/verify_test.cc
+++ b/test/verify_test.cc
@@ -416,7 +416,7 @@ BOOST_AUTO_TEST_CASE (verify_no_error)
BOOST_REQUIRE (st->second);
BOOST_CHECK_EQUAL (st->second.get(), canonical(dir / "video.mxf"));
++st;
- BOOST_CHECK_EQUAL (st->first, "Checking picture frame sizes");
+ BOOST_CHECK_EQUAL (st->first, "Checking picture asset details");
BOOST_REQUIRE (st->second);
BOOST_CHECK_EQUAL (st->second.get(), canonical(dir / "video.mxf"));
++st;
@@ -931,7 +931,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_standard)
BOOST_REQUIRE (st->second);
BOOST_CHECK_EQUAL (st->second.get(), canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"));
++st;
- BOOST_CHECK_EQUAL (st->first, "Checking picture frame sizes");
+ BOOST_CHECK_EQUAL (st->first, "Checking picture asset details");
BOOST_REQUIRE (st->second);
BOOST_CHECK_EQUAL (st->second.get(), canonical(dir / "j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf"));
++st;
diff --git a/tools/dcpverify.cc b/tools/dcpverify.cc
index 0dc09d50..232b8ea4 100644
--- a/tools/dcpverify.cc
+++ b/tools/dcpverify.cc
@@ -69,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"
+ << " --no-picture-details-check don't check details of picture assets (J2K bitstream etc.)\n"
<< " -o <filename> write HTML report to filename\n"
<< " -q, --quiet don't report progress\n";
}
@@ -94,12 +95,13 @@ main (int argc, char* argv[])
{ "ignore-missing-assets", no_argument, 0, 'A' },
{ "ignore-bv21-smpte", no_argument, 0, 'B' },
{ "no-asset-hash-check", no_argument, 0, 'C' },
+ { "no-picture-details-check", no_argument, 0, 'E' },
{ "asset-hash-check-maximum-size", required_argument, 0, 'D' },
{ "quiet", no_argument, 0, 'q' },
{ 0, 0, 0, 0 }
};
- int c = getopt_long (argc, argv, "VhABCD:qo:", long_options, &option_index);
+ int c = getopt_long (argc, argv, "VhABCD:Eqo:", long_options, &option_index);
if (c == -1) {
break;
@@ -126,6 +128,9 @@ main (int argc, char* argv[])
case 'D':
verification_options.maximum_asset_size_for_hash_check = dcp::raw_convert<int>(optarg) * 1000000LL;
break;
+ case 'E':
+ verification_options.check_picture_details = false;
+ break;
case 'q':
quiet = true;
break;