[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