libdcp.git
3 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.

3 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).

3 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.

4 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.

7 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

7 months agoDon't build dcpdumpimage unless we have {Image,Graphics}Magick
Carl Hetherington [Thu, 31 Aug 2023 21:40:32 +0000 (23:40 +0200)]
Don't build dcpdumpimage unless we have {Image,Graphics}Magick

7 months agoCleanup: use a loop.
Carl Hetherington [Thu, 31 Aug 2023 21:40:12 +0000 (23:40 +0200)]
Cleanup: use a loop.

8 months agoAdd dcpdumpimage tool.
Carl Hetherington [Sun, 27 Aug 2023 21:13:34 +0000 (23:13 +0200)]
Add dcpdumpimage tool.

8 months agoCheck for missing font files referred from Interop closed captions (as well as subs).
Carl Hetherington [Thu, 24 Aug 2023 21:19:44 +0000 (23:19 +0200)]
Check for missing font files referred from Interop closed captions (as well as subs).

8 months agoFix Windows build failure. v1.8.79
Carl Hetherington [Tue, 22 Aug 2023 22:05:42 +0000 (00:05 +0200)]
Fix Windows build failure.

8 months agoAccept any case for subtitle alignment specifiers (#2602). v1.8.78
Carl Hetherington [Tue, 22 Aug 2023 21:45:13 +0000 (23:45 +0200)]
Accept any case for subtitle alignment specifiers (#2602).

SMPTE seems pretty clear to me that these should be lower case, but
counterexamples have been seen in the wild and it seems to make
sense to allow them.

Perhaps the verifier should raise an error with non-lower-case
examples.

8 months agoAdd some tests.
Carl Hetherington [Tue, 22 Aug 2023 21:35:32 +0000 (23:35 +0200)]
Add some tests.

8 months agoCleanup: extract HAlign to its own files.
Carl Hetherington [Tue, 22 Aug 2023 21:18:20 +0000 (23:18 +0200)]
Cleanup: extract HAlign to its own files.

8 months agoCleanup: extract VAlign to its own files.
Carl Hetherington [Tue, 22 Aug 2023 21:11:18 +0000 (23:11 +0200)]
Cleanup: extract VAlign to its own files.

8 months agoCleanup: header ordering.
Carl Hetherington [Tue, 22 Aug 2023 21:11:04 +0000 (23:11 +0200)]
Cleanup: header ordering.

8 months agoBump asdcplib for probably-unimportant undefined variable use fix. v1.8.77
Carl Hetherington [Tue, 15 Aug 2023 16:33:26 +0000 (18:33 +0200)]
Bump asdcplib for probably-unimportant undefined variable use fix.

8 months agoFix use-after-free in error case.
Carl Hetherington [Tue, 15 Aug 2023 10:33:33 +0000 (12:33 +0200)]
Fix use-after-free in error case.

8 months agoFix dcp::LocalTime constructor to cope with longer fractional second parts (DoM ...
Carl Hetherington [Tue, 15 Aug 2023 10:28:21 +0000 (12:28 +0200)]
Fix dcp::LocalTime constructor to cope with longer fractional second parts (DoM #2597).

8 months agoAdd check for empty <LabelText> in <ContentVersion> v1.8.76
Carl Hetherington [Fri, 11 Aug 2023 18:51:21 +0000 (20:51 +0200)]
Add check for empty <LabelText> in <ContentVersion>

We have a report of Deluxe failing a DCP because of this.

8 months agoCleanup: comment formatting for auto-generated docs.
Carl Hetherington [Fri, 11 Aug 2023 18:39:19 +0000 (20:39 +0200)]
Cleanup: comment formatting for auto-generated docs.

8 months agoCleanup: make some default constructors more consistent. v1.8.75
Carl Hetherington [Tue, 8 Aug 2023 16:21:24 +0000 (18:21 +0200)]
Cleanup: make some default constructors more consistent.

8 months agoFix boost bind placeholder warnings.
Carl Hetherington [Tue, 8 Aug 2023 12:38:47 +0000 (14:38 +0200)]
Fix boost bind placeholder warnings.

8 months agoCleanup: header ordering.
Carl Hetherington [Tue, 8 Aug 2023 12:38:39 +0000 (14:38 +0200)]
Cleanup: header ordering.

8 months agoRemove unused method.
Carl Hetherington [Tue, 8 Aug 2023 12:38:13 +0000 (14:38 +0200)]
Remove unused method.

8 months agoIgnore some ASDCP warnings.
Carl Hetherington [Tue, 8 Aug 2023 12:38:09 +0000 (14:38 +0200)]
Ignore some ASDCP warnings.

8 months agoAdd equality option sound_assets_can_differ.
Carl Hetherington [Sat, 29 Jul 2023 00:25:32 +0000 (02:25 +0200)]
Add equality option sound_assets_can_differ.

9 months agoRationalise #undef-ing of ERROR. tidy-eq-options
Carl Hetherington [Tue, 25 Jul 2023 20:00:47 +0000 (22:00 +0200)]
Rationalise #undef-ing of ERROR.

9 months agoInclude trimming.
Carl Hetherington [Tue, 25 Jul 2023 13:38:50 +0000 (15:38 +0200)]
Include trimming.

9 months agoCleanup: move EqualityOptions into its own file.
Carl Hetherington [Tue, 25 Jul 2023 13:28:11 +0000 (15:28 +0200)]
Cleanup: move EqualityOptions into its own file.

9 months agoCleanup: forward declaration sorting.
Carl Hetherington [Tue, 25 Jul 2023 13:05:37 +0000 (15:05 +0200)]
Cleanup: forward declaration sorting.

9 months agoCleanup: include sorting.
Carl Hetherington [Tue, 25 Jul 2023 12:58:02 +0000 (14:58 +0200)]
Cleanup: include sorting.

9 months agoCleanup: pass EqualityOptions as const&
Carl Hetherington [Tue, 25 Jul 2023 12:51:23 +0000 (14:51 +0200)]
Cleanup: pass EqualityOptions as const&

This exposes a useless assignment of export_differing_subtitles,
which I've removed (and altered the comment accordingly).

9 months agoCleanup: use = default.
Carl Hetherington [Tue, 25 Jul 2023 12:41:57 +0000 (14:41 +0200)]
Cleanup: use = default.

9 months agoMake EqualityOptions into a class.
Carl Hetherington [Tue, 25 Jul 2023 12:40:19 +0000 (14:40 +0200)]
Make EqualityOptions into a class.

9 months agoCleanup: fix typo in comment.
Carl Hetherington [Tue, 25 Jul 2023 12:31:43 +0000 (14:31 +0200)]
Cleanup: fix typo in comment.

9 months agoAdd asset_hashes_can_differ option to the equality checks. v1.8.74
Carl Hetherington [Wed, 28 Jun 2023 21:00:57 +0000 (23:00 +0200)]
Add asset_hashes_can_differ option to the equality checks.

Before recent changes Asset::_hash would be empty when the equality
checks were run (and Asset::equals() compares them directly).

This mean that differences in asset hash were being ignored, but
are no longer; so now we need this option to restore that behaviour
where required.

9 months agoWhen reading a DCP set up asset hashes from the CPL/PKL, not by digesting the actual...
Carl Hetherington [Mon, 26 Jun 2023 22:11:43 +0000 (00:11 +0200)]
When reading a DCP set up asset hashes from the CPL/PKL, not by digesting the actual asset.

Previously when reading a DCP we would recalculate asset hashes.  This meant that corrupted
DCPs could be loaded in and their hashes re-written (if nobody checked the new hashes against
the ones in the PKL/CPL).

It seems better to take the hashes from the metadata.  Then if the assets are corrupted
and the DCP is re-written the PKL/CPL hashes will be preserved, showing rather than hiding
the corruption.

10 months agoAdd Asset::unset_hash().
Carl Hetherington [Mon, 26 Jun 2023 22:06:14 +0000 (00:06 +0200)]
Add Asset::unset_hash().

10 months agoCleanup: remove unnecessary namespace.
Carl Hetherington [Mon, 26 Jun 2023 22:05:55 +0000 (00:05 +0200)]
Cleanup: remove unnecessary namespace.

10 months agoFix tests that were writing assets with the same filename to different reels.
Carl Hetherington [Mon, 26 Jun 2023 22:05:38 +0000 (00:05 +0200)]
Fix tests that were writing assets with the same filename to different reels.

10 months agoCleanup: sorting.
Carl Hetherington [Mon, 26 Jun 2023 00:13:22 +0000 (02:13 +0200)]
Cleanup: sorting.

10 months agoMove Editor class from verify_test.cc to test.cc
Carl Hetherington [Sun, 25 Jun 2023 23:56:07 +0000 (01:56 +0200)]
Move Editor class from verify_test.cc to test.cc

10 months agoAdd verifier check for the actual asset file's ID not being the same as the one in...
Carl Hetherington [Sun, 25 Jun 2023 23:45:17 +0000 (01:45 +0200)]
Add verifier check for the actual asset file's ID not being the same as the one in the asset map.

10 months agoCleanup: better variable names.
Carl Hetherington [Sun, 25 Jun 2023 23:20:34 +0000 (01:20 +0200)]
Cleanup: better variable names.

10 months agoCleanup: const.
Carl Hetherington [Sun, 25 Jun 2023 23:18:06 +0000 (01:18 +0200)]
Cleanup: const.

10 months agoAdd Asset::set_file_preserving_hash().
Carl Hetherington [Tue, 20 Jun 2023 20:06:02 +0000 (22:06 +0200)]
Add Asset::set_file_preserving_hash().

10 months agoCleanup: set annotation text in make_simple().
Carl Hetherington [Tue, 20 Jun 2023 20:05:20 +0000 (22:05 +0200)]
Cleanup: set annotation text in make_simple().

10 months agoVerify error if SMPTE subtitle asset has <Text> but no <LoadFont>. v1.8.73
Carl Hetherington [Tue, 30 May 2023 23:36:49 +0000 (01:36 +0200)]
Verify error if SMPTE subtitle asset has <Text> but no <LoadFont>.

10 months agoCleanup: replace a nasty try/catch.
Carl Hetherington [Tue, 30 May 2023 23:35:49 +0000 (01:35 +0200)]
Cleanup: replace a nasty try/catch.

10 months agoCleanup: formatting.
Carl Hetherington [Tue, 30 May 2023 23:20:09 +0000 (01:20 +0200)]
Cleanup: formatting.

10 months agoCleanup: remove some unpleasant (and I think unnecessary) casting.
Carl Hetherington [Tue, 30 May 2023 23:18:01 +0000 (01:18 +0200)]
Cleanup: remove some unpleasant (and I think unnecessary) casting.

10 months agoRename MISSING_LOAD_FONT -> MISSING_LOAD_FONT_FOR_FONT.
Carl Hetherington [Tue, 30 May 2023 23:13:08 +0000 (01:13 +0200)]
Rename MISSING_LOAD_FONT -> MISSING_LOAD_FONT_FOR_FONT.

10 months agoCleanup: comment typo fix.
Carl Hetherington [Tue, 30 May 2023 23:12:13 +0000 (01:12 +0200)]
Cleanup: comment typo fix.

11 months agoAdd SoundAsset::active_channels(). v1.8.72
Carl Hetherington [Sun, 28 May 2023 21:01:32 +0000 (23:01 +0200)]
Add SoundAsset::active_channels().

11 months agoFix stupid mistake introduced in 1e010ab5. v1.8.71
Carl Hetherington [Sun, 28 May 2023 21:00:58 +0000 (23:00 +0200)]
Fix stupid mistake introduced in 1e010ab5.

11 months agoDon't unconditionally clear _fonts when inspecting assets (DoM #2536). v1.8.70
Carl Hetherington [Sun, 28 May 2023 00:12:39 +0000 (02:12 +0200)]
Don't unconditionally clear _fonts when inspecting assets (DoM #2536).

resolve_fonts() is sometimes called for the same asset with different
lists of things to check.  If it is called first with a font, and
then without one, we want to keep the font from the first call.

11 months agoCleanup: use find_if().
Carl Hetherington [Sun, 28 May 2023 00:12:03 +0000 (02:12 +0200)]
Cleanup: use find_if().

11 months agoCleanup: reduce some scopes.
Carl Hetherington [Sun, 28 May 2023 18:07:32 +0000 (20:07 +0200)]
Cleanup: reduce some scopes.

11 months agoMore detailed error message.
Carl Hetherington [Wed, 24 May 2023 21:46:57 +0000 (23:46 +0200)]
More detailed error message.