[Live-devel] whether is a bug in function RTPInterface::handleRead in RTP over RTSP scenario

张世勇 shiyong.zhang.cn at gmail.com
Mon Apr 9 23:03:39 PDT 2012


Hi

I've correct as you said, it work. Thanks.

Shiyong Zhang

2012/4/9 Ross Finlayson <finlayson at live555.com>

> In function  RTPInterface::handleRead (version 2012/04/04),
>
> 225  if (fNextTCPReadStreamSocketNum < 0) {
> 226       // Normal case: read from the (datagram) 'groupsock':
> 227       readSuccess = fGS->handleRead(buffer, bufferMaxSize, bytesRead,
> fromAddress);
> 228       } else {
>          ...
> 242    fNextTCPReadSize -= bytesRead;
> 243    if (curBytesRead == 0 && curBytesToRead > 0) {
> 244      packetReadWasIncomplete = True;
> 245      return True;
> 246    } else if (curBytesRead < 0) {
> 247      bytesRead = 0;
> 248      readSuccess = False;
> 249    } else {
> 250      readSuccess = True;
> 251    }
> 252    fNextTCPReadStreamSocketNum = -1; // default, for next time
>          ...
>
> Pay attension to line 252, variable fNextTCPReadStreamSocketNum is reset
> to -1 when handRead succeed(readSuccess=True). But at this time it is
> possible for condition fNextTCPReadSize > 0. if there are still bytes in
> TCP, and fNextTCPReadStreamSocketNum was reset to -1
>
>
> Yes, you have discovered a bug.  Thank you.
>
> Note, however, that the bug will show up only if the condition in the "if"
> statement on line 232:
> if (totBytesToRead > bufferMaxSize) totBytesToRead = bufferMaxSize;
> is true.  I.e., the bug will show up only if "totBytesToRead >
> bufferMaxSize".  (Because otherwise, upon exiting the "while" loop,  the
> condition on line 243 will be true, and we'll return without getting to
> line 252.)
>
> But nonetheless, there is a bug.  You should be able to fix it by
> replacing line 243
> if (curBytesRead == 0 && curBytesToRead > 0) {
> with
> if (fNextTCPReadSize > 0) {
>
> If this doesn't fix the problem, then please let us know.  Otherwise, this
> fix will be included in the next release of the software.
>
> Thank you again.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20120410/75818475/attachment.html>


More information about the live-devel mailing list