jamulussoftware / jamulussoftware/jamulus

Estimate Overall Delay time calculation too optimistic?

Abierto
#2,979 3 comentarios 0 reacciones 0 asignados Ver en GitHub
feature request
Lenguaje dominante
C
Estrellas
1.1k
Forks
248
Merge medio
2 d 3 h
PR fusionados (30 d)
9

Descripción

**Describe the bug**
This is a very minor thing I guess, but to my understanding the effect of buffering is not shown correcly in the Jamulus main window / not calculated correctly in
CClient::EstimatedOverallDelay. It uses a factor of 0.7 for local and remote buffers - with the comment that the buffers usually a bit larger than required. That may be true, and the achievable delay would be less if the buffers were set correctly.

But I aussume that the display of delay should show the delay **currently experienced**, not the delay potentially achievable with better buffer setting.
Or do I miss something?

**To Reproduce**

No other measurement is available for the real experienced delay, so the value shown may just be off / too low compared to real experienced delay.

**Expected behavior**

My understanding of the buffer implementation is that it evens out network delay and jitter, and adds a fixed delay, so the delay of e.g. a buffer size of 4 is 4 times the block duration.
so the code should read

` const float fTotalJitterBufferDelayMs = fSystemBlockDurationMs * ( GetSockBufNumFrames() + GetServerSockBufNumFrames() );`

instead of
` const float fTotalJitterBufferDelayMs = fSystemBlockDurationMs * ( GetSockBufNumFrames() + GetServerSockBufNumFrames() ) * 0.7f;`

**Operating system**

any

**Version of Jamulus**
3.9.1

**Additional context**

I am prototyping a statisitics console on connection quality that should help to monitor long time quality of connections to the server. So I read a lot of jamulus source code and try to figure out the statistics calculations currently used. This when I encountered this calculation that I do not understand.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en CClient::EstimatedOverallDelay e inspecciona cómo GetSockBufNumFrames(), GetServerSockBufNumFrames() y fSystemBlockDurationMs contribuyen al retraso mostrado. Compara el factor actual 0.7 con el comportamiento de los búferes descrito en el issue y verifica después que la estimación de la ventana principal refleje el retraso experimentado en lugar de un valor potencialmente alcanzable.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
audio-video-rtc
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.