[Live-devel] RTCP endless loop

Victor Kozhuhov vkozhuhov at gmx.net
Sun Sep 10 18:37:37 PDT 2006


Hello,

I found that RTCP interval calculation returns incorrect values, when
average RTCP bandwidth is zero.
It is not very common case, but sometimes it happens, and OnExpire(...)
function receives rtcp_bw parameter equal to zero ( 0.0(0) ). Actually, less
RTCP bandwidth result in bigger timeout, but not when bandwidth is 0.

rtcp_from_spec.c file, rtcp_interval(...) function contains the following
lines:
       t = avg_rtcp_size * n / rtcp_bw;
       if (t < rtcp_min_time) t = rtcp_min_time;

After first line t is equal to 1.#INF000000000000, and second line fails to
fix it -
condition (t < rtcp_min_time) --> (1.#INF000000000000 < 5.0000000000000000)
is false, so t remains equal to 1.#INF000000000000, that converted to
microseconds (integer value) stands for 0.

Is it a bug? Scheduler falls into endless loop performing background RTCP
read with zero timeout...

With best regards,
Victor.



More information about the live-devel mailing list