pali / igmpproxy

IGMP multicast routing daemon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stream will stop if you stop and start the stream very fast.

kingvenlee opened this issue · comments

commented

Hi,

i use VLC to test. if you recycle do 'stop and start' the same stream three time very fast, the last action is start, then the stream will stop after 10 seconds.

test steps:

  1. start a stream, play several seconds.
  2. stop the stream then start it as fast as you can.
  3. repeat step#2
  4. repeat step#2
  5. stream play ok, but after 10 seconds it will stop.

i think the problem is that function 'ageActiveRoutes()' run a timer(10 sec) delay.
it call 'internAgeRoute()' and do
croute->ageValue--;
...
BIT_ZERO(croute->ageVifBits);
...

is you change
#define INTERVAL_QUERY_RESPONSE 10
to
#define INTERVAL_QUERY_RESPONSE 1

this issue will not happen

so, even my last action is start a stream , the croute->ageValue will '--' to 0 if the function 'ageActiveRoutes()' run two times after my 'start stream' action.

so i do a modify to below in function 'internAgeRoute()' :
// The aging vif bits must be reset for each round...
+if (croute->upstrState == ROUTESTATE_CHECK_LAST_MEMBER ) {
BIT_ZERO(croute->ageVifBits);
+}
return result;
}

if you have any question please contact me lileirqtq@hotmail.com

thanks