libdcp.git
12 months agoHacks. 2507-thumbprint
Carl Hetherington [Tue, 11 Apr 2023 20:37:33 +0000 (22:37 +0200)]
Hacks.

12 months agoClarify success message from dcpverify a little.
Carl Hetherington [Fri, 7 Apr 2023 19:09:45 +0000 (21:09 +0200)]
Clarify success message from dcpverify a little.

12 months agoAdd check for mismatch between sound asset and MainSoundConfiguration. v1.8.66
Carl Hetherington [Tue, 4 Apr 2023 21:09:29 +0000 (23:09 +0200)]
Add check for mismatch between sound asset and MainSoundConfiguration.

12 months agoAdd check for mismatched sound channel counts.
Carl Hetherington [Sun, 2 Apr 2023 21:10:39 +0000 (23:10 +0200)]
Add check for mismatched sound channel counts.

12 months agoPass MainSoundConfiguration object rather than a string.
Carl Hetherington [Sun, 2 Apr 2023 21:10:24 +0000 (23:10 +0200)]
Pass MainSoundConfiguration object rather than a string.

I guess originally it was a string mostly because it's not very well defined,
and Interop seemingly does whatever it wants.  This basic change also means
that things are checked more carefully, and so we must be more relaxed with
some things seen in the wild that I can't find contradictions for in the
standard (and also with the case of channel IDs, which does seem to be
mentioned in the standard).

12 months agoAdd some missing sound field specifiers to tests.
Carl Hetherington [Tue, 4 Apr 2023 21:05:27 +0000 (23:05 +0200)]
Add some missing sound field specifiers to tests.

13 months agoRemove now-redundant test. v1.8.65
Carl Hetherington [Mon, 20 Mar 2023 15:55:09 +0000 (16:55 +0100)]
Remove now-redundant test.

13 months agoAllow specification of channels that need a MCASubDescriptor.
Carl Hetherington [Mon, 20 Mar 2023 23:37:12 +0000 (00:37 +0100)]
Allow specification of channels that need a MCASubDescriptor.

13 months agoRemove now-presumed-wrong 2.0 MCA sound field.
Carl Hetherington [Fri, 17 Mar 2023 13:54:40 +0000 (14:54 +0100)]
Remove now-presumed-wrong 2.0 MCA sound field.

13 months agoUse an enum instead of a bool in PictureAsset::start_write().
Carl Hetherington [Fri, 17 Mar 2023 13:11:34 +0000 (14:11 +0100)]
Use an enum instead of a bool in PictureAsset::start_write().

13 months agoRemove the bools and default parameters from SoundAsset::start_write().
Carl Hetherington [Fri, 17 Mar 2023 12:33:08 +0000 (13:33 +0100)]
Remove the bools and default parameters from SoundAsset::start_write().

They were more confusing than they were worth.

13 months agoCleanup: using sorting.
Carl Hetherington [Thu, 16 Mar 2023 22:02:22 +0000 (23:02 +0100)]
Cleanup: using sorting.

13 months agoAllow writing to sound assets with int32_t as well as float.
Carl Hetherington [Thu, 16 Mar 2023 20:07:10 +0000 (21:07 +0100)]
Allow writing to sound assets with int32_t as well as float.

13 months agoSpecify number of channels in the data passed to SoundAssetWriter, and pad channels...
Carl Hetherington [Thu, 16 Mar 2023 18:51:27 +0000 (19:51 +0100)]
Specify number of channels in the data passed to SoundAssetWriter, and pad channels that aren't there.

13 months agoAdd Asset::rename_file().
Carl Hetherington [Mon, 6 Mar 2023 00:01:04 +0000 (01:01 +0100)]
Add Asset::rename_file().

13 months agoCleanup: fix indentation.
Carl Hetherington [Mon, 6 Mar 2023 00:00:28 +0000 (01:00 +0100)]
Cleanup: fix indentation.

13 months agoFix default value of include_mca_subdescriptors in dcp.h
Carl Hetherington [Sun, 5 Mar 2023 22:32:50 +0000 (23:32 +0100)]
Fix default value of include_mca_subdescriptors in dcp.h

13 months agoAdd include_mca_subdescriptors flag to SoundAsset writer. v1.8.64
Carl Hetherington [Wed, 1 Mar 2023 18:44:25 +0000 (19:44 +0100)]
Add include_mca_subdescriptors flag to SoundAsset writer.

13 months agoAdd include_mca_subdescriptors to DCP::write_xml(), passing it through to the CPL.
Carl Hetherington [Wed, 1 Mar 2023 18:41:09 +0000 (19:41 +0100)]
Add include_mca_subdescriptors to DCP::write_xml(), passing it through to the CPL.

13 months agoAdd include_mca_subdescriptors option to CPL::write_xml().
Carl Hetherington [Tue, 28 Feb 2023 13:17:04 +0000 (14:17 +0100)]
Add include_mca_subdescriptors option to CPL::write_xml().

13 months agoCleanup: extract write_mca_subdescriptors().
Carl Hetherington [Tue, 28 Feb 2023 11:08:47 +0000 (12:08 +0100)]
Cleanup: extract write_mca_subdescriptors().

13 months agoFix tests again on Windows. v1.8.63
Carl Hetherington [Mon, 27 Feb 2023 09:46:36 +0000 (10:46 +0100)]
Fix tests again on Windows.

13 months agoFix signed-ness warning on macOS.
Carl Hetherington [Mon, 27 Feb 2023 09:08:42 +0000 (10:08 +0100)]
Fix signed-ness warning on macOS.

14 months agoRemove LIBDCP_VERSION in favour of dcp::version. v1.8.62
Carl Hetherington [Sun, 26 Feb 2023 20:07:11 +0000 (21:07 +0100)]
Remove LIBDCP_VERSION in favour of dcp::version.

The former is only set at configure which is a bit confusing,
and I can't think of a reason to have both.

14 months agoFix warning.
Carl Hetherington [Sun, 26 Feb 2023 20:06:58 +0000 (21:06 +0100)]
Fix warning.

14 months agoFix tests with different library versions.
Carl Hetherington [Sun, 26 Feb 2023 19:56:34 +0000 (20:56 +0100)]
Fix tests with different library versions.

14 months agoFix test references after IssueDate change. v1.8.61
Carl Hetherington [Sun, 26 Feb 2023 10:20:02 +0000 (11:20 +0100)]
Fix test references after IssueDate change.

14 months agoBe explicit about the version of SMPTE 428-7 that is used for subtitles, 2389-vpos v1.8.60
Carl Hetherington [Sun, 11 Dec 2022 21:27:34 +0000 (22:27 +0100)]
Be explicit about the version of SMPTE 428-7 that is used for subtitles,
and default to writing the 2014 namespace.

14 months agoAllow verification of 428-7-2014 subtitles.
Carl Hetherington [Sun, 11 Dec 2022 21:26:46 +0000 (22:26 +0100)]
Allow verification of 428-7-2014 subtitles.

14 months agoUpdate comment with details about SMPTE 2010/2014 subtitle standards.
Carl Hetherington [Sun, 11 Dec 2022 19:21:37 +0000 (20:21 +0100)]
Update comment with details about SMPTE 2010/2014 subtitle standards.

14 months agoDon't crash if the descriptor's sampling rate denominator is 0.
Carl Hetherington [Fri, 17 Feb 2023 20:27:28 +0000 (21:27 +0100)]
Don't crash if the descriptor's sampling rate denominator is 0.

14 months agoFix incorrect filename encoding on Windows (DoM #2459). v1.8.59
Carl Hetherington [Fri, 17 Feb 2023 09:36:10 +0000 (10:36 +0100)]
Fix incorrect filename encoding on Windows (DoM #2459).

14 months agoChange how whitespace in subtitles is handled.
Carl Hetherington [Thu, 16 Feb 2023 20:56:22 +0000 (21:56 +0100)]
Change how whitespace in subtitles is handled.

Previously we would discard any whitespace subtitle content we found.
This had the side-effect of making a verification test fail (checking
that at least one subtitle is in each reel; blank subtitles are often
used to avoid this warning).

Here we take any subtitle content, whitespace or not, inside a
<Text> or <Image> node which I think is a little more correct.

14 months agoInterop CPLs don't have MainPictureStoredArea (#2452). v1.8.58
Carl Hetherington [Mon, 13 Feb 2023 14:17:26 +0000 (15:17 +0100)]
Interop CPLs don't have MainPictureStoredArea (#2452).

14 months agoGive a better error when a KDMFormatError is thrown (DoM #2446). v1.8.57
Carl Hetherington [Sun, 12 Feb 2023 22:09:46 +0000 (23:09 +0100)]
Give a better error when a KDMFormatError is thrown (DoM #2446).

14 months agoThrow xmlpp::internal_error also as KDMFormatError.
Carl Hetherington [Sun, 12 Feb 2023 22:09:29 +0000 (23:09 +0100)]
Throw xmlpp::internal_error also as KDMFormatError.

14 months agoAdd --no-asset-hash-check and --asset-hash-check-maximum-size (DoM #2444). v1.8.56
Carl Hetherington [Sun, 12 Feb 2023 18:38:53 +0000 (19:38 +0100)]
Add --no-asset-hash-check and --asset-hash-check-maximum-size (DoM #2444).

14 months agoTerminate dcpverify correctly when an invalid option is passed.
Carl Hetherington [Sun, 12 Feb 2023 18:37:26 +0000 (19:37 +0100)]
Terminate dcpverify correctly when an invalid option is passed.

14 months agoAdd another raw_convert().
Carl Hetherington [Sun, 12 Feb 2023 18:37:06 +0000 (19:37 +0100)]
Add another raw_convert().

14 months agoCleanup: use a local variable.
Carl Hetherington [Sun, 12 Feb 2023 14:40:07 +0000 (15:40 +0100)]
Cleanup: use a local variable.

14 months agoIn Deluxe's "Specifications for Digital Cinema Source and DCP Content Delivery" v1.8.55
Carl Hetherington [Thu, 2 Feb 2023 00:03:40 +0000 (01:03 +0100)]
In Deluxe's "Specifications for Digital Cinema Source and DCP Content Delivery"
they say that subtitle <IssueDate> must be of the form yyyy-mm-ddThh:mm:ss

They don't explain it, and the standards don't say this (as far as I can see)
but as usual their QC fails <IssueDates> that don't meet this "spec" so here
we are.

See also:
https://dcpomatic.com/forum/viewtopic.php?t=2069

14 months agoCheck IssueDate for Deluxe complaint.
Carl Hetherington [Thu, 2 Feb 2023 00:03:27 +0000 (01:03 +0100)]
Check IssueDate for Deluxe complaint.

14 months agoAdd with_timezone parameter to ::to_string().
Carl Hetherington [Thu, 2 Feb 2023 00:02:50 +0000 (01:02 +0100)]
Add with_timezone parameter to ::to_string().

15 months agoOnly write the appropriate number of AudioChannelLabelSubDescriptors (DoM #2431). v1.8.54
Carl Hetherington [Mon, 23 Jan 2023 23:54:52 +0000 (00:54 +0100)]
Only write the appropriate number of AudioChannelLabelSubDescriptors (DoM #2431).

15 months agoAdd channels parameter to simple_audio().
Carl Hetherington [Mon, 23 Jan 2023 23:54:25 +0000 (00:54 +0100)]
Add channels parameter to simple_audio().

15 months agoAdd support for 20 as a MainSoundConfiguration. v1.8.53
Carl Hetherington [Sun, 15 Jan 2023 20:15:16 +0000 (21:15 +0100)]
Add support for 20 as a MainSoundConfiguration.

15 months agoAdd some more operators to LocalTime.
Carl Hetherington [Thu, 19 Jan 2023 11:45:49 +0000 (12:45 +0100)]
Add some more operators to LocalTime.

15 months agoAdd a comment.
Carl Hetherington [Thu, 19 Jan 2023 10:26:40 +0000 (11:26 +0100)]
Add a comment.

15 months agoAdd some new issuer access methods. v1.8.52
Carl Hetherington [Mon, 16 Jan 2023 20:16:54 +0000 (21:16 +0100)]
Add some new issuer access methods.

15 months agoFix tests. v1.8.51
Carl Hetherington [Mon, 16 Jan 2023 06:39:25 +0000 (07:39 +0100)]
Fix tests.

15 months agoCheck that Interop subtitle files have at least one subtitle.
Carl Hetherington [Sun, 15 Jan 2023 22:13:49 +0000 (23:13 +0100)]
Check that Interop subtitle files have at least one subtitle.

It was reported on the forum that files without any <Font> or
<Subtitle> tags fail validation on EasyDCP 3.0.1 and crash
Qubemaster Pro 3.0.15.

15 months agoRemove a test directory before running. v1.8.50
Carl Hetherington [Sun, 8 Jan 2023 13:19:00 +0000 (14:19 +0100)]
Remove a test directory before running.

15 months agoCompare LoadFont URIs and asset paths correctly (DoM #2402).
Carl Hetherington [Sat, 7 Jan 2023 23:22:55 +0000 (00:22 +0100)]
Compare LoadFont URIs and asset paths correctly (DoM #2402).

15 months agoCleanup: use std::find_if
Carl Hetherington [Sat, 7 Jan 2023 23:28:02 +0000 (00:28 +0100)]
Cleanup: use std::find_if

15 months agoCleanup: improve loop variable names.
Carl Hetherington [Sat, 7 Jan 2023 23:25:59 +0000 (00:25 +0100)]
Cleanup: improve loop variable names.

15 months agoCleanup: rename AssetMap::path -> file for consistency.
Carl Hetherington [Sun, 1 Jan 2023 20:27:16 +0000 (21:27 +0100)]
Cleanup: rename AssetMap::path -> file for consistency.

15 months agoCleanup: rename PKL::asset_list -> assets for consistency.
Carl Hetherington [Sun, 1 Jan 2023 20:19:51 +0000 (21:19 +0100)]
Cleanup: rename PKL::asset_list -> assets for consistency.

15 months agoCheck for multiple asset IDs in an ASSETMAP during verify.
Carl Hetherington [Sun, 1 Jan 2023 20:14:30 +0000 (21:14 +0100)]
Check for multiple asset IDs in an ASSETMAP during verify.

15 months agoAdd DCP::asset_map().
Carl Hetherington [Sun, 1 Jan 2023 20:14:18 +0000 (21:14 +0100)]
Add DCP::asset_map().

15 months agoAdd AssetMap::assets().
Carl Hetherington [Sun, 1 Jan 2023 20:14:04 +0000 (21:14 +0100)]
Add AssetMap::assets().

15 months agoCleanup: extract verify_assetmap().
Carl Hetherington [Sun, 1 Jan 2023 19:57:45 +0000 (20:57 +0100)]
Cleanup: extract verify_assetmap().

15 months agoCleanup: const correctness.
Carl Hetherington [Sun, 1 Jan 2023 19:57:31 +0000 (20:57 +0100)]
Cleanup: const correctness.

15 months agoCheck for multiple asset IDs in a PKL during verify.
Carl Hetherington [Sat, 31 Dec 2022 21:47:05 +0000 (22:47 +0100)]
Check for multiple asset IDs in a PKL during verify.

15 months agoCleanup: using ordering.
Carl Hetherington [Sat, 31 Dec 2022 21:46:15 +0000 (22:46 +0100)]
Cleanup: using ordering.

15 months agoCleanup: extract verify_pkl().
Carl Hetherington [Sat, 31 Dec 2022 20:59:29 +0000 (21:59 +0100)]
Cleanup: extract verify_pkl().

15 months agoCleanup: const correctness.
Carl Hetherington [Sat, 31 Dec 2022 20:59:03 +0000 (21:59 +0100)]
Cleanup: const correctness.

15 months agoCleanup: remove dead code.
Carl Hetherington [Tue, 3 Jan 2023 20:20:52 +0000 (21:20 +0100)]
Cleanup: remove dead code.

15 months agoChange the behaviour of LocalTime::operator== to make the same time in different... v1.8.49
Carl Hetherington [Fri, 30 Dec 2022 17:12:33 +0000 (18:12 +0100)]
Change the behaviour of LocalTime::operator== to make the same time in different time zones equal.

Previously different offsets would mean that the times compared as
not-equal.

15 months agoFix LocalTime::operator< and operator> to handle offset gracefully.
Carl Hetherington [Fri, 30 Dec 2022 17:11:50 +0000 (18:11 +0100)]
Fix LocalTime::operator< and operator> to handle offset gracefully.

15 months agoAdd dcp::LocalTime::millisecond().
Carl Hetherington [Fri, 30 Dec 2022 17:10:28 +0000 (18:10 +0100)]
Add dcp::LocalTime::millisecond().

15 months agoFix some embarassing bugs in dcp::LocalTime comparisons.
Carl Hetherington [Fri, 30 Dec 2022 16:31:32 +0000 (17:31 +0100)]
Fix some embarassing bugs in dcp::LocalTime comparisons.

16 months agoCleanup: extract verify_cpl().
Carl Hetherington [Tue, 27 Dec 2022 00:06:17 +0000 (01:06 +0100)]
Cleanup: extract verify_cpl().

16 months agoCleanup: extract verify_reel()
Carl Hetherington [Mon, 26 Dec 2022 23:57:06 +0000 (00:57 +0100)]
Cleanup: extract verify_reel()

16 months agoRemove out-of-date comment.
Carl Hetherington [Sun, 25 Dec 2022 21:59:54 +0000 (22:59 +0100)]
Remove out-of-date comment.

16 months agoFix windows build.
Carl Hetherington [Fri, 23 Dec 2022 19:20:47 +0000 (20:20 +0100)]
Fix windows build.

16 months agoAdd File::open_error().
Carl Hetherington [Fri, 23 Dec 2022 19:14:59 +0000 (20:14 +0100)]
Add File::open_error().

16 months agoWhitespace fix.
Carl Hetherington [Fri, 23 Dec 2022 19:14:53 +0000 (20:14 +0100)]
Whitespace fix.

16 months agoCleanup: remove randomly-added using. v1.8.48
Carl Hetherington [Thu, 22 Dec 2022 12:11:01 +0000 (13:11 +0100)]
Cleanup: remove randomly-added using.

16 months agoWrite OriginalFileName tags in PKL (DoM #2394).
Carl Hetherington [Thu, 22 Dec 2022 00:59:11 +0000 (01:59 +0100)]
Write OriginalFileName tags in PKL (DoM #2394).

Without these it EasyDCP gives errors like

"Id field in PKL must match uuid in asset"
"Each Id used in the PKL files must be unique or reference the same file"

which seem wrong but, as usual, here we are.

16 months agoSet plaintext offset to 0 when writing J2K frames (DoM #2391)
Carl Hetherington [Tue, 20 Dec 2022 23:12:41 +0000 (00:12 +0100)]
Set plaintext offset to 0 when writing J2K frames (DoM #2391)

Without this the EasyDCP verifier gives errors like

"sum of individual components is larger than the file size"

This change results in there being no plaintext metadata in each
encoded frame.  It looks like the DCP-2000 was fixed in around
2010 to not crash with plaintext metadata, and the asdcplib tools
at some point started defaulting to this behaviour also.

16 months agoRe-make expired test certificate chain.
Carl Hetherington [Thu, 22 Dec 2022 19:55:25 +0000 (20:55 +0100)]
Re-make expired test certificate chain.

16 months agoSupport some different headers in private_key_fingerprint()
Carl Hetherington [Thu, 22 Dec 2022 20:08:51 +0000 (21:08 +0100)]
Support some different headers in private_key_fingerprint()

16 months agoStore not_valid_{before,after} when reading encrypted KDMs.
Carl Hetherington [Thu, 22 Dec 2022 19:54:47 +0000 (20:54 +0100)]
Store not_valid_{before,after} when reading encrypted KDMs.

16 months agoCleanup: use std::vector and some auto.
Carl Hetherington [Thu, 22 Dec 2022 15:55:40 +0000 (16:55 +0100)]
Cleanup: use std::vector and some auto.

16 months agoGive a better error from chain_valid() when a certificate has some problem (e.g....
Carl Hetherington [Thu, 22 Dec 2022 15:36:41 +0000 (16:36 +0100)]
Give a better error from chain_valid() when a certificate has some problem (e.g. it has expired).

16 months agoRelax the COC component number verification error (DoM #2395). v1.8.47
Carl Hetherington [Wed, 21 Dec 2022 11:27:06 +0000 (12:27 +0100)]
Relax the COC component number verification error (DoM #2395).

A DCP is seen in the wild with 1 here and it doesn't seem unreasonable
that there should be a COC for each component.

16 months agoAdd detail to the invalid COC component number error. v1.8.46
Carl Hetherington [Tue, 20 Dec 2022 18:20:26 +0000 (19:20 +0100)]
Add detail to the invalid COC component number error.

16 months agoIt's not easy to install Python 3 on Ubuntu 16.04, so work around the difference... v1.8.45
Carl Hetherington [Tue, 20 Dec 2022 11:21:59 +0000 (12:21 +0100)]
It's not easy to install Python 3 on Ubuntu 16.04, so work around the difference instead of blocking it.

16 months agoMore adventures in strings and python versions. Stop allowing Python 2 to run this... v1.8.44
Carl Hetherington [Mon, 19 Dec 2022 11:34:09 +0000 (12:34 +0100)]
More adventures in strings and python versions.  Stop allowing Python 2 to run this script.

16 months agoCan't use the encoding parameter to Popen as it's Python 3.6+ only. v1.8.43
Carl Hetherington [Mon, 19 Dec 2022 09:34:43 +0000 (10:34 +0100)]
Can't use the encoding parameter to Popen as it's Python 3.6+ only.

16 months agoAnother attempt to fix UTF-8/byte SNAFUs in wscript. v1.8.42
Carl Hetherington [Sat, 17 Dec 2022 21:16:38 +0000 (22:16 +0100)]
Another attempt to fix UTF-8/byte SNAFUs in wscript.

16 months agoFix ./waf dist v1.8.41
Carl Hetherington [Fri, 16 Dec 2022 09:50:14 +0000 (10:50 +0100)]
Fix ./waf dist

16 months agoVerify that main picture active area is valid (even, and not too big) (#2392). v1.8.40
Carl Hetherington [Thu, 15 Dec 2022 23:01:47 +0000 (00:01 +0100)]
Verify that main picture active area is valid (even, and not too big) (#2392).

16 months agoThrow exceptions when setting odd values for picture active area.
Carl Hetherington [Thu, 15 Dec 2022 23:01:21 +0000 (00:01 +0100)]
Throw exceptions when setting odd values for picture active area.

16 months agoTidy up find_cpl() and add find_pkl().
Carl Hetherington [Thu, 15 Dec 2022 22:52:43 +0000 (23:52 +0100)]
Tidy up find_cpl() and add find_pkl().

16 months agoSome more details when verification results fail.
Carl Hetherington [Thu, 15 Dec 2022 22:51:21 +0000 (23:51 +0100)]
Some more details when verification results fail.

16 months agoAdd delete_lines_after to the Editor.
Carl Hetherington [Thu, 15 Dec 2022 22:51:06 +0000 (23:51 +0100)]
Add delete_lines_after to the Editor.

16 months agoAdd some line spacing in the editor.
Carl Hetherington [Thu, 15 Dec 2022 22:49:51 +0000 (23:49 +0100)]
Add some line spacing in the editor.

16 months agoTidy the Editor class up a little.
Carl Hetherington [Thu, 15 Dec 2022 21:13:30 +0000 (22:13 +0100)]
Tidy the Editor class up a little.

16 months agoAdd some more setters. 2300-kdm-timing v1.8.39
Carl Hetherington [Thu, 1 Dec 2022 20:47:43 +0000 (21:47 +0100)]
Add some more setters.