Carl Hetherington [Fri, 6 Oct 2023 00:31:12 +0000 (02:31 +0200)]
Add more filesystem wrappers that DoM needs.
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.
Carl Hetherington [Fri, 6 Oct 2023 00:03:48 +0000 (02:03 +0200)]
Cleanup: sorting.
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).
Carl Hetherington [Wed, 6 Sep 2023 20:46:27 +0000 (22:46 +0200)]
Report failures to read resources from MXF files.
Carl Hetherington [Wed, 6 Sep 2023 20:46:14 +0000 (22:46 +0200)]
Bump the PNG subtitle / font buffer a little.
Carl Hetherington [Thu, 31 Aug 2023 21:41:23 +0000 (23:41 +0200)]
Fix build when there is no {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
Carl Hetherington [Thu, 31 Aug 2023 21:40:12 +0000 (23:40 +0200)]
Cleanup: use a loop.
Carl Hetherington [Sun, 27 Aug 2023 21:13:34 +0000 (23:13 +0200)]
Add dcpdumpimage tool.
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).
Carl Hetherington [Tue, 22 Aug 2023 22:05:42 +0000 (00:05 +0200)]
Fix Windows build failure.
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.
Carl Hetherington [Tue, 22 Aug 2023 21:35:32 +0000 (23:35 +0200)]
Add some tests.
Carl Hetherington [Tue, 22 Aug 2023 21:18:20 +0000 (23:18 +0200)]
Cleanup: extract HAlign to its own files.
Carl Hetherington [Tue, 22 Aug 2023 21:11:18 +0000 (23:11 +0200)]
Cleanup: extract VAlign to its own files.
Carl Hetherington [Tue, 22 Aug 2023 21:11:04 +0000 (23:11 +0200)]
Cleanup: header ordering.
Carl Hetherington [Tue, 15 Aug 2023 16:33:26 +0000 (18:33 +0200)]
Bump asdcplib for probably-unimportant undefined variable use fix.
Carl Hetherington [Tue, 15 Aug 2023 10:33:33 +0000 (12:33 +0200)]
Fix use-after-free in error case.
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).
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.
Carl Hetherington [Fri, 11 Aug 2023 18:39:19 +0000 (20:39 +0200)]
Cleanup: comment formatting for auto-generated docs.
Carl Hetherington [Tue, 8 Aug 2023 16:21:24 +0000 (18:21 +0200)]
Cleanup: make some default constructors more consistent.
Carl Hetherington [Tue, 8 Aug 2023 12:38:47 +0000 (14:38 +0200)]
Fix boost bind placeholder warnings.
Carl Hetherington [Tue, 8 Aug 2023 12:38:39 +0000 (14:38 +0200)]
Cleanup: header ordering.
Carl Hetherington [Tue, 8 Aug 2023 12:38:13 +0000 (14:38 +0200)]
Remove unused method.
Carl Hetherington [Tue, 8 Aug 2023 12:38:09 +0000 (14:38 +0200)]
Ignore some ASDCP warnings.
Carl Hetherington [Sat, 29 Jul 2023 00:25:32 +0000 (02:25 +0200)]
Add equality option sound_assets_can_differ.
Carl Hetherington [Tue, 25 Jul 2023 20:00:47 +0000 (22:00 +0200)]
Rationalise #undef-ing of ERROR.
Carl Hetherington [Tue, 25 Jul 2023 13:38:50 +0000 (15:38 +0200)]
Include trimming.
Carl Hetherington [Tue, 25 Jul 2023 13:28:11 +0000 (15:28 +0200)]
Cleanup: move EqualityOptions into its own file.
Carl Hetherington [Tue, 25 Jul 2023 13:05:37 +0000 (15:05 +0200)]
Cleanup: forward declaration sorting.
Carl Hetherington [Tue, 25 Jul 2023 12:58:02 +0000 (14:58 +0200)]
Cleanup: include sorting.
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).
Carl Hetherington [Tue, 25 Jul 2023 12:41:57 +0000 (14:41 +0200)]
Cleanup: use = default.
Carl Hetherington [Tue, 25 Jul 2023 12:40:19 +0000 (14:40 +0200)]
Make EqualityOptions into a class.
Carl Hetherington [Tue, 25 Jul 2023 12:31:43 +0000 (14:31 +0200)]
Cleanup: fix typo in comment.
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.
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.
Carl Hetherington [Mon, 26 Jun 2023 22:06:14 +0000 (00:06 +0200)]
Add Asset::unset_hash().
Carl Hetherington [Mon, 26 Jun 2023 22:05:55 +0000 (00:05 +0200)]
Cleanup: remove unnecessary namespace.
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.
Carl Hetherington [Mon, 26 Jun 2023 00:13:22 +0000 (02:13 +0200)]
Cleanup: sorting.
Carl Hetherington [Sun, 25 Jun 2023 23:56:07 +0000 (01:56 +0200)]
Move Editor class from verify_test.cc to test.cc
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.
Carl Hetherington [Sun, 25 Jun 2023 23:20:34 +0000 (01:20 +0200)]
Cleanup: better variable names.
Carl Hetherington [Sun, 25 Jun 2023 23:18:06 +0000 (01:18 +0200)]
Cleanup: const.
Carl Hetherington [Tue, 20 Jun 2023 20:06:02 +0000 (22:06 +0200)]
Add Asset::set_file_preserving_hash().
Carl Hetherington [Tue, 20 Jun 2023 20:05:20 +0000 (22:05 +0200)]
Cleanup: set annotation text in make_simple().
Carl Hetherington [Tue, 30 May 2023 23:36:49 +0000 (01:36 +0200)]
Verify error if SMPTE subtitle asset has <Text> but no <LoadFont>.
Carl Hetherington [Tue, 30 May 2023 23:35:49 +0000 (01:35 +0200)]
Cleanup: replace a nasty try/catch.
Carl Hetherington [Tue, 30 May 2023 23:20:09 +0000 (01:20 +0200)]
Cleanup: formatting.
Carl Hetherington [Tue, 30 May 2023 23:18:01 +0000 (01:18 +0200)]
Cleanup: remove some unpleasant (and I think unnecessary) casting.
Carl Hetherington [Tue, 30 May 2023 23:13:08 +0000 (01:13 +0200)]
Rename MISSING_LOAD_FONT -> MISSING_LOAD_FONT_FOR_FONT.
Carl Hetherington [Tue, 30 May 2023 23:12:13 +0000 (01:12 +0200)]
Cleanup: comment typo fix.
Carl Hetherington [Sun, 28 May 2023 21:01:32 +0000 (23:01 +0200)]
Add SoundAsset::active_channels().
Carl Hetherington [Sun, 28 May 2023 21:00:58 +0000 (23:00 +0200)]
Fix stupid mistake introduced in
1e010ab5.
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.
Carl Hetherington [Sun, 28 May 2023 00:12:03 +0000 (02:12 +0200)]
Cleanup: use find_if().
Carl Hetherington [Sun, 28 May 2023 18:07:32 +0000 (20:07 +0200)]
Cleanup: reduce some scopes.
Carl Hetherington [Wed, 24 May 2023 21:46:57 +0000 (23:46 +0200)]
More detailed error message.
Carl Hetherington [Sun, 21 May 2023 20:03:23 +0000 (22:03 +0200)]
Remove unnecessary initializers.
Carl Hetherington [Sun, 14 May 2023 22:46:43 +0000 (00:46 +0200)]
Formatting tidying; use vector instead of scoped_array.
Carl Hetherington [Sun, 14 May 2023 22:41:40 +0000 (00:41 +0200)]
Style/formatting tweaks.
Carl Hetherington [Thu, 11 May 2023 23:35:26 +0000 (01:35 +0200)]
Add SubtitleAsset::ensure_font().
Carl Hetherington [Thu, 11 May 2023 18:06:14 +0000 (20:06 +0200)]
Cleanup: ues BOOST_CHECK_EQUAL.
Carl Hetherington [Thu, 11 May 2023 12:57:41 +0000 (14:57 +0200)]
Remove some debugging prints.
Carl Hetherington [Thu, 11 May 2023 12:47:52 +0000 (14:47 +0200)]
Check that all <Font> tags have a corresponding <LoadFont> in the verifier.
Carl Hetherington [Thu, 11 May 2023 12:47:19 +0000 (14:47 +0200)]
Add ID member to verification note.
Carl Hetherington [Wed, 26 Apr 2023 14:42:43 +0000 (16:42 +0200)]
Give better errors when invalid urn:uuid: strings are found (DoM #2521).
Carl Hetherington [Thu, 20 Apr 2023 12:56:30 +0000 (14:56 +0200)]
Fix crash when trying to verify an encrypted SMPTE subtitle asset.
Carl Hetherington [Fri, 7 Apr 2023 18:59:44 +0000 (20:59 +0200)]
Add test for too many subtitle namespaces.
Carl Hetherington [Fri, 7 Apr 2023 18:59:33 +0000 (20:59 +0200)]
Add missing operator case.
Carl Hetherington [Thu, 6 Apr 2023 20:32:14 +0000 (22:32 +0200)]
Remove xmlns:xs namespace from subtitle XML (DoM #2498).
Carl Hetherington [Sun, 16 Apr 2023 21:43:21 +0000 (23:43 +0200)]
Fix build.
Carl Hetherington [Sun, 16 Apr 2023 21:34:42 +0000 (23:34 +0200)]
Check for tile parts being too big in the verifier (DoM #2450).
Carl Hetherington [Sun, 16 Apr 2023 21:34:15 +0000 (23:34 +0200)]
Bump openjpeg to allow higher than 250Mbit/s data rates for J2K (DoM #1665).
Carl Hetherington [Sun, 16 Apr 2023 20:17:26 +0000 (22:17 +0200)]
Cleanup: include ordering and white space.
Carl Hetherington [Sat, 15 Apr 2023 20:27:01 +0000 (22:27 +0200)]
Use a map and boost::any to make it a little neater to add more metadata to VerificationNote.
Carl Hetherington [Sun, 16 Apr 2023 20:07:10 +0000 (22:07 +0200)]
Use a shared_ptr<vector> for ArrayData rather than a shared_array.
This is simpler and allows us to remove the hack of allocating some
"maximum" buffer for incoming JPEG2000 data.
It does mean that the buffer is zero-initialized before being written
to, but hopefully that doesn't matter too much.
Carl Hetherington [Sat, 15 Apr 2023 13:42:55 +0000 (15:42 +0200)]
Cleanup: remove a couple of unnecessary namespace qualifiers.
Carl Hetherington [Fri, 14 Apr 2023 14:05:59 +0000 (16:05 +0200)]
Replace slightly weird add_font_assets() API.
Carl Hetherington [Fri, 14 Apr 2023 14:05:23 +0000 (16:05 +0200)]
Cleanup: use a find_if().
Carl Hetherington [Thu, 13 Apr 2023 21:40:25 +0000 (23:40 +0200)]
Fix resolve_fonts() if it is called twice.
Carl Hetherington [Thu, 13 Apr 2023 21:39:59 +0000 (23:39 +0200)]
Add const version of add_font_assets().
Carl Hetherington [Thu, 13 Apr 2023 21:39:40 +0000 (23:39 +0200)]
Add check for Interop font assets being present (in the ASSETMAP and on disk).
Carl Hetherington [Thu, 13 Apr 2023 21:38:01 +0000 (23:38 +0200)]
Add some missing full stops.
Carl Hetherington [Thu, 13 Apr 2023 21:37:29 +0000 (23:37 +0200)]
Add font assets to combined DCPs; otherwise the fonts don't show up in the ASSETMAP.
Carl Hetherington [Tue, 11 Apr 2023 20:57:11 +0000 (22:57 +0200)]
Fix typos in variable names.
Carl Hetherington [Tue, 11 Apr 2023 20:56:50 +0000 (22:56 +0200)]
Fix typos in exceptions.
Carl Hetherington [Tue, 11 Apr 2023 20:53:05 +0000 (22:53 +0200)]
Fix typos in comments.
Carl Hetherington [Fri, 7 Apr 2023 19:09:45 +0000 (21:09 +0200)]
Clarify success message from dcpverify a little.
Carl Hetherington [Tue, 4 Apr 2023 21:09:29 +0000 (23:09 +0200)]
Add check for mismatch between sound asset and MainSoundConfiguration.
Carl Hetherington [Sun, 2 Apr 2023 21:10:39 +0000 (23:10 +0200)]
Add check for mismatched sound channel counts.
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).
Carl Hetherington [Tue, 4 Apr 2023 21:05:27 +0000 (23:05 +0200)]
Add some missing sound field specifiers to tests.
Carl Hetherington [Mon, 20 Mar 2023 15:55:09 +0000 (16:55 +0100)]
Remove now-redundant test.
Carl Hetherington [Mon, 20 Mar 2023 23:37:12 +0000 (00:37 +0100)]
Allow specification of channels that need a MCASubDescriptor.
Carl Hetherington [Fri, 17 Mar 2023 13:54:40 +0000 (14:54 +0100)]
Remove now-presumed-wrong 2.0 MCA sound field.
Carl Hetherington [Fri, 17 Mar 2023 13:11:34 +0000 (14:11 +0100)]
Use an enum instead of a bool in PictureAsset::start_write().