From 115d9cefe0e2d6b10aeb6fc14a044969b69d75d2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 13 Mar 2015 21:14:41 +0000 Subject: [PATCH] added a TODO comment --- src/buffer.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/buffer.cpp b/src/buffer.cpp index 6630a559..1bcb5ebc 100755 --- a/src/buffer.cpp +++ b/src/buffer.cpp @@ -233,6 +233,21 @@ void CNetBufWithStats::UpdateAutoSetting() // the current jitter buffer size significantly. // For the initialization phase, use lower weight values to get faster // adaptation. + + +// TODO The alpha values are not correct if we use larger buffer sizes like, e.g., 512 samples. +// TODO How does the buffer knows which buffer size is used since it only works on coded bytes +// from the OPUS codec? +// Possible calculation: +// alpha values at N = 128 samples block size: up = 0.999995 +// down = 0.9999 +// with R = 1 / N * ( ( 1 - alpha ) / alpha ) +// -> R_up = 3.9062695313732476e-8 +// -> R_down = 7.813281328131953e-7 +// Calculate the new alpha for the new block size N_new: +// alpha_new = 1 / N_new / ( R_x + 1 / N_new ) + + double dWeightUp = 0.999995; double dWeightDown = 0.9999; const double dHysteresisValue = 0.1; @@ -244,6 +259,9 @@ void CNetBufWithStats::UpdateAutoSetting() iInitCounter--; // overwrite weigth values with lower values + +// TODO see above calculation + dWeightUp = 0.9995; dWeightDown = 0.999; }