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

Reply via email to