Carl Hetherington [Sat, 25 Jan 2020 20:13:33 +0000 (21:13 +0100)]
Another thinko fix.
Carl Hetherington [Sat, 25 Jan 2020 09:05:34 +0000 (10:05 +0100)]
Fix thinko two commits ago.
Carl Hetherington [Tue, 23 Jul 2019 21:55:15 +0000 (22:55 +0100)]
Cache film length for Player::pass.
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.
Carl Hetherington [Thu, 23 Jan 2020 14:37:37 +0000 (15:37 +0100)]
Support binary STL subtitle files.
Carl Hetherington [Fri, 17 Jan 2020 00:21:44 +0000 (01:21 +0100)]
Add patron.
Carl Hetherington [Thu, 16 Jan 2020 15:41:19 +0000 (16:41 +0100)]
Make FileError say what path the problem was with.
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.
Carl Hetherington [Sun, 12 Jan 2020 23:44:00 +0000 (00:44 +0100)]
Stop invalid dates causing boost::posix_time to raise exceptions.
Carl Hetherington [Sun, 12 Jan 2020 22:19:46 +0000 (23:19 +0100)]
swaroop variant build fix.
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.
Carl Hetherington [Fri, 10 Jan 2020 14:13:35 +0000 (15:13 +0100)]
Fix deadlock.
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.
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.
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.
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.
Carl Hetherington [Wed, 11 Dec 2019 23:45:16 +0000 (00:45 +0100)]
First version of player stress-test management script.
Carl Hetherington [Mon, 25 Nov 2019 23:37:42 +0000 (00:37 +0100)]
Some comments.
Carl Hetherington [Mon, 25 Nov 2019 23:33:46 +0000 (00:33 +0100)]
Some simple-video-view tidy-ups.
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.
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
Carl Hetherington [Sat, 23 Nov 2019 09:44:39 +0000 (10:44 +0100)]
Basic stress-test function for player.
Carl Hetherington [Sat, 23 Nov 2019 09:42:16 +0000 (10:42 +0100)]
Don't busy-wait when there's nothing to play.
Carl Hetherington [Sat, 23 Nov 2019 09:41:01 +0000 (10:41 +0100)]
Set up things correctly on initialisation.
Carl Hetherington [Fri, 22 Nov 2019 20:04:14 +0000 (21:04 +0100)]
Fix event handling (hopefully).
Carl Hetherington [Fri, 22 Nov 2019 20:04:05 +0000 (21:04 +0100)]
Add assert.
Carl Hetherington [Fri, 22 Nov 2019 00:52:53 +0000 (01:52 +0100)]
Check that get_next_frame succeeds.
Carl Hetherington [Thu, 21 Nov 2019 23:37:36 +0000 (00:37 +0100)]
Fix some crashes.
Carl Hetherington [Thu, 21 Nov 2019 23:10:35 +0000 (00:10 +0100)]
More tidying up.
Carl Hetherington [Thu, 21 Nov 2019 22:43:23 +0000 (23:43 +0100)]
Various cleanups and thread-safety.
Carl Hetherington [Thu, 21 Nov 2019 21:38:33 +0000 (22:38 +0100)]
Remove some friends from FilmViewer.
Carl Hetherington [Thu, 21 Nov 2019 21:07:26 +0000 (22:07 +0100)]
Remove FilmViewer::refresh_view.
Carl Hetherington [Wed, 20 Nov 2019 23:05:12 +0000 (00:05 +0100)]
Move _state_timer into VideoView.
Carl Hetherington [Wed, 20 Nov 2019 22:46:40 +0000 (23:46 +0100)]
Accessor for ClosedCaptionsDialog.
Carl Hetherington [Wed, 20 Nov 2019 22:41:58 +0000 (23:41 +0100)]
Same thing with inter_size.
Carl Hetherington [Wed, 20 Nov 2019 22:36:56 +0000 (23:36 +0100)]
Move _inter_position out of FilmViewer.
Carl Hetherington [Wed, 20 Nov 2019 22:07:55 +0000 (23:07 +0100)]
Move _dropped into VideoView.
Carl Hetherington [Wed, 20 Nov 2019 21:30:36 +0000 (22:30 +0100)]
Small re-use cleanup.
Carl Hetherington [Wed, 20 Nov 2019 21:25:40 +0000 (22:25 +0100)]
Implement GLView::update.
Carl Hetherington [Wed, 20 Nov 2019 21:18:33 +0000 (22:18 +0100)]
Don't try opening error dialogues from the GL thread.
Carl Hetherington [Wed, 20 Nov 2019 20:25:55 +0000 (21:25 +0100)]
Fix display when there is no film.
Carl Hetherington [Tue, 19 Nov 2019 23:57:37 +0000 (00:57 +0100)]
Add comment.
Carl Hetherington [Tue, 19 Nov 2019 23:50:58 +0000 (00:50 +0100)]
Start thread when the window will have been created. Fix logic error.
Carl Hetherington [Tue, 19 Nov 2019 23:34:01 +0000 (00:34 +0100)]
Use VideoView::one_video_frame.
Carl Hetherington [Tue, 19 Nov 2019 22:57:14 +0000 (23:57 +0100)]
Nicer protection of _player_video. Always run GL thread rather than starting/stopping it.
Carl Hetherington [Tue, 19 Nov 2019 22:06:50 +0000 (23:06 +0100)]
Remove GL context accessor and hence lock.
Carl Hetherington [Tue, 19 Nov 2019 16:13:25 +0000 (17:13 +0100)]
Naming tweak.
Carl Hetherington [Tue, 19 Nov 2019 16:07:35 +0000 (17:07 +0100)]
Clean up access to stuff from Film.
Carl Hetherington [Sun, 17 Nov 2019 17:13:36 +0000 (18:13 +0100)]
A little thread safety.
Carl Hetherington [Wed, 6 Nov 2019 00:09:13 +0000 (01:09 +0100)]
Various timing hacks and development.
Carl Hetherington [Tue, 5 Nov 2019 22:51:20 +0000 (23:51 +0100)]
Remove PositionChanged in favour of consumers having their own GUI-thread timers.
Carl Hetherington [Tue, 5 Nov 2019 22:26:22 +0000 (23:26 +0100)]
Hack around changes in main branch with respect to suspend/resume.
Carl Hetherington [Sun, 20 Oct 2019 22:55:52 +0000 (00:55 +0200)]
Barely-functioning GL playback with new arrangement.
Carl Hetherington [Sun, 20 Oct 2019 21:24:32 +0000 (23:24 +0200)]
Add FIXME.
Carl Hetherington [Sun, 20 Oct 2019 21:24:15 +0000 (23:24 +0200)]
Add FilmViewer::time_until_next_frame.
Carl Hetherington [Sun, 20 Oct 2019 21:05:59 +0000 (23:05 +0200)]
Add accessor for butler.
Carl Hetherington [Sun, 20 Oct 2019 21:03:27 +0000 (23:03 +0200)]
Move _player_video into VideoView.
Carl Hetherington [Sun, 20 Oct 2019 20:54:45 +0000 (22:54 +0200)]
Move display_player_video into SimpleVideoView.
Carl Hetherington [Sun, 20 Oct 2019 20:49:07 +0000 (22:49 +0200)]
Move FilmViewer::get() into SimpleVideoView.
Carl Hetherington [Sun, 20 Oct 2019 20:24:41 +0000 (22:24 +0200)]
Remove temporary access to timer() method.
Carl Hetherington [Sun, 20 Oct 2019 20:20:06 +0000 (22:20 +0200)]
Remove redundant FilmViewer::video_position() and use FilmViewer::position() instead.
Carl Hetherington [Sun, 20 Oct 2019 20:14:53 +0000 (22:14 +0200)]
Use FilmViewer::{film,playing,position}()
Carl Hetherington [Sun, 20 Oct 2019 20:13:46 +0000 (22:13 +0200)]
Move ::timer into SimpleVideoView.
Carl Hetherington [Tue, 7 Jan 2020 14:42:00 +0000 (14:42 +0000)]
Fix typo causing failures to update the preview after changing
end trim (#1709 and probably #1434).
Carl Hetherington [Tue, 7 Jan 2020 12:30:56 +0000 (13:30 +0100)]
Extend the amount of allowed disagreement between the audio
coming from the content and the calculated periods of silence.
It sees that there is some scope for disagreements here when
trim start/end times are rounded to frame boundaries.
Fixes #1708.
Carl Hetherington [Sun, 5 Jan 2020 14:25:58 +0000 (15:25 +0100)]
Move credentials settings into certificate download dialogue (#1480).
Carl Hetherington [Sun, 5 Jan 2020 13:41:35 +0000 (14:41 +0100)]
Happy new year.
Carl Hetherington [Fri, 3 Jan 2020 01:29:24 +0000 (02:29 +0100)]
Fix failure to save screen notes when making a new one (github bug #6).
Carl Hetherington [Fri, 27 Dec 2019 22:40:18 +0000 (23:40 +0100)]
Add --config option to dcpomatic2 (#1703).
Carl Hetherington [Fri, 27 Dec 2019 22:16:05 +0000 (23:16 +0100)]
Add --version option to main DCP-o-matic.
Carl Hetherington [Mon, 23 Dec 2019 23:56:36 +0000 (00:56 +0100)]
Tweak certficate chain dialogue layout (#1530).
Carl Hetherington [Mon, 23 Dec 2019 00:11:09 +0000 (01:11 +0100)]
Another comment typo.
Carl Hetherington [Mon, 23 Dec 2019 00:09:36 +0000 (01:09 +0100)]
Fix error when trying to make DCP-o-matic DKDMs due to attempts to make
the validity time wider than that of the signing certificate.
Carl Hetherington [Thu, 19 Dec 2019 23:27:08 +0000 (00:27 +0100)]
Comment typo.
Carl Hetherington [Thu, 19 Dec 2019 22:56:49 +0000 (22:56 +0000)]
Remove our forcing of analyzeduration and probesize as they seem to
cause weird problems when scanning some files. The unit test case
added here is a case in point: before this patch one
stream reported an incorrect channel count and sample rate.
It's a bit worrying as these parameters have been in DoM for many years,
but perhaps they have become unnecessary / harmful with changes to FFmpeg.
Carl Hetherington [Wed, 18 Dec 2019 00:09:25 +0000 (01:09 +0100)]
Add an output audio matrix (#1482).
Carl Hetherington [Tue, 17 Dec 2019 21:51:23 +0000 (22:51 +0100)]
Move sound output driver selection into new preferences tab.
Carl Hetherington [Thu, 19 Dec 2019 12:53:30 +0000 (13:53 +0100)]
Add an assertion.
Carl Hetherington [Wed, 18 Dec 2019 22:38:52 +0000 (23:38 +0100)]
Accept float fps when getting timecodes from the Timecode control
otherwise inaccurate values are returned for non-integer rates.
Should fix #1694.
Forward-ported from
1229de2042c785a9e851e5fc53922a75bfbf195d in master.
Carl Hetherington [Tue, 17 Dec 2019 08:38:46 +0000 (09:38 +0100)]
Add missing library to OS X build.
Carl Hetherington [Tue, 17 Dec 2019 00:33:31 +0000 (01:33 +0100)]
Allow configuration of relevant log levels in the player (#1549).
Carl Hetherington [Mon, 16 Dec 2019 23:00:12 +0000 (23:00 +0000)]
Flush audio decoder when a DCPDecoder finishes so that
resamplers are emptied and hence we don't lose any
samples. Fixes #1691.
Back-ported from
1444299fa4582fc65c5237edd6c115921f20f872 in master.
Carl Hetherington [Sun, 15 Dec 2019 22:30:27 +0000 (23:30 +0100)]
Sort out test/data commit history a little.
Carl Hetherington [Sun, 15 Dec 2019 21:59:36 +0000 (22:59 +0100)]
Stop empty Font IDs in imported DCP subtitles making it into the
output DCP (#1689).
Carl Hetherington [Sun, 15 Dec 2019 14:34:17 +0000 (15:34 +0100)]
Updated test reference for new metadata tag.
Carl Hetherington [Sat, 14 Dec 2019 23:47:53 +0000 (00:47 +0100)]
Support content version metadata (#782).
Carl Hetherington [Sat, 14 Dec 2019 23:47:33 +0000 (00:47 +0100)]
Add some missing verification messages.
Carl Hetherington [Sat, 14 Dec 2019 23:19:16 +0000 (00:19 +0100)]
Typo in installation copying.
Carl Hetherington [Sat, 14 Dec 2019 01:20:02 +0000 (02:20 +0100)]
Fix typo.
Carl Hetherington [Sat, 14 Dec 2019 00:41:37 +0000 (01:41 +0100)]
Fix xerces win32 wscript typo.
Carl Hetherington [Fri, 13 Dec 2019 22:33:47 +0000 (23:33 +0100)]
Try a simpler, monochrome icon for the server taskbar icon in macOS (#1670).
Carl Hetherington [Wed, 11 Dec 2019 11:56:03 +0000 (12:56 +0100)]
Use the new libdcp xerces stuff and install the required supporting files.
Carl Hetherington [Tue, 10 Dec 2019 22:43:09 +0000 (22:43 +0000)]
Make terminate_threads() less likely to leave _threads containing invalid pointers.
Backported from
f0c10e92b849566e458bc323f8783a6fe83e52d2 in master.
Carl Hetherington [Tue, 10 Dec 2019 23:04:56 +0000 (00:04 +0100)]
Fix crash on hotkey-opening the menu then pressing right a few times.
Carl Hetherington [Mon, 9 Dec 2019 23:01:01 +0000 (00:01 +0100)]
dcpomatic_create should respond to --version on stdout, not stderr (#1686).
Carl Hetherington [Sun, 8 Dec 2019 15:28:48 +0000 (16:28 +0100)]
Throw errors from CPLSummary constructor if the DCP::read reported any problems.
Carl Hetherington [Fri, 6 Dec 2019 14:26:19 +0000 (15:26 +0100)]
Adjust for changes to libdcp API.
Carl Hetherington [Wed, 4 Dec 2019 21:51:56 +0000 (22:51 +0100)]
Add openssl licence to source tree.
Carl Hetherington [Tue, 3 Dec 2019 20:47:27 +0000 (21:47 +0100)]
Package a patched openssl which creates certificates with
a validity period starting a week before now; fixes #1422.
Carl Hetherington [Tue, 3 Dec 2019 20:51:42 +0000 (21:51 +0100)]
Whitespace fixes.