libdcp.git
2 weeks agoAdd basic verification report. v1.9.5
Carl Hetherington [Thu, 11 Apr 2024 08:50:51 +0000 (10:50 +0200)]
Add basic verification report.

2 weeks agoRename VerifyResult -> VerificationResult.
Carl Hetherington [Wed, 10 Apr 2024 18:21:31 +0000 (20:21 +0200)]
Rename VerifyResult -> VerificationResult.

2 weeks agoAdd process_string parameter to dcp::note_to_string().
Carl Hetherington [Sat, 6 Jan 2024 16:52:46 +0000 (17:52 +0100)]
Add process_string parameter to dcp::note_to_string().

2 weeks agoAdd process_filename parameter to note_to_string().
Carl Hetherington [Tue, 27 Dec 2022 21:52:35 +0000 (22:52 +0100)]
Add process_filename parameter to note_to_string().

2 weeks agoAdd OK note when content version label text is valid.
Carl Hetherington [Sun, 7 Jan 2024 23:45:04 +0000 (00:45 +0100)]
Add OK note when content version label text is valid.

2 weeks agoAdd OK note when <ContentKind> is valid.
Carl Hetherington [Sun, 7 Jan 2024 23:43:10 +0000 (00:43 +0100)]
Add OK note when <ContentKind> is valid.

2 weeks agoAdd OK note when PKL and CPL annotation texts match.
Carl Hetherington [Sun, 7 Jan 2024 23:40:25 +0000 (00:40 +0100)]
Add OK note when PKL and CPL annotation texts match.

2 weeks agoAdd OK note when CPL has valid annotation text.
Carl Hetherington [Sun, 7 Jan 2024 23:35:29 +0000 (00:35 +0100)]
Add OK note when CPL has valid annotation text.

2 weeks agoAdd OK note when main picture active area is valid.
Carl Hetherington [Sun, 7 Jan 2024 23:29:04 +0000 (00:29 +0100)]
Add OK note when main picture active area is valid.

2 weeks agoAdd OK note when release territory is valid.
Carl Hetherington [Sun, 7 Jan 2024 23:20:27 +0000 (00:20 +0100)]
Add OK note when release territory is valid.

2 weeks agoAdd OK note when picture asset hashes are correct.
Carl Hetherington [Tue, 27 Dec 2022 21:45:33 +0000 (22:45 +0100)]
Add OK note when picture asset hashes are correct.

2 weeks agoAdd OK note when picture frame sizes are all OK.
Carl Hetherington [Tue, 27 Dec 2022 21:38:35 +0000 (22:38 +0100)]
Add OK note when picture frame sizes are all OK.

2 weeks agoAdd OK note when the CPL hash in the PKL is right.
Carl Hetherington [Mon, 26 Dec 2022 23:19:57 +0000 (00:19 +0100)]
Add OK note when the CPL hash in the PKL is right.

2 weeks agoAdd OK note when all or nothing is encrypted.
Carl Hetherington [Sun, 25 Dec 2022 23:29:45 +0000 (00:29 +0100)]
Add OK note when all or nothing is encrypted.

2 weeks agoAdd some helper functions.
Carl Hetherington [Sun, 14 Apr 2024 14:06:10 +0000 (16:06 +0200)]
Add some helper functions.

2 weeks agoCleanup: use std::function instead of boost::function.
Carl Hetherington [Tue, 27 Dec 2022 21:52:21 +0000 (22:52 +0100)]
Cleanup: use std::function instead of boost::function.

2 weeks agoImprove error reporting for _replace tests and check everything about the notes ...
Carl Hetherington [Sun, 14 Apr 2024 16:18:33 +0000 (18:18 +0200)]
Improve error reporting for _replace tests and check everything about the notes (not just the codes).

2 weeks agoMove some methods higher up the file.
Carl Hetherington [Sun, 14 Apr 2024 16:18:09 +0000 (18:18 +0200)]
Move some methods higher up the file.

2 weeks agoImprove debug output when verification tests fail.
Carl Hetherington [Sun, 14 Apr 2024 15:53:00 +0000 (17:53 +0200)]
Improve debug output when verification tests fail.

2 weeks agoMake verified DCPs available on the return from dcp::verify().
Carl Hetherington [Wed, 28 Dec 2022 00:25:57 +0000 (01:25 +0100)]
Make verified DCPs available on the return from dcp::verify().

2 weeks agoAdd operator!= for dcp::VerificationNote.
Carl Hetherington [Sun, 7 Jan 2024 22:36:27 +0000 (23:36 +0100)]
Add operator!= for dcp::VerificationNote.

2 weeks agoStore CPL ID in CPL-related verification notes.
Carl Hetherington [Sun, 14 Apr 2024 20:27:31 +0000 (22:27 +0200)]
Store CPL ID in CPL-related verification notes.

2 weeks agoUse new Context to reduce some boilerplate.
Carl Hetherington [Sun, 7 Jan 2024 23:44:50 +0000 (00:44 +0100)]
Use new Context to reduce some boilerplate.

2 weeks agoAdd new OK type of verification note.
Carl Hetherington [Sun, 25 Dec 2022 23:29:30 +0000 (00:29 +0100)]
Add new OK type of verification note.

2 weeks agoAdd run/tools/dcpmap
Carl Hetherington [Sun, 7 Jan 2024 23:21:48 +0000 (00:21 +0100)]
Add run/tools/dcpmap

5 weeks agoBump libcxml for build fix.
Carl Hetherington [Sat, 23 Mar 2024 11:52:54 +0000 (12:52 +0100)]
Bump libcxml for build fix.

6 weeks agoBump asdcplib to dcpomatic-2.13.0 branch. v1.9.4
Carl Hetherington [Wed, 20 Mar 2024 22:21:25 +0000 (23:21 +0100)]
Bump asdcplib to dcpomatic-2.13.0 branch.

6 weeks agoMerge tag 'v1.8.98' into v1.9.x v1.9.3
Carl Hetherington [Wed, 20 Mar 2024 22:15:11 +0000 (23:15 +0100)]
Merge tag 'v1.8.98' into v1.9.x

6 weeks agoUse C++17 when the c++17 option is passed in. v1.9.2
Carl Hetherington [Sun, 17 Mar 2024 12:17:40 +0000 (13:17 +0100)]
Use C++17 when the c++17 option is passed in.

6 weeks agoAllow building with libxml++-4.0 and C++17.
Carl Hetherington [Sat, 24 Feb 2024 20:46:50 +0000 (21:46 +0100)]
Allow building with libxml++-4.0 and C++17.

6 weeks agoReplace xmlpp::Node::add_child with cxml::add_child.
Carl Hetherington [Thu, 8 Feb 2024 23:29:00 +0000 (00:29 +0100)]
Replace xmlpp::Node::add_child with cxml::add_child.

6 weeks agoCatch read errors from verify_cpl (e.g. basic failures to read a video frame). v1.8.98
Carl Hetherington [Mon, 18 Mar 2024 17:08:53 +0000 (18:08 +0100)]
Catch read errors from verify_cpl (e.g. basic failures to read a video frame).

7 weeks agoAllow SMPTE timecodes with 3 digits in the editable units field.
Carl Hetherington [Sat, 16 Mar 2024 17:02:35 +0000 (18:02 +0100)]
Allow SMPTE timecodes with 3 digits in the editable units field.

It seems that these should only be present if the timecode rate is 101
or above, and in that case all timecodes should have 3 editable rate digits,
but someone sent a DCP from what seems to be EasyDCP Creator and it has
one timecode of 00:05:01:000.

7 weeks agoFix missing parameters to pkg-config for libopenjp2. v1.9.1
Carl Hetherington [Wed, 13 Mar 2024 21:09:55 +0000 (22:09 +0100)]
Fix missing parameters to pkg-config for libopenjp2.

7 weeks agoUse openjpeg v2.5.2. v1.9.0
Carl Hetherington [Thu, 29 Feb 2024 21:12:51 +0000 (22:12 +0100)]
Use openjpeg v2.5.2.

2 months agoRemove explicit mention of sigc++ as a dependency (it's an implicit one).
Carl Hetherington [Sun, 25 Feb 2024 18:53:07 +0000 (19:53 +0100)]
Remove explicit mention of sigc++ as a dependency (it's an implicit one).

2 months agoRemove unused method.
Carl Hetherington [Sat, 24 Feb 2024 20:45:40 +0000 (21:45 +0100)]
Remove unused method.

2 months agoRemove unused variable.
Carl Hetherington [Sat, 24 Feb 2024 20:44:25 +0000 (21:44 +0100)]
Remove unused variable.

2 months agoReduce some general usings a bit.
Carl Hetherington [Sat, 24 Feb 2024 20:36:54 +0000 (21:36 +0100)]
Reduce some general usings a bit.

2 months agoAdd write_string_to_file(). v1.8.97
Carl Hetherington [Sat, 17 Feb 2024 22:49:33 +0000 (23:49 +0100)]
Add write_string_to_file().

2 months agoCleanup: use std::vector rather than a raw array.
Carl Hetherington [Sat, 17 Feb 2024 22:49:27 +0000 (23:49 +0100)]
Cleanup: use std::vector rather than a raw array.

2 months agoFix check for return value of EssenceType. v1.8.96
Carl Hetherington [Wed, 14 Feb 2024 19:16:58 +0000 (20:16 +0100)]
Fix check for return value of EssenceType.

A reporter on the forum is making their own DCPs that don't include
an essence type at some point which trips this check as it was before.

2 months agoFix use of Z as a timezone (meaning UTC). v1.8.95
Carl Hetherington [Thu, 8 Feb 2024 23:45:23 +0000 (00:45 +0100)]
Fix use of Z as a timezone (meaning UTC).

2 months agoCleanup: remove unnecessary clearing of 0-init-ed UTCOffset.
Carl Hetherington [Thu, 8 Feb 2024 23:45:11 +0000 (00:45 +0100)]
Cleanup: remove unnecessary clearing of 0-init-ed UTCOffset.

3 months agoFix message on config error and make it fatal.
Carl Hetherington [Mon, 29 Jan 2024 23:31:06 +0000 (00:31 +0100)]
Fix message on config error and make it fatal.

3 months agoAdd cancel() to ScopeGuard. v1.8.94
Carl Hetherington [Sat, 13 Jan 2024 12:34:46 +0000 (13:34 +0100)]
Add cancel() to ScopeGuard.

3 months agoFix test in previous.
Carl Hetherington [Fri, 12 Jan 2024 23:14:44 +0000 (00:14 +0100)]
Fix test in previous.

3 months agoNote correct/incorrect hashes when the verifier raises related errors.
Carl Hetherington [Fri, 12 Jan 2024 22:43:23 +0000 (23:43 +0100)]
Note correct/incorrect hashes when the verifier raises related errors.

3 months agoFix escaping of certificate dnQualifier (public key digests) on creation (DoM #2716). v1.8.93
Carl Hetherington [Mon, 8 Jan 2024 16:53:04 +0000 (17:53 +0100)]
Fix escaping of certificate dnQualifier (public key digests) on creation (DoM #2716).

3 months agoAdd Certificate::subject_dn_qualifier().
Carl Hetherington [Mon, 8 Jan 2024 16:47:34 +0000 (17:47 +0100)]
Add Certificate::subject_dn_qualifier().

3 months agoUse OpenSSL C API for public_key_digest instead of calling the openssl binary.
Carl Hetherington [Mon, 8 Jan 2024 15:02:10 +0000 (16:02 +0100)]
Use OpenSSL C API for public_key_digest instead of calling the openssl binary.

3 months agoAdd ScopeGuard.
Carl Hetherington [Mon, 8 Jan 2024 15:01:04 +0000 (16:01 +0100)]
Add ScopeGuard.

3 months agoMake public_key_digest() testable.
Carl Hetherington [Mon, 8 Jan 2024 11:54:00 +0000 (12:54 +0100)]
Make public_key_digest() testable.

3 months agoFix incorrect placeholder.
Carl Hetherington [Fri, 5 Jan 2024 21:00:24 +0000 (22:00 +0100)]
Fix incorrect placeholder.

4 months agoFix a couple of places where we could segfault while looking at a VF. v1.8.92
Carl Hetherington [Fri, 29 Dec 2023 00:31:20 +0000 (01:31 +0100)]
Fix a couple of places where we could segfault while looking at a VF.

4 months agoReport every frame (with index) that is over (or nearly over) the size limit (DoM... v1.8.91
Carl Hetherington [Wed, 3 Jan 2024 20:28:56 +0000 (21:28 +0100)]
Report every frame (with index) that is over (or nearly over) the size limit (DoM #2698).

4 months agoReport every frame (with index) that has a JPEG2000 codestream error (DoM #2698).
Carl Hetherington [Mon, 25 Dec 2023 23:42:28 +0000 (00:42 +0100)]
Report every frame (with index) that has a JPEG2000 codestream error (DoM #2698).

4 months agoFix operator== to take everything in VerificationNote into account.
Carl Hetherington [Mon, 25 Dec 2023 23:32:55 +0000 (00:32 +0100)]
Fix operator== to take everything in VerificationNote into account.

4 months agoOnly write tool name into help, not its full path.
Carl Hetherington [Mon, 25 Dec 2023 20:43:10 +0000 (21:43 +0100)]
Only write tool name into help, not its full path.

4 months agoFix bad indentation in verify tool help.
Carl Hetherington [Mon, 25 Dec 2023 20:42:55 +0000 (21:42 +0100)]
Fix bad indentation in verify tool help.

4 months agoBump libcxml for new feature. v1.8.90
Carl Hetherington [Fri, 22 Dec 2023 15:59:28 +0000 (16:59 +0100)]
Bump libcxml for new feature.

5 months agoAdd some MCA IDs that claim to be from ClipsterDCI 5.9.3.5. v1.8.89
Carl Hetherington [Fri, 1 Dec 2023 23:03:52 +0000 (00:03 +0100)]
Add some MCA IDs that claim to be from ClipsterDCI 5.9.3.5.

5 months agoRe-read MXF descriptor after adding a key to a SMPTE subtitle asset (DoM #2660). v1.8.88
Carl Hetherington [Mon, 20 Nov 2023 20:05:41 +0000 (21:05 +0100)]
Re-read MXF descriptor after adding a key to a SMPTE subtitle asset (DoM #2660).

5 months agoFix checking for existing key_id; _key_id would always be set because MXF::set_key...
Carl Hetherington [Mon, 20 Nov 2023 20:05:11 +0000 (21:05 +0100)]
Fix checking for existing key_id; _key_id would always be set because MXF::set_key() sets it.

5 months agoAllow use of KDMs when verifying DCPs.
Carl Hetherington [Sun, 19 Nov 2023 22:57:27 +0000 (23:57 +0100)]
Allow use of KDMs when verifying DCPs.

5 months agoReport progress with done/total rather than a float.
Carl Hetherington [Sun, 12 Nov 2023 21:24:12 +0000 (22:24 +0100)]
Report progress with done/total rather than a float.

5 months agoSimple pass-through of <Ruby> tags in subtitles.
Carl Hetherington [Wed, 15 Nov 2023 19:14:55 +0000 (20:14 +0100)]
Simple pass-through of <Ruby> tags in subtitles.

5 months agoTolerate VI-N as a MCA channel ID - apparently written by CineAsset.
Carl Hetherington [Wed, 15 Nov 2023 12:37:50 +0000 (13:37 +0100)]
Tolerate VI-N as a MCA channel ID - apparently written by CineAsset.

5 months agoCleanup: remove unnecessary initialization.
Carl Hetherington [Tue, 14 Nov 2023 20:58:17 +0000 (21:58 +0100)]
Cleanup: remove unnecessary initialization.

5 months agoCleanup: remove pointless explicit.
Carl Hetherington [Wed, 8 Nov 2023 23:52:11 +0000 (00:52 +0100)]
Cleanup: remove pointless explicit.

5 months agoCleanup: using sorting.
Carl Hetherington [Tue, 7 Nov 2023 14:05:00 +0000 (15:05 +0100)]
Cleanup: using sorting.

5 months agoCleanup: header sorting.
Carl Hetherington [Tue, 7 Nov 2023 12:52:29 +0000 (13:52 +0100)]
Cleanup: header sorting.

5 months agoCleanup: remove pointless explicit.
Carl Hetherington [Tue, 7 Nov 2023 00:59:43 +0000 (01:59 +0100)]
Cleanup: remove pointless explicit.

6 months agoRemove logging of clamped values.
Carl Hetherington [Sat, 21 Oct 2023 22:20:53 +0000 (00:20 +0200)]
Remove logging of clamped values.

I can't remember seeing this logged for ages and it appears to cost
nearly a second on the rgb_xyz benchmark on AMD Ryzen 7 5700U.

6 months agoUse an integer LUT for PiecewiseLUT2, hence removing a lrint and a multiply from...
Carl Hetherington [Sat, 21 Oct 2023 21:05:56 +0000 (23:05 +0200)]
Use an integer LUT for PiecewiseLUT2, hence removing a lrint and a multiply from the rgb -> xyz loop.

6 months agoSupport integer LUTs.
Carl Hetherington [Sat, 21 Oct 2023 21:03:43 +0000 (23:03 +0200)]
Support integer LUTs.

6 months agoRename lut -> double_lut.
Carl Hetherington [Sat, 21 Oct 2023 20:40:17 +0000 (22:40 +0200)]
Rename lut -> double_lut.

6 months agoCleanup: remove out-of-date comment.
Carl Hetherington [Sat, 21 Oct 2023 12:02:31 +0000 (14:02 +0200)]
Cleanup: remove out-of-date comment.

6 months agoCleanup: remove stray space.
Carl Hetherington [Sat, 21 Oct 2023 12:02:07 +0000 (14:02 +0200)]
Cleanup: remove stray space.

6 months agoAdd rgb_to_xyz for packed int16_t. v1.8.87
Carl Hetherington [Sun, 3 Sep 2023 22:48:10 +0000 (00:48 +0200)]
Add rgb_to_xyz for packed int16_t.

Adapted from a patch from Aaron Boxer for grok support.

6 months agoSplit rgb_to_xyz() into two parts.
Carl Hetherington [Wed, 18 Oct 2023 08:39:26 +0000 (10:39 +0200)]
Split rgb_to_xyz() into two parts.

6 months agoDon't write MCA subdescriptors for channels that don't exist in the MXF (#2631). v1.8.86
Carl Hetherington [Mon, 16 Oct 2023 21:13:10 +0000 (23:13 +0200)]
Don't write MCA subdescriptors for channels that don't exist in the MXF (#2631).

This causes some test ID churn.

6 months agoCleanup: two lines can be one.
Carl Hetherington [Mon, 16 Oct 2023 21:12:52 +0000 (23:12 +0200)]
Cleanup: two lines can be one.

6 months agoCleanup: add some comments.
Carl Hetherington [Mon, 16 Oct 2023 21:12:33 +0000 (23:12 +0200)]
Cleanup: add some comments.

6 months agoTolerate LsLss / RsRss as channel IDs (#2629). v1.8.85
Carl Hetherington [Wed, 11 Oct 2023 22:52:57 +0000 (00:52 +0200)]
Tolerate LsLss / RsRss as channel IDs (#2629).

I didn't yet find a reference which tells me what they are, but there
have been multiple reports of DCPs that have this channel ID and so
(before) could not be added to a DoM project.

6 months agoCleanup: id -> ID.
Carl Hetherington [Wed, 11 Oct 2023 22:52:44 +0000 (00:52 +0200)]
Cleanup: id -> ID.

6 months agoFix argument parsing on Ubuntu 16.04. v1.8.84
Carl Hetherington [Tue, 10 Oct 2023 08:41:57 +0000 (10:41 +0200)]
Fix argument parsing on Ubuntu 16.04.

6 months agoDon't call BOOST_CHECK during static initialization.
Carl Hetherington [Tue, 10 Oct 2023 08:32:01 +0000 (10:32 +0200)]
Don't call BOOST_CHECK during static initialization.

The boost test library shipped with Ubuntu 16.04 throws an exception
if you do that.

6 months agoReplace BOOST_TEST with an older BOOST_CHECK for Ubuntu 16.04.
Carl Hetherington [Mon, 9 Oct 2023 23:38:14 +0000 (01:38 +0200)]
Replace BOOST_TEST with an older BOOST_CHECK for Ubuntu 16.04.

6 months agoAvoid full_name() so we can build on Ubuntu 16.04.
Carl Hetherington [Mon, 9 Oct 2023 23:25:31 +0000 (01:25 +0200)]
Avoid full_name() so we can build on Ubuntu 16.04.

6 months agoAvoid depends_on() so we can build on Ubuntu 16.04.
Carl Hetherington [Mon, 9 Oct 2023 23:25:23 +0000 (01:25 +0200)]
Avoid depends_on() so we can build on Ubuntu 16.04.

6 months agoSwitch to testing on Ubuntu 16.04 and 22.04.
Carl Hetherington [Mon, 9 Oct 2023 22:50:57 +0000 (00:50 +0200)]
Switch to testing on Ubuntu 16.04 and 22.04.

6 months agoImplement weakly_canonical for boost versions without it (e.g. the one on Ubuntu...
Carl Hetherington [Mon, 9 Oct 2023 22:40:00 +0000 (00:40 +0200)]
Implement weakly_canonical for boost versions without it (e.g. the one on Ubuntu 16.04).

6 months agoAdd more filesystem wrappers that DoM needs. v1.8.83
Carl Hetherington [Fri, 6 Oct 2023 00:31:12 +0000 (02:31 +0200)]
Add more filesystem wrappers that DoM needs.

6 months agoAdd wrappers around boost::filesystem methods that handle the
Carl Hetherington [Fri, 6 Oct 2023 00:04:49 +0000 (02:04 +0200)]
Add wrappers around boost::filesystem methods that handle the
required mangling of long filenames on Windows.

Also wrap lots of missing places (e.g. calls to asdcplib, libxml++,
libcxml etc.) in dcp::filesystem::fix_long_path().

The idea is to keep paths un-mangled until they we call some
filesystem-related API and mangle them at that point.  Otherwise
we end up serialising mangled names, which seems like it will
not end well.

Should fix DoM #2623.

6 months agoCleanup: sorting.
Carl Hetherington [Fri, 6 Oct 2023 00:03:48 +0000 (02:03 +0200)]
Cleanup: sorting.

7 months agoRemove odd assertion stopping TZ minutes being more than 30 or less than -30 (DoM... v1.8.82
Carl Hetherington [Wed, 13 Sep 2023 19:37:15 +0000 (21:37 +0200)]
Remove odd assertion stopping TZ minutes being more than 30 or less than -30 (DoM/GH #20).

7 months agoReport failures to read resources from MXF files. v1.8.81
Carl Hetherington [Wed, 6 Sep 2023 20:46:27 +0000 (22:46 +0200)]
Report failures to read resources from MXF files.

7 months agoBump the PNG subtitle / font buffer a little.
Carl Hetherington [Wed, 6 Sep 2023 20:46:14 +0000 (22:46 +0200)]
Bump the PNG subtitle / font buffer a little.

8 months agoFix build when there is no {Image,Graphics}Magick v1.8.80
Carl Hetherington [Thu, 31 Aug 2023 21:41:23 +0000 (23:41 +0200)]
Fix build when there is no {Image,Graphics}Magick