# HG changeset patch
# User Deepthi Nandakumar <[email protected]>
# Date 1458293588 -19800
# Fri Mar 18 15:03:08 2016 +0530
# Node ID f60818c73f3b2c8c42d987c6d25d9c73ef6bc089
# Parent 63748dea60675d5a029ca0b1b8a92de2aaad94b0
param: prevent race conditions in initialising global tables (refs #247)
Reset param if different encoder instances have different CU sizes.
diff -r 63748dea6067 -r f60818c73f3b source/common/param.cpp
--- a/source/common/param.cpp Thu Mar 17 13:01:37 2016 +0530
+++ b/source/common/param.cpp Fri Mar 18 15:03:08 2016 +0530
@@ -1225,18 +1225,21 @@
uint32_t maxLog2CUSize = (uint32_t)g_log2Size[param->maxCUSize];
uint32_t minLog2CUSize = (uint32_t)g_log2Size[param->minCUSize];
- if (ATOMIC_INC(&g_ctuSizeConfigured) > 1)
+ Lock gLock;
+ ScopedLock sLock(gLock);
+
+ if (++g_ctuSizeConfigured > 1)
{
if (g_maxCUSize != param->maxCUSize)
{
- x265_log(param, X265_LOG_ERROR, "maxCUSize must be the same
for all encoders in a single process");
- return -1;
+ x265_log(param, X265_LOG_WARNING, "maxCUSize must be the same
for all encoders in a single process");
}
if (g_maxCUDepth != maxLog2CUSize - minLog2CUSize)
{
- x265_log(param, X265_LOG_ERROR, "maxCUDepth must be the same
for all encoders in a single process");
- return -1;
+ x265_log(param, X265_LOG_WARNING, "maxCUDepth must be the same
for all encoders in a single process");
}
+ param->maxCUSize = g_maxCUSize;
+ return x265_check_params(param); /* Check again, since param may
have changed */
}
else
{
--
Deepthi Nandakumar
Engineering Manager, x265
Multicoreware, Inc
_______________________________________________
x265-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/x265-devel