summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-12-24 23:28:08 +0100
committerCarl Hetherington <cth@carlh.net>2024-12-24 23:41:56 +0100
commitceea64b98c1469b1e34e4897654f9671664203ee (patch)
tree5c4448463a62c3fb8d1918024625215e9bd2a660
parent8c68eba118d73fb6619b20d39b3b6fac77085c7a (diff)
Replace assertion with a softer fix.
Had a report of this assertion tripping with "only servers encode" switched on. The user had encode servers but they were running old software, so wouldn't be enabled for use. Obviously the main DCP-o-matic should not crash in this situation.
-rw-r--r--src/lib/j2k_encoder.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/j2k_encoder.cc b/src/lib/j2k_encoder.cc
index 90b8b1d1a..309fce0b3 100644
--- a/src/lib/j2k_encoder.cc
+++ b/src/lib/j2k_encoder.cc
@@ -366,7 +366,12 @@ void
J2KEncoder::remake_threads(int cpu, int gpu, list<EncodeServerDescription> servers)
{
LOG_GENERAL("Making threads: CPU=%1, GPU=%2, Remote=%3", cpu, gpu, servers.size());
- DCPOMATIC_ASSERT((cpu + gpu + servers.size()) > 0);
+ if ((cpu + gpu + servers.size()) == 0) {
+ /* Make at least one thread, even if all else fails. Maybe we are configured
+ * for "only servers encode" but no servers have been registered yet.
+ */
+ ++cpu;
+ }
boost::mutex::scoped_lock lm (_threads_mutex);
if (_ending) {