dcpomatic.git
3 years agoBOOST_FOREACH.
Carl Hetherington [Mon, 4 Jan 2021 20:32:13 +0000 (21:32 +0100)]
BOOST_FOREACH.

3 years agostd::shared_ptr
Carl Hetherington [Mon, 4 Jan 2021 20:16:53 +0000 (21:16 +0100)]
std::shared_ptr

3 years agoRelink different architectures in a nicer and safer way. v2.15.120
Carl Hetherington [Thu, 7 Jan 2021 15:47:03 +0000 (16:47 +0100)]
Relink different architectures in a nicer and safer way.

3 years agoTry to fix previous commit. v2.15.119
Carl Hetherington [Thu, 7 Jan 2021 12:17:11 +0000 (13:17 +0100)]
Try to fix previous commit.

3 years agoUpdate lwext4 for build fix so that its arm64 library is relinked v2.15.118
Carl Hetherington [Thu, 7 Jan 2021 11:06:42 +0000 (12:06 +0100)]
Update lwext4 for build fix so that its arm64 library is relinked
correctly.

Otherwise gatekeeper refuses to run DCP-o-matic.

3 years agoSeems over-complicated to use SDK-specific subdirectories. v2.15.117
Carl Hetherington [Tue, 5 Jan 2021 17:09:25 +0000 (18:09 +0100)]
Seems over-complicated to use SDK-specific subdirectories.

3 years agoMake a universal binary containing x86_64 for SDK 10.9 and arm64 for SDK 11.0. v2.15.116
Carl Hetherington [Tue, 5 Jan 2021 10:04:13 +0000 (11:04 +0100)]
Make a universal binary containing x86_64 for SDK 10.9 and arm64 for SDK 11.0.

3 years agoAnother linux build fix. v2.15.115
Carl Hetherington [Mon, 4 Jan 2021 14:17:43 +0000 (15:17 +0100)]
Another linux build fix.

3 years agoFix linux build broken by arm64 changes. v2.15.114
Carl Hetherington [Mon, 4 Jan 2021 13:23:59 +0000 (14:23 +0100)]
Fix linux build broken by arm64 changes.

3 years agoFix libssh re-linking error (it ended up linked as @rpath/libssh.4.dylib) v2.15.113
Carl Hetherington [Sat, 2 Jan 2021 15:54:17 +0000 (16:54 +0100)]
Fix libssh re-linking error (it ended up linked as @rpath/libssh.4.dylib)

3 years agoCheck that pango/cairo stuff is created successfully.
Carl Hetherington [Sat, 2 Jan 2021 15:53:52 +0000 (16:53 +0100)]
Check that pango/cairo stuff is created successfully.

3 years agoFix macOS image construction stuff for the 64-bit only, 10.9-or-higher world.
Carl Hetherington [Wed, 30 Dec 2020 11:32:27 +0000 (12:32 +0100)]
Fix macOS image construction stuff for the 64-bit only, 10.9-or-higher world.

Now we can build:
  - arm64/x86_64 universal builds against 11.0
  - x86_64 thin builds against 10.9

Which means no more support for 32-bit macOS (which I think excludes
macs made in 2011 or earlier) or for 10.8 (Mountain Lion) or earlier
(released in 2012 and possibly end-of-lifed in October 2015).

3 years agoAdd the option com.apple.security.cs.allow-dyld-environment-variables.
Carl Hetherington [Mon, 28 Dec 2020 22:17:56 +0000 (23:17 +0100)]
Add the option com.apple.security.cs.allow-dyld-environment-variables.

Without this the use of @executable_path in links to .dylibs causes
problems, perhaps only when linking against the 11.0 SDK.

3 years agoCopy some more .dylibs that are required by the updated osx-environment.
Carl Hetherington [Mon, 28 Dec 2020 17:04:24 +0000 (18:04 +0100)]
Copy some more .dylibs that are required by the updated osx-environment.

3 years agoSupport for arm64 macOS builds.
Carl Hetherington [Fri, 1 Jan 2021 21:16:21 +0000 (22:16 +0100)]
Support for arm64 macOS builds.

3 years agoHide macOS OpenGL deprecation.
Carl Hetherington [Thu, 24 Dec 2020 01:53:27 +0000 (02:53 +0100)]
Hide macOS OpenGL deprecation.

3 years agoWhen building against macOS SDK 11.0 we need an explicit link with bz2.
Carl Hetherington [Wed, 23 Dec 2020 19:24:41 +0000 (20:24 +0100)]
When building against macOS SDK 11.0 we need an explicit link with bz2.

3 years agoUpdate dependencies for arm64 builds.
Carl Hetherington [Wed, 23 Dec 2020 16:10:26 +0000 (17:10 +0100)]
Update dependencies for arm64 builds.

3 years agoRemove support for macOS 32-bit builds.
Carl Hetherington [Wed, 23 Dec 2020 16:05:01 +0000 (17:05 +0100)]
Remove support for macOS 32-bit builds.

3 years agoHappy new year.
Carl Hetherington [Fri, 1 Jan 2021 12:39:27 +0000 (13:39 +0100)]
Happy new year.

3 years agoUpdated nl_NL translation from Rob van Nieuwkerk.
Carl Hetherington [Sat, 26 Dec 2020 02:02:24 +0000 (03:02 +0100)]
Updated nl_NL translation from Rob van Nieuwkerk.

3 years agopot/merge.
Carl Hetherington [Wed, 23 Dec 2020 01:02:18 +0000 (02:02 +0100)]
pot/merge.

3 years agoVarious tweaks to fix playback at the end of a film (#1858).
Carl Hetherington [Wed, 23 Dec 2020 00:52:21 +0000 (01:52 +0100)]
Various tweaks to fix playback at the end of a film (#1858).

The most questionable change here is probably how
SimpleVideoView::display_next_frame no longer re-schedules
itself if the call to get_next_frame returned AGAIN; it seems
wrong to do that when FilmViewer::idle_handler() also reschedules
itself when display_next_frame() returns AGAIN.

3 years agoFix error when cancelling load of a trusted device certificate.
Carl Hetherington [Tue, 22 Dec 2020 19:26:24 +0000 (20:26 +0100)]
Fix error when cancelling load of a trusted device certificate.

3 years agoAccept serial numbers with A prefix entered by user.
Carl Hetherington [Tue, 22 Dec 2020 19:15:08 +0000 (20:15 +0100)]
Accept serial numbers with A prefix entered by user.

3 years agoFix Christie certificate download when first try fails.
Carl Hetherington [Tue, 22 Dec 2020 18:58:02 +0000 (19:58 +0100)]
Fix Christie certificate download when first try fails.

3 years agoPass fonts from content around as FontData.
Carl Hetherington [Sun, 20 Dec 2020 22:41:52 +0000 (23:41 +0100)]
Pass fonts from content around as FontData.

i.e. as a block of memory rather than a file.  Also, get the
fonts from the decoder rather than the content.

Together, these changes allow us to use fonts from SMPTE DCPs
added as content.  Before, fonts would be messed up in those
cases (#1885).

3 years agoAdd FontData class.
Carl Hetherington [Sun, 20 Dec 2020 22:20:55 +0000 (23:20 +0100)]
Add FontData class.

3 years agoCatch exceptions better during hints thread.
Carl Hetherington [Sun, 20 Dec 2020 22:17:16 +0000 (23:17 +0100)]
Catch exceptions better during hints thread.

3 years agoFix crash on working out hints for content with subtitles.
Carl Hetherington [Sun, 20 Dec 2020 22:16:06 +0000 (23:16 +0100)]
Fix crash on working out hints for content with subtitles.

Probably introduced in
cadca6e4f8c1d844f1b5fb9375023e627c674fa9

3 years agoConfirm removal of cinemas and screens.
Carl Hetherington [Mon, 21 Dec 2020 23:26:13 +0000 (00:26 +0100)]
Confirm removal of cinemas and screens.

3 years agoFix alignment of some labels.
Carl Hetherington [Mon, 21 Dec 2020 22:58:52 +0000 (23:58 +0100)]
Fix alignment of some labels.

3 years agoSelect newly-added cinemas.
Carl Hetherington [Mon, 21 Dec 2020 22:51:24 +0000 (23:51 +0100)]
Select newly-added cinemas.

3 years agoTweak config comment.
Carl Hetherington [Tue, 15 Dec 2020 00:10:22 +0000 (01:10 +0100)]
Tweak config comment.

3 years agoFix lots of macOS warnings by using a different boost/bind include.
Carl Hetherington [Thu, 10 Dec 2020 18:27:53 +0000 (19:27 +0100)]
Fix lots of macOS warnings by using a different boost/bind include.

3 years agoFix macOS build.
Carl Hetherington [Thu, 10 Dec 2020 18:31:27 +0000 (19:31 +0100)]
Fix macOS build.

3 years agoIn a DCP with any subs/ccaps, make sure every reel has them (#1340).
Carl Hetherington [Tue, 8 Dec 2020 21:22:30 +0000 (22:22 +0100)]
In a DCP with any subs/ccaps, make sure every reel has them (#1340).

3 years agoFactor out empty_text_asset() method.
Carl Hetherington [Tue, 8 Dec 2020 21:02:04 +0000 (22:02 +0100)]
Factor out empty_text_asset() method.

3 years agoAdd partially-working resources copying script for macOS testing.
Carl Hetherington [Tue, 8 Dec 2020 20:03:07 +0000 (21:03 +0100)]
Add partially-working resources copying script for macOS testing.

3 years agoAssorted macOS layout tweaks.
Carl Hetherington [Tue, 8 Dec 2020 19:59:32 +0000 (20:59 +0100)]
Assorted macOS layout tweaks.

3 years agoShrink some big buttons.
Carl Hetherington [Tue, 8 Dec 2020 19:13:09 +0000 (20:13 +0100)]
Shrink some big buttons.

3 years agoTidy up alignment of play controls on macOS.
Carl Hetherington [Tue, 8 Dec 2020 19:14:37 +0000 (20:14 +0100)]
Tidy up alignment of play controls on macOS.

3 years agoFix crop control alignment on macOS (#1864).
Carl Hetherington [Tue, 8 Dec 2020 18:31:28 +0000 (19:31 +0100)]
Fix crop control alignment on macOS (#1864).

3 years agoFix old osx-environment path.
Carl Hetherington [Tue, 8 Dec 2020 18:30:15 +0000 (19:30 +0100)]
Fix old osx-environment path.

3 years agoFix test build on macOS.
Carl Hetherington [Tue, 8 Dec 2020 15:47:06 +0000 (16:47 +0100)]
Fix test build on macOS.

3 years agoWrite subtitles and closed captions to a test DCP in the hints thread,
Carl Hetherington [Mon, 7 Dec 2020 00:18:38 +0000 (01:18 +0100)]
Write subtitles and closed captions to a test DCP in the hints thread,
then check the result for Bv2.1 violations (part of #1800).

3 years agoMake Writer take an output DCP path rather than getting it from the
Carl Hetherington [Sun, 6 Dec 2020 23:08:33 +0000 (00:08 +0100)]
Make Writer take an output DCP path rather than getting it from the
film itself.

3 years agoMake Writer tolerate a nullptr Job.
Carl Hetherington [Sun, 6 Dec 2020 23:02:25 +0000 (00:02 +0100)]
Make Writer tolerate a nullptr Job.

3 years agoUse a weak_ptr<Film> in ReelWriter.
Carl Hetherington [Tue, 8 Dec 2020 12:13:02 +0000 (13:13 +0100)]
Use a weak_ptr<Film> in ReelWriter.

3 years agoUse a weak_ptr<Film> in Writer.
Carl Hetherington [Sun, 6 Dec 2020 22:11:15 +0000 (23:11 +0100)]
Use a weak_ptr<Film> in Writer.

3 years agoAdd get_process_id()
Carl Hetherington [Sun, 6 Dec 2020 21:59:19 +0000 (22:59 +0100)]
Add get_process_id()

3 years agoSplit create_reel() up into some separate bits.
Carl Hetherington [Tue, 8 Dec 2020 10:19:16 +0000 (11:19 +0100)]
Split create_reel() up into some separate bits.

3 years agoAdd WeakFilm and WeakConstFilm and use them a bit.
Carl Hetherington [Sun, 6 Dec 2020 20:36:37 +0000 (21:36 +0100)]
Add WeakFilm and WeakConstFilm and use them a bit.

3 years agoRemove a pointless parameter that the callee can calculate.
Carl Hetherington [Sun, 6 Dec 2020 20:06:19 +0000 (21:06 +0100)]
Remove a pointless parameter that the callee can calculate.

3 years agoAdd some hints for violations of SMPTE Bv2.1 with subtitles and closed
Carl Hetherington [Sun, 6 Dec 2020 18:55:07 +0000 (19:55 +0100)]
Add some hints for violations of SMPTE Bv2.1 with subtitles and closed
captions.

3 years agoFix transcode finish time estimations when re-encoding a DCP (#1863).
Carl Hetherington [Sat, 5 Dec 2020 19:24:18 +0000 (20:24 +0100)]
Fix transcode finish time estimations when re-encoding a DCP (#1863).

3 years agoRemove redundant check.
Carl Hetherington [Sat, 5 Dec 2020 18:51:51 +0000 (19:51 +0100)]
Remove redundant check.

3 years agoBump CLOSED_CAPTION_LENGTH to 32 as per SMPTE Bv2.1.
Carl Hetherington [Fri, 4 Dec 2020 22:18:25 +0000 (23:18 +0100)]
Bump CLOSED_CAPTION_LENGTH to 32 as per SMPTE Bv2.1.

3 years agoFix missing bits in RPM installs (#1883). v2.15.112
Carl Hetherington [Fri, 4 Dec 2020 14:00:52 +0000 (15:00 +0100)]
Fix missing bits in RPM installs (#1883).

3 years agoAdd extra path for Windows tests so it can find the DLLs
Carl Hetherington [Thu, 3 Dec 2020 20:06:34 +0000 (21:06 +0100)]
Add extra path for Windows tests so it can find the DLLs
for lwext4.

3 years agoBump libsub for some unused variable warning fixes.
Carl Hetherington [Thu, 3 Dec 2020 09:57:35 +0000 (10:57 +0100)]
Bump libsub for some unused variable warning fixes.

3 years agoAdd basic unit test for the disk writer code.
Carl Hetherington [Tue, 1 Dec 2020 23:41:03 +0000 (00:41 +0100)]
Add basic unit test for the disk writer code.

3 years agoAllow nanomsg to be null.
Carl Hetherington [Tue, 1 Dec 2020 23:40:44 +0000 (00:40 +0100)]
Allow nanomsg to be null.

3 years agoAllow PrivilegeEscalator to be disabled during tests.
Carl Hetherington [Tue, 1 Dec 2020 23:34:09 +0000 (00:34 +0100)]
Allow PrivilegeEscalator to be disabled during tests.

3 years agoEnable TYPE_DISK logging by default.
Carl Hetherington [Tue, 1 Dec 2020 23:33:51 +0000 (00:33 +0100)]
Enable TYPE_DISK logging by default.

3 years agoMove a load of disk writing code to src/lib/ext.cc.
Carl Hetherington [Tue, 1 Dec 2020 22:12:18 +0000 (23:12 +0100)]
Move a load of disk writing code to src/lib/ext.cc.

3 years agoBump libdcp for SoundAsset::equals() fix.
Carl Hetherington [Sun, 29 Nov 2020 20:07:54 +0000 (21:07 +0100)]
Bump libdcp for SoundAsset::equals() fix.

3 years agoObey audio timestamps if they don't deviate by more than some threshold.
Carl Hetherington [Sat, 28 Nov 2020 23:51:38 +0000 (00:51 +0100)]
Obey audio timestamps if they don't deviate by more than some threshold.

Previously we would ignore audio timestamps because they are not
contiguous in a sample-accurate way.

However with bugs like #1833 we do need to obey large discontinuities
in audio timestamps, otherwise we get large sync errors.

Here we change timestamp handling to ignore small discontinuities
in timestamps but not larger ones.

3 years agoMissing #includes from previous.
Carl Hetherington [Wed, 2 Dec 2020 09:56:33 +0000 (10:56 +0100)]
Missing #includes from previous.

3 years agoLimit video frame rate text control to numbers.
Carl Hetherington [Tue, 1 Dec 2020 20:44:32 +0000 (21:44 +0100)]
Limit video frame rate text control to numbers.

3 years agoRename refresh_metadata -> reset_metadata.
Carl Hetherington [Tue, 1 Dec 2020 10:36:52 +0000 (11:36 +0100)]
Rename refresh_metadata -> reset_metadata.

3 years agoChanges to crop can be handled with a reset_metadata().
Carl Hetherington [Tue, 1 Dec 2020 10:32:36 +0000 (11:32 +0100)]
Changes to crop can be handled with a reset_metadata().

While playback is happening we need to do that in the butler's
buffers and in the little delay inside Player.

This removes the seek on every crop change, making it a lot
quicker (#1758).

3 years agoAdd VideoRingBuffers::reset_metadata().
Carl Hetherington [Tue, 1 Dec 2020 10:32:11 +0000 (11:32 +0100)]
Add VideoRingBuffers::reset_metadata().

3 years agoAdd missing lock.
Carl Hetherington [Tue, 1 Dec 2020 10:24:41 +0000 (11:24 +0100)]
Add missing lock.

3 years agoGive Butler a weak_ptr<Film>
Carl Hetherington [Mon, 30 Nov 2020 22:49:04 +0000 (23:49 +0100)]
Give Butler a weak_ptr<Film>

3 years agoChange re{set,fresh}_metadata to take a film and a size from the player.
Carl Hetherington [Mon, 30 Nov 2020 22:38:39 +0000 (23:38 +0100)]
Change re{set,fresh}_metadata to take a film and a size from the player.

3 years agoFix loading very (very) old metadata files.
Carl Hetherington [Mon, 30 Nov 2020 20:39:53 +0000 (21:39 +0100)]
Fix loading very (very) old metadata files.

3 years agoFix build error. v2.15.111
Carl Hetherington [Mon, 30 Nov 2020 01:53:05 +0000 (02:53 +0100)]
Fix build error.

3 years agoHide some wx warnings. v2.15.110
Carl Hetherington [Sun, 29 Nov 2020 23:49:50 +0000 (00:49 +0100)]
Hide some wx warnings.

3 years agoFix overlapping group labels in the audio matrix (#1882). v2.15.109
Carl Hetherington [Sun, 29 Nov 2020 23:19:32 +0000 (00:19 +0100)]
Fix overlapping group labels in the audio matrix (#1882).

3 years agoFix test build.
Carl Hetherington [Sun, 29 Nov 2020 23:19:14 +0000 (00:19 +0100)]
Fix test build.

3 years agoBetter progress reporting during DCP validation (#1812). v2.15.108
Carl Hetherington [Sat, 28 Nov 2020 01:42:50 +0000 (02:42 +0100)]
Better progress reporting during DCP validation (#1812).

3 years agoMove some test references into test-private.
Carl Hetherington [Sun, 29 Nov 2020 21:49:05 +0000 (22:49 +0100)]
Move some test references into test-private.

3 years agoFix over-read behaviour of FileGroup to be the same on all platforms.
Carl Hetherington [Fri, 27 Nov 2020 22:30:13 +0000 (23:30 +0100)]
Fix over-read behaviour of FileGroup to be the same on all platforms.

Instead of relying on the operating system's behaviour when seeking
off the end of a file, keep our own _position.  This normalises
the behaviour between POSIX and Windows.

3 years agoFix running single tests on Windows.
Carl Hetherington [Fri, 27 Nov 2020 22:27:14 +0000 (23:27 +0100)]
Fix running single tests on Windows.

3 years agoMore macOS build fixes.
Carl Hetherington [Thu, 26 Nov 2020 20:14:22 +0000 (21:14 +0100)]
More macOS build fixes.

3 years agomacOS build fix.
Carl Hetherington [Thu, 26 Nov 2020 19:11:57 +0000 (20:11 +0100)]
macOS build fix.

3 years agoIf we don't query a server (because we already know about it)
Carl Hetherington [Thu, 26 Nov 2020 01:05:25 +0000 (02:05 +0100)]
If we don't query a server (because we already know about it)
the "last seen time" will never be updated, so the server will
be discarded.

It seems that we should always ping servers (so that set_seen gets
called on receipt of the response), no matter whether
"auto-discovered" or configured, so that the "discard" code doesn't
kick in.

Otherwise we remove and re-add our configured servers every
10 seconds, which is inefficient and which possibly triggers
other bugs.

3 years agoIt feels unsafe not to lock _threads_mutex between terminate_threads()
Carl Hetherington [Thu, 26 Nov 2020 01:04:25 +0000 (02:04 +0100)]
It feels unsafe not to lock _threads_mutex between terminate_threads()
and _threads.reset(); move the lock.

3 years agoRemove accidentally-added file.
Carl Hetherington [Wed, 25 Nov 2020 21:46:22 +0000 (22:46 +0100)]
Remove accidentally-added file.

3 years agoCalculate hashes for any referenced assets that do not already have one.
Carl Hetherington [Tue, 24 Nov 2020 00:29:11 +0000 (01:29 +0100)]
Calculate hashes for any referenced assets that do not already have one.

This is necessary so that we always include <Hash> in CPLs even
when referencing DCPs that do not have it.

3 years agoUse a foreach.
Carl Hetherington [Thu, 26 Nov 2020 00:22:13 +0000 (01:22 +0100)]
Use a foreach.

3 years agoDisallow referring to subtitles / closed captions with start trim.
Carl Hetherington [Wed, 25 Nov 2020 22:58:25 +0000 (23:58 +0100)]
Disallow referring to subtitles / closed captions with start trim.

Since per Bv2.1 we can't have subs / closed captions with non-zero
entry point I think we have no choice but to rewrite in that case
(#1802).

3 years agoCheck for inconsistency in settings for referring to text.
Carl Hetherington [Wed, 25 Nov 2020 22:57:52 +0000 (23:57 +0100)]
Check for inconsistency in settings for referring to text.

Just as we do for picture / sound.

3 years agoRemove unused method.
Carl Hetherington [Wed, 25 Nov 2020 12:14:44 +0000 (13:14 +0100)]
Remove unused method.

3 years agoFix corrupted image when over-cropping black filler frames.
Carl Hetherington [Tue, 24 Nov 2020 23:11:55 +0000 (00:11 +0100)]
Fix corrupted image when over-cropping black filler frames.

FFmpegDecoder can emit small black frames (128x128 pixels) when it
wants to fill in a gap.  Image::crop_scale_window would do the wrong
thing if we then applied a crop of greater than 128 in either direction;
though cropped_size is correctly clamped, the crop value itself was
not and is used to calculate the input data pointers.

This would result in random frames, usually at the end of DCPs,
often made up of blurry colour washes.

3 years agoFix the behaviour of FileGroup when seeking too far.
Carl Hetherington [Tue, 24 Nov 2020 22:01:04 +0000 (23:01 +0100)]
Fix the behaviour of FileGroup when seeking too far.

Previously, if you did a seek off the end of the file group,
the seek would return an error.

This is not what fseek() does; it returns no error, and preserves
the file pointer (returned by ftell()) as if the seek had been
successful.  fread()s after a too-far seek return no data, of
course.

Parsing some files (the example used to find the bug was a
H264 MP4) involves a seek which is to the byte after the end
of the mp4 file.  If this fails the whole header parsing fails
and DCP-o-matic refuses to use the file.

3 years agoFix uninitialised variable.
Carl Hetherington [Tue, 24 Nov 2020 21:50:39 +0000 (22:50 +0100)]
Fix uninitialised variable.

3 years agoUpdated nl_NL translation from Rob van Nieuwkerk.
Carl Hetherington [Tue, 24 Nov 2020 02:00:39 +0000 (03:00 +0100)]
Updated nl_NL translation from Rob van Nieuwkerk.

3 years agoBump libdcp for ExtensionMetadata tags (#1808).
Carl Hetherington [Sun, 22 Nov 2020 22:42:51 +0000 (23:42 +0100)]
Bump libdcp for ExtensionMetadata tags (#1808).