dcpomatic.git
4 years agoTest updates now that there can't be <1s long DCPs any more.
Carl Hetherington [Tue, 10 Mar 2020 22:15:17 +0000 (23:15 +0100)]
Test updates now that there can't be <1s long DCPs any more.

4 years agoCoalesce short reels.
Carl Hetherington [Mon, 9 Mar 2020 21:05:34 +0000 (22:05 +0100)]
Coalesce short reels.

4 years agoImprove and fix some tests.
Carl Hetherington [Mon, 9 Mar 2020 21:05:22 +0000 (22:05 +0100)]
Improve and fix some tests.

4 years agoEnforce a minimum DCP length of 1 second.
Carl Hetherington [Mon, 9 Mar 2020 20:41:36 +0000 (21:41 +0100)]
Enforce a minimum DCP length of 1 second.

4 years agoGet some better errors when verification-based tests fail.
Carl Hetherington [Mon, 9 Mar 2020 20:35:48 +0000 (21:35 +0100)]
Get some better errors when verification-based tests fail.

4 years agoEnforce minimum reel length when using REELTYPE_BY_LENGTH.
Carl Hetherington [Mon, 9 Mar 2020 20:33:13 +0000 (21:33 +0100)]
Enforce minimum reel length when using REELTYPE_BY_LENGTH.

4 years agoAdd a test for short pieces of content amongst longer.
Carl Hetherington [Mon, 9 Mar 2020 20:20:23 +0000 (21:20 +0100)]
Add a test for short pieces of content amongst longer.

4 years agoFailing test for reels with a short length (in bytes) specified.
Carl Hetherington [Mon, 9 Mar 2020 20:15:47 +0000 (21:15 +0100)]
Failing test for reels with a short length (in bytes) specified.

4 years agoAdd a (failing) test for reels created between two other
Carl Hetherington [Mon, 9 Mar 2020 20:12:00 +0000 (21:12 +0100)]
Add a (failing) test for reels created between two other
pieces of content.

4 years agoMove private_data into TestPaths
Carl Hetherington [Mon, 9 Mar 2020 15:45:26 +0000 (16:45 +0100)]
Move private_data into TestPaths

4 years agoAdd failing test for one short-reel possibility.
Carl Hetherington [Mon, 9 Mar 2020 15:42:30 +0000 (16:42 +0100)]
Add failing test for one short-reel possibility.

4 years agoGive a better error when opening a DCP with File -> Open by mistake (#1723).
Carl Hetherington [Wed, 11 Mar 2020 20:23:11 +0000 (20:23 +0000)]
Give a better error when opening a DCP with File -> Open by mistake (#1723).

4 years agoMerge branch 'v2.15.x' of ssh://git.carlh.net/home/carl/git/dcpomatic into v2.15.x
Carl Hetherington [Wed, 11 Mar 2020 20:23:55 +0000 (21:23 +0100)]
Merge branch 'v2.15.x' of ssh://git.carlh.net/home/carl/git/dcpomatic into v2.15.x

4 years agoMake DKDMs with validity 2 minutes shorter than the signer certificate
Carl Hetherington [Tue, 10 Mar 2020 16:10:56 +0000 (17:10 +0100)]
Make DKDMs with validity 2 minutes shorter than the signer certificate
validity (#1728).

4 years agoAdd missing icons for _playlist to the macOS build.
Carl Hetherington [Sun, 8 Mar 2020 18:18:07 +0000 (19:18 +0100)]
Add missing icons for _playlist to the macOS build.

4 years agoFix test failure with changes to thread management.
Carl Hetherington [Sat, 7 Mar 2020 23:14:54 +0000 (00:14 +0100)]
Fix test failure with changes to thread management.

4 years agoStop threads at the start of their object's destruction in all Job cases.
Carl Hetherington [Fri, 6 Mar 2020 21:36:16 +0000 (22:36 +0100)]
Stop threads at the start of their object's destruction in all Job cases.

4 years agoFix crash in verification due to mismatched wxString::Format placeholder. v2.15.47
Carl Hetherington [Tue, 3 Mar 2020 09:26:02 +0000 (10:26 +0100)]
Fix crash in verification due to mismatched wxString::Format placeholder.

4 years agoFix weirdly-allowed misplaced bracket.
Carl Hetherington [Sun, 1 Mar 2020 23:31:50 +0000 (00:31 +0100)]
Fix weirdly-allowed misplaced bracket.

4 years agoRemove unused LOG_DEBUG_DECODE and re-use it to add some 3D shuffler logging. v2.15.46
Carl Hetherington [Sun, 1 Mar 2020 21:58:49 +0000 (22:58 +0100)]
Remove unused LOG_DEBUG_DECODE and re-use it to add some 3D shuffler logging.

4 years agoMissing patron.
Carl Hetherington [Sun, 1 Mar 2020 20:51:46 +0000 (21:51 +0100)]
Missing patron.

4 years agoCall wxInitAllImageHandlers and fix Playlist Editor AppName.
Carl Hetherington [Sun, 1 Mar 2020 19:27:53 +0000 (20:27 +0100)]
Call wxInitAllImageHandlers and fix Playlist Editor AppName.

4 years agoFix uninitialised variable.
Carl Hetherington [Sun, 1 Mar 2020 18:59:25 +0000 (19:59 +0100)]
Fix uninitialised variable.

4 years agoFix loading of tick/no_tick graphics for playlist editor on Windows.
Carl Hetherington [Sun, 1 Mar 2020 18:58:21 +0000 (19:58 +0100)]
Fix loading of tick/no_tick graphics for playlist editor on Windows.

4 years agoFix broken test.
Carl Hetherington [Sun, 1 Mar 2020 08:42:43 +0000 (09:42 +0100)]
Fix broken test.

4 years agoSupport playlists in the player in dual-screen mode. v2.15.45
Carl Hetherington [Sat, 29 Feb 2020 23:18:47 +0000 (00:18 +0100)]
Support playlists in the player in dual-screen mode.

4 years agoSeparate SPL from a version which signals when things change.
Carl Hetherington [Sat, 29 Feb 2020 23:14:39 +0000 (00:14 +0100)]
Separate SPL from a version which signals when things change.

4 years agoAdd some comments.
Carl Hetherington [Sat, 29 Feb 2020 23:14:17 +0000 (00:14 +0100)]
Add some comments.

4 years agoMake DMG for playlist editor on macOS.
Carl Hetherington [Sat, 29 Feb 2020 23:09:13 +0000 (00:09 +0100)]
Make DMG for playlist editor on macOS.

4 years agoAdd 'proper' config dialog for the playlist editor.
Carl Hetherington [Sat, 29 Feb 2020 22:53:14 +0000 (23:53 +0100)]
Add 'proper' config dialog for the playlist editor.

4 years agoFix title of player configuration dialogue.
Carl Hetherington [Sat, 29 Feb 2020 22:43:52 +0000 (23:43 +0100)]
Fix title of player configuration dialogue.

4 years agoVarious playlist editor developments and fixes.
Carl Hetherington [Thu, 27 Feb 2020 23:37:34 +0000 (00:37 +0100)]
Various playlist editor developments and fixes.

4 years agoCopy swaroop_ playlist editor stuff back to main DoM.
Carl Hetherington [Thu, 27 Feb 2020 23:03:01 +0000 (00:03 +0100)]
Copy swaroop_ playlist editor stuff back to main DoM.

4 years agoMove swaroop playlist editor stuff into its own swaroop_
Carl Hetherington [Thu, 27 Feb 2020 22:50:10 +0000 (23:50 +0100)]
Move swaroop playlist editor stuff into its own swaroop_
files.

4 years agoAllow changing colour conversion settings for multiple pieces of content at the same...
Carl Hetherington [Sat, 29 Feb 2020 20:42:17 +0000 (21:42 +0100)]
Allow changing colour conversion settings for multiple pieces of content at the same time (github #7).

4 years agoFix exceptions on some metadata.xml.
Carl Hetherington [Sat, 29 Feb 2020 19:56:49 +0000 (20:56 +0100)]
Fix exceptions on some metadata.xml.

4 years agoFix incorrect results when applying some timing operations to
Carl Hetherington [Fri, 28 Feb 2020 11:31:40 +0000 (12:31 +0100)]
Fix incorrect results when applying some timing operations to
more than one piece of content at once (e.g. trim start).

4 years agoAllow > 0dB gain per channel in the audio matrix (#1720). v2.15.44
Carl Hetherington [Thu, 27 Feb 2020 21:47:27 +0000 (22:47 +0100)]
Allow > 0dB gain per channel in the audio matrix (#1720).

4 years agoUse bound arguments to lose some methods.
Carl Hetherington [Thu, 27 Feb 2020 21:36:41 +0000 (22:36 +0100)]
Use bound arguments to lose some methods.

4 years agoAdd and use dB/linear conversion functions.
Carl Hetherington [Thu, 27 Feb 2020 21:26:57 +0000 (22:26 +0100)]
Add and use dB/linear conversion functions.

4 years agoMissing include.
Carl Hetherington [Thu, 27 Feb 2020 20:24:04 +0000 (21:24 +0100)]
Missing include.

4 years agoFix incorrect tab-to-space. v2.15.43
Carl Hetherington [Mon, 24 Feb 2020 20:34:23 +0000 (21:34 +0100)]
Fix incorrect tab-to-space.

4 years agoTweak DMG creation for Apple changes.
Carl Hetherington [Thu, 20 Feb 2020 22:04:48 +0000 (23:04 +0100)]
Tweak DMG creation for Apple changes.

4 years agoApply FFmpeg palette fix to examination too; fix build with old FFmpeg.
Carl Hetherington [Thu, 20 Feb 2020 16:38:11 +0000 (17:38 +0100)]
Apply FFmpeg palette fix to examination too; fix build with old FFmpeg.

4 years agoAnother macOS std::list boost::thread SNAFU.
Carl Hetherington [Wed, 19 Feb 2020 21:22:23 +0000 (22:22 +0100)]
Another macOS std::list boost::thread SNAFU.

4 years agoCan't put boost::thread in a std::list with our macOS compiler.
Carl Hetherington [Wed, 19 Feb 2020 20:55:04 +0000 (21:55 +0100)]
Can't put boost::thread in a std::list with our macOS compiler.

4 years agoMerge branch 'v2.15.x' of ssh://git.carlh.net/home/carl/git/dcpomatic into v2.15.x
Carl Hetherington [Wed, 19 Feb 2020 19:13:53 +0000 (20:13 +0100)]
Merge branch 'v2.15.x' of ssh://git.carlh.net/home/carl/git/dcpomatic into v2.15.x

4 years agoIt may not be allowed to request a zero timeout on macOS.
Carl Hetherington [Wed, 19 Feb 2020 19:13:49 +0000 (20:13 +0100)]
It may not be allowed to request a zero timeout on macOS.

4 years agoNicer fix for 2D-labelled-3D checking from master.
Carl Hetherington [Wed, 19 Feb 2020 16:23:21 +0000 (17:23 +0100)]
Nicer fix for 2D-labelled-3D checking from master.

4 years agoRemove incorrect comment.
Carl Hetherington [Tue, 18 Feb 2020 19:21:56 +0000 (20:21 +0100)]
Remove incorrect comment.

4 years agoWrite logs during tests to a file.
Carl Hetherington [Tue, 18 Feb 2020 19:21:51 +0000 (20:21 +0100)]
Write logs during tests to a file.

4 years agoRemove unused variable.
Carl Hetherington [Tue, 18 Feb 2020 19:21:38 +0000 (20:21 +0100)]
Remove unused variable.

4 years agoMake a new AudioBuffers constructor and use it to avoid some use of the more complica...
Carl Hetherington [Sun, 16 Feb 2020 21:23:28 +0000 (22:23 +0100)]
Make a new AudioBuffers constructor and use it to avoid some use of the more complicated copy_from.

4 years agoBetter errors if butler doesn't give video during export.
Carl Hetherington [Sun, 16 Feb 2020 20:15:12 +0000 (21:15 +0100)]
Better errors if butler doesn't give video during export.

4 years agoNew test bits.
Carl Hetherington [Sun, 16 Feb 2020 19:44:13 +0000 (20:44 +0100)]
New test bits.

4 years agoJust having no specified lines value does not mean we definitely need place the subti...
Carl Hetherington [Sun, 16 Feb 2020 19:39:47 +0000 (20:39 +0100)]
Just having no specified lines value does not mean we definitely need place the subtitle ourselves.

4 years agoNudge L/R-aligned subs in from the edge of the screen; do our own placement of subs...
Carl Hetherington [Thu, 13 Feb 2020 23:28:15 +0000 (00:28 +0100)]
Nudge L/R-aligned subs in from the edge of the screen; do our own placement of subs with no screen height in lines specified.

4 years agoRename and extend check_packets.py
Carl Hetherington [Thu, 13 Feb 2020 16:29:47 +0000 (17:29 +0100)]
Rename and extend check_packets.py

4 years agoFix crash.
Carl Hetherington [Thu, 6 Feb 2020 20:56:49 +0000 (21:56 +0100)]
Fix crash.

4 years agoFix crash with bitmapped subs that have zero width or height.
Carl Hetherington [Thu, 6 Feb 2020 09:34:30 +0000 (10:34 +0100)]
Fix crash with bitmapped subs that have zero width or height.

4 years agoAdd new script.
Carl Hetherington [Tue, 28 Jan 2020 11:49:08 +0000 (12:49 +0100)]
Add new script.

4 years agoVarious improvements to make_dummy_files
Carl Hetherington [Tue, 28 Jan 2020 11:49:00 +0000 (12:49 +0100)]
Various improvements to make_dummy_files

4 years agoVarious thread cleanups.
Carl Hetherington [Thu, 30 Jan 2020 21:54:38 +0000 (22:54 +0100)]
Various thread cleanups.

4 years agoUse a non-pointer boost::thread and a std::atomic for the stop flag.
Carl Hetherington [Thu, 30 Jan 2020 21:19:17 +0000 (22:19 +0100)]
Use a non-pointer boost::thread and a std::atomic for the stop flag.

4 years agoMissing #include for previous.
Carl Hetherington [Tue, 28 Jan 2020 22:49:07 +0000 (23:49 +0100)]
Missing #include for previous.

4 years agoFix deadlock during content examination.
Carl Hetherington [Tue, 28 Jan 2020 22:23:47 +0000 (23:23 +0100)]
Fix deadlock during content examination.

Before this fix, the following situation could happen in threads
A and B:

A: Some DONE signal happens; this triggers setup_pieces which
   takes a lock on the player mutex.

B: FFmpegContent::examine takes a lock on the content mutex.
B: FFmpegContent::examine adds a stream
B: That causes STREAMS PENDING to be emitted.
B: This tries to take a lock on the player mutex so it can update _suspended

A: setup_pieces tries to access some content information, hence
   tries to take a lock on the content mutex.

Now B is holding the CL and awaiting the PL and A is holding
the PL and awaiting the CL.

It feels like the root cause of this is that while setup_pieces
is happening another change (which would itself cause setup_pieces)
is announced, and this isn't dealt with properly.

There are two steps here; _suspended is protected with an atomic
rather than using _mutex, and also it can cope with being updated
recursively.

4 years agoFix crash with sub-sample push parts in AudioMerger. v2.15.42
Carl Hetherington [Mon, 27 Jan 2020 23:19:52 +0000 (23:19 +0000)]
Fix crash with sub-sample push parts in AudioMerger.

Forward-ported from b86b15391074a68149f8c4a51958c7873d74def0 in master.

4 years agoFix missing preferences icon on macOS.
Carl Hetherington [Mon, 27 Jan 2020 19:27:52 +0000 (20:27 +0100)]
Fix missing preferences icon on macOS.

4 years agoWarn if doing a gain calculation might cause clipping.
Carl Hetherington [Sat, 25 Jan 2020 22:59:24 +0000 (23:59 +0100)]
Warn if doing a gain calculation might cause clipping.

4 years agoApply fader-based gain calculations to the current gain, not 0dB.
Carl Hetherington [Sat, 25 Jan 2020 22:26:31 +0000 (23:26 +0100)]
Apply fader-based gain calculations to the current gain, not 0dB.

4 years agoAnother thinko fix.
Carl Hetherington [Sat, 25 Jan 2020 20:13:33 +0000 (21:13 +0100)]
Another thinko fix.

4 years agoFix thinko two commits ago.
Carl Hetherington [Sat, 25 Jan 2020 09:05:34 +0000 (10:05 +0100)]
Fix thinko two commits ago.

4 years agoCache film length for Player::pass.
Carl Hetherington [Tue, 23 Jul 2019 21:55:15 +0000 (22:55 +0100)]
Cache film length for Player::pass.

4 years agoUse memset for zeroing float buffers; it's faster, and I think
Carl Hetherington [Tue, 23 Jul 2019 21:45:04 +0000 (22:45 +0100)]
Use memset for zeroing float buffers; it's faster, and I think
we get away with it on all the platforms we care about.

4 years agoSupport binary STL subtitle files.
Carl Hetherington [Thu, 23 Jan 2020 14:37:37 +0000 (15:37 +0100)]
Support binary STL subtitle files.

4 years agoAdd patron.
Carl Hetherington [Fri, 17 Jan 2020 00:21:44 +0000 (01:21 +0100)]
Add patron.

4 years agoMake FileError say what path the problem was with.
Carl Hetherington [Thu, 16 Jan 2020 15:41:19 +0000 (16:41 +0100)]
Make FileError say what path the problem was with.

4 years agoAdd some PT-style names to the guesswork on which channel a particular sound file...
Carl Hetherington [Tue, 14 Jan 2020 21:53:38 +0000 (22:53 +0100)]
Add some PT-style names to the guesswork on which channel a particular sound file belongs to.

4 years agoStop invalid dates causing boost::posix_time to raise exceptions.
Carl Hetherington [Sun, 12 Jan 2020 23:44:00 +0000 (00:44 +0100)]
Stop invalid dates causing boost::posix_time to raise exceptions.

4 years agoswaroop variant build fix.
Carl Hetherington [Sun, 12 Jan 2020 22:19:46 +0000 (23:19 +0100)]
swaroop variant build fix.

4 years agoDon't truncate active_video_frame_rate to an int otherwise setting fade on non-intege... v2.15.41
Carl Hetherington [Fri, 10 Jan 2020 14:20:17 +0000 (15:20 +0100)]
Don't truncate active_video_frame_rate to an int otherwise setting fade on non-integer-rate sources behaves oddly.

4 years agoFix deadlock.
Carl Hetherington [Fri, 10 Jan 2020 14:13:35 +0000 (15:13 +0100)]
Fix deadlock.

4 years agoGive DCPDecoder its own ::position which just returns its internal
Carl Hetherington [Thu, 9 Jan 2020 23:52:20 +0000 (23:52 +0000)]
Give DCPDecoder its own ::position which just returns its internal
_next time.

This is important because Decoder::position does the wrong thing
with DCPs in the following case.

1.  DCPDecoder emits a subtitle event (start/stop) at time t.
2.  There follows a long time T with no subtitle events.  During
    this time the DCPDecoder's position is reported as t (since
    TextDecoder notes its position as the time of the last thing
    it emitted --- which is all it reasonably can do, I think).
3.  During this T the DCPDecoder may be incorrectly pass()ed because
    its position is reported as earlier than it really is; this results
    in video/audio being emitted by the DCPDecoder but other contemporary
    sources may not be pass()ed.

The upshot of this can be that no audio is emitted, as a contemporary audio
source is not pass()ed and hence the merger is waiting for audio that will
take a long time to come.  When the butler is running this can result in
audio underruns as the video buffers overflow with no sign of any audio.

It is also simpler this way; DCPDecoder was already maintaining the required
information.

4 years agoUpdate text panel 'why not' note when film's standard is changed.
Carl Hetherington [Thu, 9 Jan 2020 22:22:22 +0000 (23:22 +0100)]
Update text panel 'why not' note when film's standard is changed.

Forward-ported from e8582393bd1367fff36bae8e053d799073d8b2ed in master.

4 years agoMake the 'why not' messages for VF a bit clearer.
Carl Hetherington [Thu, 9 Jan 2020 22:24:32 +0000 (23:24 +0100)]
Make the 'why not' messages for VF a bit clearer.

Before it sounded like just because we couldn't refer to (e.g.) the audio
we couldn't refer to any part of the DCP.

4 years agoMerge a set of changes which run the OpenGL video updates in a separate v2.15.40
Carl Hetherington [Wed, 8 Jan 2020 21:22:01 +0000 (22:22 +0100)]
Merge a set of changes which run the OpenGL video updates in a separate
thread, hopefully making things more elegant and robust.

4 years agoFirst version of player stress-test management script.
Carl Hetherington [Wed, 11 Dec 2019 23:45:16 +0000 (00:45 +0100)]
First version of player stress-test management script.

4 years agoSome comments.
Carl Hetherington [Mon, 25 Nov 2019 23:37:42 +0000 (00:37 +0100)]
Some comments.

4 years agoSome simple-video-view tidy-ups.
Carl Hetherington [Mon, 25 Nov 2019 23:33:46 +0000 (00:33 +0100)]
Some simple-video-view tidy-ups.

4 years agoFix problems when starting to play after a seek, if the start
Carl Hetherington [Mon, 25 Nov 2019 23:32:37 +0000 (00:32 +0100)]
Fix problems when starting to play after a seek, if the start
of playback happens while we are awaiting an idle handler to
go through to update the view after the seek.

If this idle handler has not gone through the viewer will report
an incorrect position, which is used by the FilmViewer to start
the audio stream at the wrong time.

4 years agoUse glTexSubImage2D when possible, as suggested by https://www.khronos.org/opengl...
Carl Hetherington [Mon, 25 Nov 2019 20:24:03 +0000 (21:24 +0100)]
Use glTexSubImage2D when possible, as suggested by https://khronos.org/opengl/wiki/Common_Mistakes

4 years agoBasic stress-test function for player.
Carl Hetherington [Sat, 23 Nov 2019 09:44:39 +0000 (10:44 +0100)]
Basic stress-test function for player.

4 years agoDon't busy-wait when there's nothing to play.
Carl Hetherington [Sat, 23 Nov 2019 09:42:16 +0000 (10:42 +0100)]
Don't busy-wait when there's nothing to play.

4 years agoSet up things correctly on initialisation.
Carl Hetherington [Sat, 23 Nov 2019 09:41:01 +0000 (10:41 +0100)]
Set up things correctly on initialisation.

4 years agoFix event handling (hopefully).
Carl Hetherington [Fri, 22 Nov 2019 20:04:14 +0000 (21:04 +0100)]
Fix event handling (hopefully).

4 years agoAdd assert.
Carl Hetherington [Fri, 22 Nov 2019 20:04:05 +0000 (21:04 +0100)]
Add assert.

4 years agoCheck that get_next_frame succeeds.
Carl Hetherington [Fri, 22 Nov 2019 00:52:53 +0000 (01:52 +0100)]
Check that get_next_frame succeeds.

4 years agoFix some crashes.
Carl Hetherington [Thu, 21 Nov 2019 23:37:36 +0000 (00:37 +0100)]
Fix some crashes.

4 years agoMore tidying up.
Carl Hetherington [Thu, 21 Nov 2019 23:10:35 +0000 (00:10 +0100)]
More tidying up.

4 years agoVarious cleanups and thread-safety.
Carl Hetherington [Thu, 21 Nov 2019 22:43:23 +0000 (23:43 +0100)]
Various cleanups and thread-safety.