[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