libdcp.git
5 days agoFix update-language-subtags to include all descriptions for a particular code. master
Carl Hetherington [Sat, 12 Jun 2021 18:51:44 +0000 (20:51 +0200)]
Fix update-language-subtags to include all descriptions for a particular code.

This avoids, e.g. "nl" being labelled as only Flemish and not also
Dutch.

13 days agoAdd option to ignore mismatched HMACs when reading MXFs.
Carl Hetherington [Fri, 4 Jun 2021 12:37:43 +0000 (14:37 +0200)]
Add option to ignore mismatched HMACs when reading MXFs.

13 days agoMissing finalize() in dcpdecryptmxf.
Carl Hetherington [Fri, 4 Jun 2021 11:54:23 +0000 (13:54 +0200)]
Missing finalize() in dcpdecryptmxf.

13 days agoImprove dcpdecryptmxf in various ways.
Carl Hetherington [Fri, 4 Jun 2021 11:32:30 +0000 (13:32 +0200)]
Improve dcpdecryptmxf in various ways.

13 days agoFix up dcpdecryptmxf start script in various ways.
Carl Hetherington [Fri, 4 Jun 2021 11:32:12 +0000 (13:32 +0200)]
Fix up dcpdecryptmxf start script in various ways.

2 weeks agoAdd missing LIBDCP_RESOURCES to script.
Carl Hetherington [Thu, 3 Jun 2021 22:21:49 +0000 (00:21 +0200)]
Add missing LIBDCP_RESOURCES to script.

2 weeks agoTest churn from adding make_uuid() into CPL.
Carl Hetherington [Tue, 1 Jun 2021 23:38:53 +0000 (01:38 +0200)]
Test churn from adding make_uuid() into CPL.

2 weeks agoImprove output when a test fails.
Carl Hetherington [Tue, 1 Jun 2021 23:27:41 +0000 (01:27 +0200)]
Improve output when a test fails.

2 weeks agoReduce test flakyness a bit.
Carl Hetherington [Tue, 1 Jun 2021 23:27:33 +0000 (01:27 +0200)]
Reduce test flakyness a bit.

2 weeks agoPass through CompositionMetadataAsset correctly.
Carl Hetherington [Tue, 1 Jun 2021 22:33:01 +0000 (00:33 +0200)]
Pass through CompositionMetadataAsset correctly.

We weren't saving Id, and were not quite handling FullContentText
correctly.

3 weeks agoMake similar changes to the previous commit for _xml_id.
Carl Hetherington [Thu, 27 May 2021 12:22:48 +0000 (14:22 +0200)]
Make similar changes to the previous commit for _xml_id.

This is also unavailable if the asset is encrypted.

3 weeks agoTidy handling of _raw_xml.
Carl Hetherington [Thu, 27 May 2021 12:21:35 +0000 (14:21 +0200)]
Tidy handling of _raw_xml.

Before this if we tried to get the XML of an encrypted asset we
would just get an empty string.  Now we get a boost::none which
means the verifier can avoid trying to check details of the XML
(and instead raise a warning that you are trying to verify data
that it cannot decrypt).

3 weeks agoFix bug causing failure to decrypt SMPTE subtitles.
Carl Hetherington [Thu, 27 May 2021 12:19:40 +0000 (14:19 +0200)]
Fix bug causing failure to decrypt SMPTE subtitles.

3 weeks agoC++11 cleanup.
Carl Hetherington [Thu, 27 May 2021 12:16:40 +0000 (14:16 +0200)]
C++11 cleanup.

3 weeks agoRead the bits we can from the MXF header even when it is encrypted.
Carl Hetherington [Thu, 27 May 2021 09:45:11 +0000 (11:45 +0200)]
Read the bits we can from the MXF header even when it is encrypted.

3 weeks agoSort notes when checking verifications.
Carl Hetherington [Thu, 27 May 2021 09:44:21 +0000 (11:44 +0200)]
Sort notes when checking verifications.

So that the lists in the tests don't have to be in the right order.

5 weeks agoActually use correct gcc version in check from previous.
Carl Hetherington [Fri, 7 May 2021 16:21:51 +0000 (18:21 +0200)]
Actually use correct gcc version in check from previous.

5 weeks agoFix build on old GCC.
Carl Hetherington [Fri, 7 May 2021 16:15:39 +0000 (18:15 +0200)]
Fix build on old GCC.

6 weeks agoAlso install mono_picture_asset_writer.h
Mart Jansink [Mon, 26 Apr 2021 09:52:39 +0000 (11:52 +0200)]
Also install mono_picture_asset_writer.h

6 weeks agoPrefer the tags directory specified in LIBDCP_RESOURCES
Mart Jansink [Mon, 26 Apr 2021 09:50:25 +0000 (11:50 +0200)]
Prefer the tags directory specified in LIBDCP_RESOURCES

6 weeks agoAlso depend on libcxml
Mart Jansink [Mon, 26 Apr 2021 09:48:53 +0000 (11:48 +0200)]
Also depend on libcxml

7 weeks agoSlightly more details message when sound data differs in ::equals().
Carl Hetherington [Thu, 29 Apr 2021 07:36:46 +0000 (09:36 +0200)]
Slightly more details message when sound data differs in ::equals().

8 weeks agoDon't give an error on verifying Interop DCPs with possibly-incorrectly
Carl Hetherington [Thu, 22 Apr 2021 19:56:38 +0000 (21:56 +0200)]
Don't give an error on verifying Interop DCPs with possibly-incorrectly
marked 3D assets.

This also adds a warning into the verification output.

I don't know if this is actually a standard violation but they
have been seen in the wild made by "reputable" DCP creation software.

DoM bug #1976.

2 months agoFix macOS build warning.
Carl Hetherington [Wed, 14 Apr 2021 22:02:56 +0000 (00:02 +0200)]
Fix macOS build warning.

2 months agoMissing header install.
Carl Hetherington [Wed, 14 Apr 2021 14:49:50 +0000 (16:49 +0200)]
Missing header install.

2 months agoImprove handling of image subtitle IDs in XML (DoM bug #1965)
Carl Hetherington [Wed, 14 Apr 2021 07:56:21 +0000 (09:56 +0200)]
Improve handling of image subtitle IDs in XML (DoM bug #1965)

When reading/writing the XML for image subtitles, we assumed that
the content of the <Image> tag is just the ID of the PNG in the MXF,
without any prefix.

DoM bug #1965 mentions a DCP where this is not the case, and SMPTE
429-5-2009 has an example where there is urn:uuid: in the XML.

This change makes DoM write this urn:uuid: prefix, and accept it if
it's present (but not complain if it's not).

If the urn:uuid: _is_ required in the field, it's a bit surprising
that nobody has complained up to this point.  Maybe nobody noticed,
or nobody reported it.

2 months agoIgnore parameters in PKL type strings when checking them.
Carl Hetherington [Wed, 14 Apr 2021 10:40:01 +0000 (12:40 +0200)]
Ignore parameters in PKL type strings when checking them.

2 months agoRename write_subtitle_test -> shared_subtitle_test
Carl Hetherington [Wed, 14 Apr 2021 09:28:50 +0000 (11:28 +0200)]
Rename write_subtitle_test -> shared_subtitle_test

2 months agoMove some tests from write_subtitle_test into interop_subtitle_test.
Carl Hetherington [Wed, 14 Apr 2021 09:26:08 +0000 (11:26 +0200)]
Move some tests from write_subtitle_test into interop_subtitle_test.

2 months agoRename read_interop_subtitle_test -> interop_subtitle_test.
Carl Hetherington [Wed, 14 Apr 2021 09:23:59 +0000 (11:23 +0200)]
Rename read_interop_subtitle_test -> interop_subtitle_test.

2 months agoMove some tests from write_subtitle_test to smpte_subtitle_test.
Carl Hetherington [Wed, 14 Apr 2021 09:14:13 +0000 (11:14 +0200)]
Move some tests from write_subtitle_test to smpte_subtitle_test.

2 months agoMerge read_smpte_subtitle_test with smpte_subtitle_test.
Carl Hetherington [Wed, 14 Apr 2021 09:11:47 +0000 (11:11 +0200)]
Merge read_smpte_subtitle_test with smpte_subtitle_test.

2 months agoMissing file.
Carl Hetherington [Wed, 14 Apr 2021 07:57:00 +0000 (09:57 +0200)]
Missing file.

2 months agoC++11 tidying.
Carl Hetherington [Wed, 14 Apr 2021 07:46:55 +0000 (09:46 +0200)]
C++11 tidying.

2 months agoFix/hide some warnings.
Carl Hetherington [Tue, 13 Apr 2021 23:00:05 +0000 (01:00 +0200)]
Fix/hide some warnings.

2 months agoTidying a few things up.
Carl Hetherington [Tue, 13 Apr 2021 21:50:28 +0000 (23:50 +0200)]
Tidying a few things up.

2 months agoRemove ReelEncryptableAsset and tidy up a bit.
Carl Hetherington [Tue, 13 Apr 2021 21:36:22 +0000 (23:36 +0200)]
Remove ReelEncryptableAsset and tidy up a bit.

2 months agoMake ReelAsset the parent of ReelFileAsset.
Carl Hetherington [Mon, 12 Apr 2021 23:38:56 +0000 (01:38 +0200)]
Make ReelAsset the parent of ReelFileAsset.

2 months agoAdd some missing override statements. sub-rework
Carl Hetherington [Sun, 11 Apr 2021 22:38:01 +0000 (00:38 +0200)]
Add some missing override statements.

2 months agoSplit ReelClosedCaptionAsset into Interop and SMPTE parts.
Carl Hetherington [Sun, 11 Apr 2021 22:20:44 +0000 (00:20 +0200)]
Split ReelClosedCaptionAsset into Interop and SMPTE parts.

2 months agoC++11 tidying.
Carl Hetherington [Sun, 11 Apr 2021 20:25:21 +0000 (22:25 +0200)]
C++11 tidying.

2 months agoSpecify CPL standard on construction.
Carl Hetherington [Sun, 11 Apr 2021 20:24:44 +0000 (22:24 +0200)]
Specify CPL standard on construction.

Then choose which standard DCP should use based on the CPL(s).

2 months agoSplit ReelSubtitleAsset into Interop and SMPTE classes.
Carl Hetherington [Sun, 11 Apr 2021 18:49:44 +0000 (20:49 +0200)]
Split ReelSubtitleAsset into Interop and SMPTE classes.

2 months agoSmall bits of tidying up.
Carl Hetherington [Sun, 11 Apr 2021 18:49:18 +0000 (20:49 +0200)]
Small bits of tidying up.

2 months agoAdd header guards.
Carl Hetherington [Sun, 11 Apr 2021 18:46:55 +0000 (20:46 +0200)]
Add header guards.

2 months agoExtract some parts of ReelEncryptableAsset into ReelFileAsset
Carl Hetherington [Sat, 10 Apr 2021 22:10:30 +0000 (00:10 +0200)]
Extract some parts of ReelEncryptableAsset into ReelFileAsset

2 months agoRename ReelFileAsset -> ReelEncryptableAsset
Carl Hetherington [Sat, 10 Apr 2021 21:54:31 +0000 (23:54 +0200)]
Rename ReelFileAsset -> ReelEncryptableAsset

2 months agoAdd check for Bv2.1 10.4.3 - container duration vs reel duration in timed text.
Carl Hetherington [Fri, 9 Apr 2021 21:49:42 +0000 (23:49 +0200)]
Add check for Bv2.1 10.4.3 - container duration vs reel duration in timed text.

2 months agoAdd accessor for intrinsic_duration in SMPTESubtitleAsset.
Carl Hetherington [Fri, 9 Apr 2021 21:49:07 +0000 (23:49 +0200)]
Add accessor for intrinsic_duration in SMPTESubtitleAsset.

2 months agoMake sound asset language optional.
Carl Hetherington [Thu, 8 Apr 2021 22:02:09 +0000 (00:02 +0200)]
Make sound asset language optional.

2 months agoVerify that SMPTE subtitle IDs are handled properly (DoM #1962).
Carl Hetherington [Thu, 8 Apr 2021 00:07:05 +0000 (02:07 +0200)]
Verify that SMPTE subtitle IDs are handled properly (DoM #1962).

2 months agoDon't set the MXF _id from the XML <Id> tag.
Carl Hetherington [Thu, 8 Apr 2021 00:05:04 +0000 (02:05 +0200)]
Don't set the MXF _id from the XML <Id> tag.

They should not be the same, so it's unhelpful to make them so.
parse_xml() sets up _xml_id anyway.

2 months agoExpose the MXF ResourceID from SMPTESubtitleAsset.
Carl Hetherington [Thu, 8 Apr 2021 00:04:44 +0000 (02:04 +0200)]
Expose the MXF ResourceID from SMPTESubtitleAsset.

2 months agoComment tweaks.
Carl Hetherington [Thu, 8 Apr 2021 00:04:06 +0000 (02:04 +0200)]
Comment tweaks.

2 months agoDon't try to verify encrypted JPEG2000 bitstreams.
Carl Hetherington [Tue, 6 Apr 2021 12:34:23 +0000 (14:34 +0200)]
Don't try to verify encrypted JPEG2000 bitstreams.

2 months agoHide dump_notes() again.
Carl Hetherington [Tue, 6 Apr 2021 12:34:05 +0000 (14:34 +0200)]
Hide dump_notes() again.

2 months agoCall verify_j2k when verifying DCPs.
Carl Hetherington [Mon, 5 Apr 2021 22:39:20 +0000 (00:39 +0200)]
Call verify_j2k when verifying DCPs.

2 months agoAdd Luminance::value_in_foot_lamberts().
Carl Hetherington [Sat, 3 Apr 2021 18:29:45 +0000 (20:29 +0200)]
Add Luminance::value_in_foot_lamberts().

2 months agoWrite MCA tags based on the specified sound field.
Carl Hetherington [Thu, 25 Mar 2021 23:09:15 +0000 (00:09 +0100)]
Write MCA tags based on the specified sound field.

I had previously assumed that one should write MCA information into
the sound MXF based on what channels actually contain sound rather
than silence.

However a previous example of a stereo DCP gives a verification error
in EasyDCP (see DoM bug #1935) which is solved by adding MCA tags
for each channel in the specified sound field (e.g. at least 6 tags
for a file which is marked as 5.1) even if the audio is really stereo.

This commit removes the "active channels" stuff and makes sure
that if we say a file is 5.1 we write at least 6 MCA tags (and
similarly for 7.1).

2 months agoAdd operator!= and operator< for LanguageTag
Carl Hetherington [Tue, 23 Mar 2021 18:16:46 +0000 (19:16 +0100)]
Add operator!= and operator< for LanguageTag

2 months agoAdd headerpad option for the macOS linker.
Carl Hetherington [Sun, 21 Mar 2021 22:02:18 +0000 (23:02 +0100)]
Add headerpad option for the macOS linker.

2 months agoAdd access to DCNC list.
Carl Hetherington [Sat, 20 Mar 2021 09:51:34 +0000 (10:51 +0100)]
Add access to DCNC list.

2 months agoAdd DCNC tags file.
Carl Hetherington [Fri, 19 Mar 2021 21:45:46 +0000 (22:45 +0100)]
Add DCNC tags file.

2 months agoMissing library for static build.
Carl Hetherington [Fri, 19 Mar 2021 10:03:42 +0000 (11:03 +0100)]
Missing library for static build.

2 months agoFix static test buid.
Carl Hetherington [Thu, 18 Mar 2021 23:08:25 +0000 (00:08 +0100)]
Fix static test buid.

2 months agoImprove errors when verifying a non-DCP directory.
Carl Hetherington [Wed, 17 Mar 2021 23:20:17 +0000 (00:20 +0100)]
Improve errors when verifying a non-DCP directory.

2 months agoTidy how we're finding the tags and xsd directories.
Carl Hetherington [Wed, 17 Mar 2021 10:53:28 +0000 (11:53 +0100)]
Tidy how we're finding the tags and xsd directories.

3 months agoFix combining when two DCPs both contain copies of the same asset.
Carl Hetherington [Wed, 17 Mar 2021 21:38:08 +0000 (22:38 +0100)]
Fix combining when two DCPs both contain copies of the same asset.

3 months agoFix various bugs in subtitle/ccap verification.
Carl Hetherington [Mon, 15 Mar 2021 00:36:51 +0000 (01:36 +0100)]
Fix various bugs in subtitle/ccap verification.

Check that subtitles don't overlap reel boundaries, and fix a few
tests that trip this check.

Fix confusion when calculating subtitle timings during verification
where the picture asset frame rate was being used rather than the
subtitle asset's edit rate.

Do the subtitle timing verification for Interop as well as SMPTE
subtitles.

Take <StartTime> tags into account when checking subtitles, even
though Bv2.1 says they should be set to 0.

Rename Time::as_editable_units to Time::as_editable_units_ceil
and add a _floor variant, then use that to round down when checking
reel boundary overlaps.

3 months agoAdd operator-= to Time.
Carl Hetherington [Mon, 15 Mar 2021 00:30:47 +0000 (01:30 +0100)]
Add operator-= to Time.

3 months agoUse std::array.
Carl Hetherington [Sat, 27 Feb 2021 23:09:48 +0000 (00:09 +0100)]
Use std::array.

3 months agoUse new write() method in example.
Carl Hetherington [Sat, 27 Feb 2021 23:09:38 +0000 (00:09 +0100)]
Use new write() method in example.

3 months agoWhitespace.
Carl Hetherington [Sat, 27 Feb 2021 23:09:29 +0000 (00:09 +0100)]
Whitespace.

3 months agoAdd missing dcp::init() to example.
Carl Hetherington [Sat, 27 Feb 2021 23:09:14 +0000 (00:09 +0100)]
Add missing dcp::init() to example.

3 months agoAdd new write() method.
Carl Hetherington [Sat, 27 Feb 2021 23:08:56 +0000 (00:08 +0100)]
Add new write() method.

3 months agoImproved comments.
Carl Hetherington [Fri, 26 Feb 2021 09:08:02 +0000 (10:08 +0100)]
Improved comments.

3 months agoEnglish language tweaks.
Carl Hetherington [Sun, 21 Feb 2021 11:10:59 +0000 (12:10 +0100)]
English language tweaks.

3 months agoDon't give a verification error if there are closed caption tracks with different...
Carl Hetherington [Sat, 20 Feb 2021 21:52:04 +0000 (22:52 +0100)]
Don't give a verification error if there are closed caption tracks with different languages (DoM bug #1907).

4 months agoSome const correctness for decompress_j2k
Carl Hetherington [Sun, 14 Feb 2021 19:55:37 +0000 (20:55 +0100)]
Some const correctness for decompress_j2k

4 months agoComment fixes.
Carl Hetherington [Sun, 7 Feb 2021 01:44:52 +0000 (02:44 +0100)]
Comment fixes.

4 months agoBasic analysis (verification) of J2K codestreams.
Carl Hetherington [Wed, 27 Jan 2021 00:27:53 +0000 (01:27 +0100)]
Basic analysis (verification) of J2K codestreams.

4 months agoDon't use flat_red.j2c for the simple DCP test as it's only 8-bit.
Carl Hetherington [Thu, 28 Jan 2021 22:13:15 +0000 (23:13 +0100)]
Don't use flat_red.j2c for the simple DCP test as it's only 8-bit.

4 months agoUse 1 guard bit in JPEG2000 encoding for 2K, per Bv2.1.
Carl Hetherington [Thu, 28 Jan 2021 21:27:40 +0000 (22:27 +0100)]
Use 1 guard bit in JPEG2000 encoding for 2K, per Bv2.1.

4 months agoRename j2k.{cc,h} => j2k_transcode.{cc,h}
Carl Hetherington [Wed, 27 Jan 2021 00:06:05 +0000 (01:06 +0100)]
Rename j2k.{cc,h} => j2k_transcode.{cc,h}

4 months agoTweak comment.
Carl Hetherington [Sat, 6 Feb 2021 21:22:45 +0000 (22:22 +0100)]
Tweak comment.

4 months agoImprove a comment.
Carl Hetherington [Thu, 4 Feb 2021 20:33:19 +0000 (21:33 +0100)]
Improve a comment.

4 months agoFix failure to write Interop closed captions.
Carl Hetherington [Thu, 4 Feb 2021 16:34:16 +0000 (17:34 +0100)]
Fix failure to write Interop closed captions.

4 months agoSome compilers don't like x = {} where x is a boost::optional<string>
Carl Hetherington [Tue, 2 Feb 2021 21:02:29 +0000 (22:02 +0100)]
Some compilers don't like x = {} where x is a boost::optional<string>

Fails on ubuntu 16 and debian 9.

4 months agoFix strange Windows build error introduced in 6c37cc1979b2a01205a888c4c98f3334685ee8dd
Carl Hetherington [Sun, 31 Jan 2021 22:50:17 +0000 (23:50 +0100)]
Fix strange Windows build error introduced in 6c37cc1979b2a01205a888c4c98f3334685ee8dd

4 months ago0 => nullptr fix.
Carl Hetherington [Tue, 26 Jan 2021 23:38:32 +0000 (00:38 +0100)]
0 => nullptr fix.

4 months agoFix install.
Carl Hetherington [Tue, 26 Jan 2021 20:53:27 +0000 (21:53 +0100)]
Fix install.

4 months agoRename ReelMXF -> ReelFileAsset.
Carl Hetherington [Tue, 26 Jan 2021 20:52:21 +0000 (21:52 +0100)]
Rename ReelMXF -> ReelFileAsset.

4 months agoDoc fixes.
Carl Hetherington [Sun, 24 Jan 2021 22:14:21 +0000 (23:14 +0100)]
Doc fixes.

4 months agoFix previous.
Carl Hetherington [Sun, 24 Jan 2021 22:00:36 +0000 (23:00 +0100)]
Fix previous.

4 months agoTidying.
Carl Hetherington [Sun, 24 Jan 2021 21:56:33 +0000 (22:56 +0100)]
Tidying.

4 months agoTidying.
Carl Hetherington [Sun, 24 Jan 2021 03:15:26 +0000 (04:15 +0100)]
Tidying.

4 months agoTidying.
Carl Hetherington [Sat, 23 Jan 2021 14:35:24 +0000 (15:35 +0100)]
Tidying.

4 months agoTidy a little and add some coding style.
Carl Hetherington [Sat, 23 Jan 2021 14:34:24 +0000 (15:34 +0100)]
Tidy a little and add some coding style.

4 months agoRemove Windows XP support and pin asdcplib version.
Carl Hetherington [Sat, 23 Jan 2021 08:49:29 +0000 (09:49 +0100)]
Remove Windows XP support and pin asdcplib version.

4 months agoSmall bits of pre-release tidying.
Carl Hetherington [Sat, 23 Jan 2021 08:48:00 +0000 (09:48 +0100)]
Small bits of pre-release tidying.