[Live-devel] Handling RTCP Goodbye packet with OpenRTSP

Ross Finlayson finlayson at live555.com
Fri Nov 26 18:12:44 PST 2010


>So my question is:
>Would it be possible to force the call to shutdown at the first call 
>of subsessionByeHandler ?

Yes, it would certainly be 'possible'.  However, I'm not going to do 
that, because it's not the right thing to do.  It's perfectly 
reasonable (though uncommon) for the server to end one substream 
early, while continuing to stream the other(s).  In this case, we 
want to continue to receive the other, ongoing stream(s), until they 
also end.


>I get the following sequence when the problem is happenning: 
>
>.....
>server -> client   AUDIO RTCP GOODBYE
>crash
>server -> client   VIDEO RTCP GOODBYE
>client -> server   RTSP TEARDOWN
>.....
>
>
>The first call to "subsessionByeHandler()" close the audio media 
>subsession's stream, which causes some medium object to be deleted.
>But "shutdown()" is not yet called since the video subession is 
>still active. Therefore the alarm handlers are not unscheduled and 
>the previously deleted audio medium object is used later in the 
>process when calling fDelayQueue.handleAlarm() in order to process 
>some pending audio buffer.

This is helpful, but still not quite enough information, 
unfortunately.  The closing of the audio subsession's stream *should* 
be stopping any additional processing related to the audio stream, so 
it that's not happening, then that will be the bug.

It would be nice to know exactly what alarm handler function is 
getting called (after the audio subsession is closed) that's leading 
to the crash.
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list