dcpomatic.git
3 weeks agoFix build with some older boosts. v2.17.18
Carl Hetherington [Tue, 11 Jun 2024 18:16:25 +0000 (20:16 +0200)]
Fix build with some older boosts.

3 weeks agoMerge branch 'main' into v2.17.x
Carl Hetherington [Tue, 11 Jun 2024 12:23:53 +0000 (14:23 +0200)]
Merge branch 'main' into v2.17.x

3 weeks agoSupporters update.
Carl Hetherington [Tue, 11 Jun 2024 12:23:39 +0000 (14:23 +0200)]
Supporters update.

3 weeks agoMissing include.
Carl Hetherington [Tue, 11 Jun 2024 11:55:18 +0000 (13:55 +0200)]
Missing include.

3 weeks agoMissing explicit.
Carl Hetherington [Mon, 10 Jun 2024 20:28:43 +0000 (22:28 +0200)]
Missing explicit.

3 weeks agoFall back to default font file if a font ID is not found in the content.
Carl Hetherington [Mon, 10 Jun 2024 19:39:34 +0000 (21:39 +0200)]
Fall back to default font file if a font ID is not found in the content.

This should not happen, but seems rather likely given the mess that is
building (especially with users switching between versions).

3 weeks agoSimplify the FontIDAllocator a lot (#2827).
Carl Hetherington [Sun, 9 Jun 2024 23:05:43 +0000 (01:05 +0200)]
Simplify the FontIDAllocator a lot (#2827).

This is at the expense of forward compatibility, and the need to
re-examine subtitle content (losing custom fonts as we do so).

But it does mean that the code is simpler, and there's not this weird
growth of IDs where a DCP gets imported with some font, and then the ID
becomes 0_font, and if you do it again it's 0_0_font, and so on.

3 weeks agoClarify some documentation slightly.
Carl Hetherington [Sun, 9 Jun 2024 23:04:16 +0000 (01:04 +0200)]
Clarify some documentation slightly.

4 weeks agoAdd comment.
Carl Hetherington [Sun, 9 Jun 2024 21:42:36 +0000 (23:42 +0200)]
Add comment.

4 weeks agoFix an erroneous font ID error that can happen when loading projects from builds...
Carl Hetherington [Sun, 9 Jun 2024 21:38:24 +0000 (23:38 +0200)]
Fix an erroneous font ID error that can happen when loading projects from builds without release version tags.

So that last_written_by_earlier_than() always returns true,
check_font_ids() happens when it doesn't really need to.

4 weeks agoCleanup: text is a vector now.
Carl Hetherington [Sun, 9 Jun 2024 21:36:58 +0000 (23:36 +0200)]
Cleanup: text is a vector now.

4 weeks agoStop weird names appearing when the user clicks "copy as name" twice.
Carl Hetherington [Sun, 9 Jun 2024 18:20:13 +0000 (20:20 +0200)]
Stop weird names appearing when the user clicks "copy as name" twice.

4 weeks agoCleanup: substr() can accept npos for the second parameter.
Carl Hetherington [Sun, 9 Jun 2024 18:19:47 +0000 (20:19 +0200)]
Cleanup: substr() can accept npos for the second parameter.

4 weeks agoAdd option to copy content settings from another project (#2808).
Carl Hetherington [Sat, 8 Jun 2024 22:41:04 +0000 (00:41 +0200)]
Add option to copy content settings from another project (#2808).

4 weeks agoBump libdcp for asdcplib assertion fix (#2825).
Carl Hetherington [Sat, 8 Jun 2024 21:29:56 +0000 (23:29 +0200)]
Bump libdcp for asdcplib assertion fix (#2825).

4 weeks agoOnly allow adding reels in custom reel mode (#2823).
Carl Hetherington [Sat, 8 Jun 2024 18:21:37 +0000 (20:21 +0200)]
Only allow adding reels in custom reel mode (#2823).

4 weeks agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Sat, 8 Jun 2024 18:18:40 +0000 (20:18 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

4 weeks agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Sat, 8 Jun 2024 18:17:43 +0000 (20:17 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

4 weeks agoFix font ID allocation from DCP when there are subs and ccaps using the same IDs...
Carl Hetherington [Fri, 7 Jun 2024 19:09:03 +0000 (21:09 +0200)]
Fix font ID allocation from DCP when there are subs and ccaps using the same IDs (#2822).

Previously we would always use <last-reel+1>_id as a disambiguated ID
for every case.

4 weeks agoSupport optimised rendering of YUV420P in OpenGL.
Carl Hetherington [Thu, 6 Jun 2024 19:17:56 +0000 (21:17 +0200)]
Support optimised rendering of YUV420P in OpenGL.

4 weeks agoStore the video encoding of a DCP in the metadata (J2K/MPEG2).
Carl Hetherington [Thu, 6 Jun 2024 19:16:54 +0000 (21:16 +0200)]
Store the video encoding of a DCP in the metadata (J2K/MPEG2).

4 weeks agoMake sure MPEG2 encodes are always 2K (#2819).
Carl Hetherington [Tue, 4 Jun 2024 19:18:28 +0000 (21:18 +0200)]
Make sure MPEG2 encodes are always 2K (#2819).

4 weeks agoAdd an option to dump the decryption certificate from the KDM CLI.
Carl Hetherington [Tue, 4 Jun 2024 19:01:53 +0000 (21:01 +0200)]
Add an option to dump the decryption certificate from the KDM CLI.

4 weeks agoAdd $png_apps variable.
Carl Hetherington [Mon, 3 Jun 2024 20:48:04 +0000 (22:48 +0200)]
Add $png_apps variable.

5 weeks agoBump test/data for another subtitle rendering reference fix.
Carl Hetherington [Sun, 2 Jun 2024 18:57:30 +0000 (20:57 +0200)]
Bump test/data for another subtitle rendering reference fix.

5 weeks agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Fri, 31 May 2024 21:20:21 +0000 (23:20 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

5 weeks agoMake the DCP-encode counting dependent on variant.
Carl Hetherington [Fri, 31 May 2024 08:59:48 +0000 (10:59 +0200)]
Make the DCP-encode counting dependent on variant.

5 weeks agoFix incorrect default _show_report_a_problem.
Carl Hetherington [Fri, 31 May 2024 08:49:52 +0000 (10:49 +0200)]
Fix incorrect default _show_report_a_problem.

5 weeks agoSupporters update. v2.16.86
Carl Hetherington [Thu, 30 May 2024 18:02:10 +0000 (20:02 +0200)]
Supporters update.

5 weeks agoRender subtitles using show_in_cairo_context() instead of add_to_cairo_context().
Carl Hetherington [Sun, 19 May 2024 20:33:44 +0000 (22:33 +0200)]
Render subtitles using show_in_cairo_context() instead of add_to_cairo_context().

This helps with #2813 and should fix #2474.

We started using add_to_cairo_context() again in
72c3a5f0f32f553a1f8abee2494f31d29b976383
because the rendering looked better.  However colour changes within
lines cannot easily be rendered using add_to_cairo_context() it seems,
as the text is just added as a path and then you can stroke/fill it
with a single colour.

I hope that this change, which reverts 72c3a5 but also adds some calls
to enable hinting and use better anti-aliasing, looks OK.  I looked
at some white-on-black subs close-up and the hinting seems to help.

5 weeks agoFix merge.
Carl Hetherington [Wed, 29 May 2024 19:21:29 +0000 (21:21 +0200)]
Fix merge.

5 weeks agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Wed, 29 May 2024 19:12:17 +0000 (21:12 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

5 weeks agoBump SERVER_LINK_VERSION since we changed the name of some metadata.
Carl Hetherington [Wed, 29 May 2024 13:02:54 +0000 (15:02 +0200)]
Bump SERVER_LINK_VERSION since we changed the name of some metadata.

5 weeks agoHide some warnings.
Carl Hetherington [Wed, 29 May 2024 12:54:38 +0000 (14:54 +0200)]
Hide some warnings.

5 weeks agoUse territory details from template.
Carl Hetherington [Thu, 9 May 2024 21:01:08 +0000 (23:01 +0200)]
Use territory details from template.

5 weeks agoGet chain, facility, studio and distributor from template.
Carl Hetherington [Thu, 9 May 2024 20:46:59 +0000 (22:46 +0200)]
Get chain, facility, studio and distributor from template.

5 weeks agoRemove default Interop/SMPTE setting.
Carl Hetherington [Thu, 9 May 2024 20:20:53 +0000 (22:20 +0200)]
Remove default Interop/SMPTE setting.

5 weeks agoRemove default video bit rate settings.
Carl Hetherington [Thu, 9 May 2024 20:13:15 +0000 (22:13 +0200)]
Remove default video bit rate settings.

5 weeks agoRemove default DCP audio channel setting.
Carl Hetherington [Thu, 9 May 2024 20:03:01 +0000 (22:03 +0200)]
Remove default DCP audio channel setting.

5 weeks agoRemove default DCP content type setting.
Carl Hetherington [Thu, 9 May 2024 19:56:07 +0000 (21:56 +0200)]
Remove default DCP content type setting.

5 weeks agoUse ConfigRestorer to reset override_path after use.
Carl Hetherington [Sat, 25 May 2024 18:21:27 +0000 (20:21 +0200)]
Use ConfigRestorer to reset override_path after use.

6 weeks agoNote that newer libsub version is required.
Carl Hetherington [Sun, 26 May 2024 19:48:27 +0000 (20:48 +0100)]
Note that newer libsub version is required.

6 weeks agoFix build with newer libsub.
Carl Hetherington [Sun, 26 May 2024 19:47:56 +0000 (20:47 +0100)]
Fix build with newer libsub.

6 weeks agoImprove save-template dialog and always use a default template.
Carl Hetherington [Thu, 9 May 2024 19:33:56 +0000 (21:33 +0200)]
Improve save-template dialog and always use a default template.

6 weeks agoUse std::vector for Config::templates().
Carl Hetherington [Thu, 9 May 2024 19:33:19 +0000 (21:33 +0200)]
Use std::vector for Config::templates().

6 weeks agoCleanup: make method private.
Carl Hetherington [Thu, 9 May 2024 19:33:00 +0000 (21:33 +0200)]
Cleanup: make method private.

6 weeks agoRead 16-bit audio DCPs correctly.
Carl Hetherington [Fri, 24 May 2024 21:50:03 +0000 (23:50 +0200)]
Read 16-bit audio DCPs correctly.

As far as I can tell they are totally non-standard, but apparently
the IMS3000 plays them so I guess we should too.

6 weeks agoVerify that DCPs have 24-bit audio.
Carl Hetherington [Fri, 24 May 2024 21:49:32 +0000 (23:49 +0200)]
Verify that DCPs have 24-bit audio.

6 weeks agoDon't repeat the same error/warning more than once.
Carl Hetherington [Fri, 24 May 2024 20:12:32 +0000 (22:12 +0200)]
Don't repeat the same error/warning more than once.

6 weeks agoFix some incorrect verification messages.
Carl Hetherington [Fri, 24 May 2024 19:01:42 +0000 (21:01 +0200)]
Fix some incorrect verification messages.

6 weeks agoBump libsub for SSA Margin{L,R} support (#2811).
Carl Hetherington [Wed, 22 May 2024 21:31:37 +0000 (23:31 +0200)]
Bump libsub for SSA Margin{L,R} support (#2811).

This also pulls in a colour fix for binary STL but the colours are
not yet visible in the preview due to another bug.

6 weeks agoRename new_test_film2 -> new_test_film.
Carl Hetherington [Mon, 20 May 2024 14:55:57 +0000 (16:55 +0200)]
Rename new_test_film2 -> new_test_film.

6 weeks agoReplace all new_test_film with new_test_film2.
Carl Hetherington [Mon, 20 May 2024 14:54:37 +0000 (16:54 +0200)]
Replace all new_test_film with new_test_film2.

6 weeks agoFix stream length for DCP content (#2688).
Carl Hetherington [Mon, 20 May 2024 13:21:51 +0000 (15:21 +0200)]
Fix stream length for DCP content (#2688).

6 weeks agoAllow running tests from trees made with cdist.
Carl Hetherington [Mon, 20 May 2024 13:21:24 +0000 (15:21 +0200)]
Allow running tests from trees made with cdist.

6 weeks agoUse $HOME rather than hard-coded user name.
Carl Hetherington [Mon, 20 May 2024 19:36:57 +0000 (21:36 +0200)]
Use $HOME rather than hard-coded user name.

6 weeks agoCleanup, and try to make a test use less disk space.
Carl Hetherington [Mon, 20 May 2024 18:00:07 +0000 (20:00 +0200)]
Cleanup, and try to make a test use less disk space.

6 weeks agoMore cleanups.
Carl Hetherington [Mon, 20 May 2024 15:50:00 +0000 (17:50 +0200)]
More cleanups.

6 weeks agoAnother cleanup.
Carl Hetherington [Mon, 20 May 2024 15:16:44 +0000 (17:16 +0200)]
Another cleanup.

6 weeks agoClean up some more tests.
Carl Hetherington [Mon, 20 May 2024 15:05:16 +0000 (17:05 +0200)]
Clean up some more tests.

6 weeks agoClean up another big test.
Carl Hetherington [Mon, 20 May 2024 14:58:55 +0000 (16:58 +0200)]
Clean up another big test.

6 weeks agoUse new_test_film2.
Carl Hetherington [Mon, 20 May 2024 14:00:47 +0000 (16:00 +0200)]
Use new_test_film2.

6 weeks agoCleanup another test.
Carl Hetherington [Mon, 20 May 2024 14:00:43 +0000 (16:00 +0200)]
Cleanup another test.

6 weeks agoAdd missing call to Cleanup::run().
Carl Hetherington [Mon, 20 May 2024 12:37:06 +0000 (14:37 +0200)]
Add missing call to Cleanup::run().

7 weeks agoDon't make _stream_states for unmapped audio, otherwise we wait for content
Carl Hetherington [Sun, 19 May 2024 21:46:55 +0000 (23:46 +0200)]
Don't make _stream_states for unmapped audio, otherwise we wait for content
which will never arrive.

7 weeks agoAdd and use Content::has_mapped_audio().
Carl Hetherington [Sun, 19 May 2024 21:27:34 +0000 (23:27 +0200)]
Add and use Content::has_mapped_audio().

7 weeks agoCleanup: use auto.
Carl Hetherington [Sun, 19 May 2024 21:27:18 +0000 (23:27 +0200)]
Cleanup: use auto.

7 weeks agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Sun, 19 May 2024 20:51:46 +0000 (22:51 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

7 weeks agoFix thinko in previous.
Carl Hetherington [Sun, 19 May 2024 20:41:53 +0000 (22:41 +0200)]
Fix thinko in previous.

7 weeks agoMissing setup of DYLD_LIBRARY_PATH.
Carl Hetherington [Sun, 19 May 2024 19:04:54 +0000 (21:04 +0200)]
Missing setup of DYLD_LIBRARY_PATH.

7 weeks agoAnother old libxml API instance.
Carl Hetherington [Sun, 19 May 2024 18:09:48 +0000 (20:09 +0200)]
Another old libxml API instance.

7 weeks agoFix old libxml API use from main.
Carl Hetherington [Sun, 19 May 2024 16:10:15 +0000 (18:10 +0200)]
Fix old libxml API use from main.

7 weeks agoCleanup: missing word in comment.
Carl Hetherington [Sat, 18 May 2024 09:41:53 +0000 (11:41 +0200)]
Cleanup: missing word in comment.

7 weeks agoRemember position and size of caption list view.
Carl Hetherington [Sat, 18 May 2024 09:41:44 +0000 (11:41 +0200)]
Remember position and size of caption list view.

7 weeks agoEmit no audio from DCPs if none is mapped v2.16.85
Carl Hetherington [Fri, 17 May 2024 13:03:15 +0000 (15:03 +0200)]
Emit no audio from DCPs if none is mapped

This makes DCP content behave the same as FFmpeg.

7 weeks agoMake sure we don't say some content has audio if none will be emitted.
Carl Hetherington [Fri, 17 May 2024 13:02:57 +0000 (15:02 +0200)]
Make sure we don't say some content has audio if none will be emitted.

In the FFmpeg (and shortly DCP) case we don't emit any audio if none is mapped,
so we must take this into account in the player.

7 weeks agoSome more test fixups.
Carl Hetherington [Thu, 16 May 2024 20:17:58 +0000 (22:17 +0200)]
Some more test fixups.

7 weeks agoFix some test references for auto-changing of cinemas file path to .sqlite3
Carl Hetherington [Thu, 16 May 2024 14:58:53 +0000 (16:58 +0200)]
Fix some test references for auto-changing of cinemas file path to .sqlite3

Also come back to the v2.18.x branch of test/data.

7 weeks agoMerge branch 'main' into v2.17.x
Carl Hetherington [Thu, 16 May 2024 12:59:50 +0000 (14:59 +0200)]
Merge branch 'main' into v2.17.x

7 weeks agoSupporters update. v2.16.84
Carl Hetherington [Thu, 16 May 2024 07:26:00 +0000 (09:26 +0200)]
Supporters update.

7 weeks agoUpdate DCP encoder progress on all passe()es, not just when audio is emitted.
Carl Hetherington [Sun, 12 May 2024 13:38:31 +0000 (15:38 +0200)]
Update DCP encoder progress on all passe()es, not just when audio is emitted.

7 weeks agoGet DCP transcode progress from the player (#2804).
Carl Hetherington [Sun, 12 May 2024 13:22:28 +0000 (15:22 +0200)]
Get DCP transcode progress from the player (#2804).

7 weeks agoFix Windows test runner.
Carl Hetherington [Wed, 15 May 2024 21:48:53 +0000 (23:48 +0200)]
Fix Windows test runner.

7 weeks agoFix macOS environment setup.
Carl Hetherington [Tue, 14 May 2024 08:26:19 +0000 (10:26 +0200)]
Fix macOS environment setup.

7 weeks agoFix warning cause by previous libdcp bump.
Carl Hetherington [Mon, 13 May 2024 22:02:54 +0000 (00:02 +0200)]
Fix warning cause by previous libdcp bump.

7 weeks agoFix case where both XML and sqlite3 files are present, and config.xml still refers...
Carl Hetherington [Mon, 13 May 2024 21:25:25 +0000 (23:25 +0200)]
Fix case where both XML and sqlite3 files are present, and config.xml still refers to the XML.

Then we would leave the config.xml pointing at the XML, and everything
after that assumes that cinemas_file is sqlite3.  Instead we always set
the cinemas file to the sqlite3 version, and convert if it it wasn't
there before.

7 weeks agoBump libdcp for another MCA channel ID fix (#2810).
Carl Hetherington [Mon, 13 May 2024 21:11:55 +0000 (23:11 +0200)]
Bump libdcp for another MCA channel ID fix (#2810).

7 weeks agoDon't bother decoding audio if none of it is mapped (#2809).
Carl Hetherington [Sun, 12 May 2024 23:20:27 +0000 (01:20 +0200)]
Don't bother decoding audio if none of it is mapped (#2809).

On a test adding subs from an MKV to an existing DCP this reduces
the processing time from ~2h to ~1m because it doesn't resample the
audio from the whole of the MKV, only to discard it.

8 weeks agoStop using video directory and hard-linking (#2756).
Carl Hetherington [Thu, 14 Mar 2024 23:41:20 +0000 (00:41 +0100)]
Stop using video directory and hard-linking (#2756).

Instead store details of a previously-created asset in the film's
metadata and then look there for potential video files to re-use.

8 weeks agoFix link icon width again.
Carl Hetherington [Sat, 11 May 2024 08:57:01 +0000 (10:57 +0200)]
Fix link icon width again.

Seems to be different on wxWidgets 3.1.x vs 3.2.x.

8 weeks agoFix doxygen comment.
Carl Hetherington [Fri, 10 May 2024 22:18:44 +0000 (00:18 +0200)]
Fix doxygen comment.

8 weeks agoMake sure build/test exists.
Carl Hetherington [Wed, 3 Apr 2024 22:17:29 +0000 (00:17 +0200)]
Make sure build/test exists.

8 weeks agoFix history trimming.
Carl Hetherington [Thu, 9 May 2024 18:15:27 +0000 (20:15 +0200)]
Fix history trimming.

2 months agoTest build fix. v2.17.17
Carl Hetherington [Wed, 8 May 2024 06:52:02 +0000 (08:52 +0200)]
Test build fix.

2 months agoFix incorrect file adding during merge.
Carl Hetherington [Wed, 8 May 2024 06:07:24 +0000 (08:07 +0200)]
Fix incorrect file adding during merge.

2 months agoMerge remote-tracking branch 'origin/main' into v2.17.x
Carl Hetherington [Tue, 7 May 2024 23:53:50 +0000 (01:53 +0200)]
Merge remote-tracking branch 'origin/main' into v2.17.x

2 months agoMerge branch 'main' into v2.17.x
Carl Hetherington [Tue, 7 May 2024 23:50:09 +0000 (01:50 +0200)]
Merge branch 'main' into v2.17.x

2 months agoWork around deadlock when destroying J2KEncoder with a full writer queue (#2784). v2.16.83
Carl Hetherington [Sun, 5 May 2024 19:34:29 +0000 (21:34 +0200)]
Work around deadlock when destroying J2KEncoder with a full writer queue (#2784).

This feels like a hack, but I can't think of a nicer way to do it.

The interruption disable makes sense because when we destroy encoder threads
during a DCP encode (because a remote server goes away, for example) we don't
want any frames to be lost due to the encode thread being interrupted between
taking the frame off the queue and sending it to the writer.

When we're destroying the encoder we don't care about this, but I can't see
how you'd differentiate.

Maybe the encoder queue could have two lists: to-do and in-progress;
the encoder thread atomically moves a frame from to-do to in-progress,
but then how do you know when the in-progress ones are orphaned and need
to be re-added to the main queue.

You could make the writer return saying "no" if the queue is full (rather
than blocking and waiting for the queue to empty) but that seems wasteful
as then the frame would be re-encoded.

2 months agoAdd some missing includes.
Carl Hetherington [Sun, 5 May 2024 19:34:22 +0000 (21:34 +0200)]
Add some missing includes.

2 months agoSupporters update.
Carl Hetherington [Tue, 7 May 2024 22:33:13 +0000 (00:33 +0200)]
Supporters update.