Hi,

I've played a bit with LiveMedia sources. I was able to improve TCP stream handling by checking network calls results against EWOULDBLOCK in two places :

GroupsockHelper.cpp, readSocket(), line 243:

#if defined(__WIN32__) || defined(_WIN32)
|| err == 0 || err == EWOULDBLOCK
#else

RTPInterface.cpp, void SocketDescriptor::tcpReadHandler1(int mask), line 369:

if (result != 1) { // error reading TCP socket, or no more data available
if (result < 0) { // error
 if ( fEnv.getErrno() != EWOULDBLOCK )
 {
fEnv.taskScheduler().turnOffBackgroundReadHandling(fOurSocketNum); // stops further calls to us
 }
}
return;
}

I don't know if it makes sense ( maybe these changes have some weird side effects ) but at least tcp is working better now. I'll let you know if I find something else.

Regards,
Kamil
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to