Any ideas why this may be happening?
Unfortunately not.
So I did a quick test with the following code:
case AWAITING_STREAM_CHANNEL_ID: {
// The byte that we read is the stream channel id.
RTPInterface* rtpInterface = lookupRTPInterface(c);
if (rtpInterface != NULL)
{
fStreamChannelId = c;
fTCPReadingState = AWAITING_SIZE1;
}
else
{ // we're not interested in this channel
fTCPReadingState = AWAITING_DOLLAR;
}
...and that seems to have mostly corrected the issue.
I'll add this to the next release of the software. I'm not thrilled
by this, though, because it means that all subsequent data - up to
the next '$' - will get treated as making up a possible RTSP request
or response (the "fServerRequestAlternativeByteHandler" code). But
at least the code will keep making forward progress (reading one by
at a time, up to the next '$').
That said, I'd really like to know how it's happening in the first
place--seems to me like there must be some other bug allowing it to
get in this state?
Agreed.
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel