codec/rfx: Fixed bufferpool size used for RemoteFX

y_r_buffer, cb_g_buffer, cr_b_buffer and dwt_buffer are all word arrays (16bit)
but obviously the bufferpool size was calculated based on the wrong assumption
that these are 32 bit values in commit 37a59efbe3
This commit is contained in:
Norbert Federa 2013-07-05 12:30:13 +02:00
parent c63cb43285
commit df7526f888

View File

@ -137,6 +137,7 @@ static void rfx_profiler_print(RFX_CONTEXT* context)
PROFILER_PRINT_FOOTER;
}
RFX_CONTEXT* rfx_context_new(void)
{
HKEY hKey;
@ -159,8 +160,8 @@ RFX_CONTEXT* rfx_context_new(void)
/*
* align buffers to 16 byte boundary (needed for SSE/NEON instructions)
*
* y_r_buffer, cb_g_buffer, cr_b_buffer: 64 * 64 * 4 = 16384 (0x4000)
* dwt_buffer: 32 * 32 * 2 * 2 * 4 = 16384, maximum sub-band width is 32
* y_r_buffer, cb_g_buffer, cr_b_buffer: 64 * 64 * sizeof(INT16) = 8192 (0x2000)
* dwt_buffer: 32 * 32 * 2 * 2 * sizeof(INT16) = 8192, maximum sub-band width is 32
*
* Additionally we add 32 bytes (16 in front and 16 at the back of the buffer)
* in order to allow optimized functions (SEE, NEON) to read from positions
@ -168,7 +169,7 @@ RFX_CONTEXT* rfx_context_new(void)
* performed at the BufferPool_Take function calls in rfx_encode/decode.c.
*/
context->priv->BufferPool = BufferPool_New(TRUE, 16384 + 32, 16);
context->priv->BufferPool = BufferPool_New(TRUE, 8192 + 32, 16);
#ifdef _WIN32
{