[Live-devel] Socket handling problem with live555

M-A Loyer weirdfox at gmail.com
Thu Oct 4 17:13:11 PDT 2007


Hi everyone,

We are currently working on a voluntary-based university project which use a real time video streaming inside a “vision server”. We use this software inside an AUV (Autonomous Underwater Vehicle, http://sonia.etsmtl.ca/en ) to send a video stream from the submarine's cameras or from the processed image (detection of objects in the image) to a remote client.

We choose live555 for our streaming needs because the library is stable and well-maintained.  But, we currently have a problem with socket hang inside LiveStreamer.  The streaming works fine for a while, then it hang.  Usually it happens either when creating a new stream or when we let it run for a while.

We searched for a while and could not solve the problem or make a workaround as our knowledge of the library is still limited.  So I thought someone here could help us.
We use live version 2007-08-03a.

I included a stack trace: 

#0 0xb7f68410 in __kernel_vsyscall ()
#1 0xb77e8521 in ?? () from /lib/libc.so.6
#2 0x080fdefe in readSocket (env=@0x8434df0, socket=21, buffer=0x896afb8 "PLAY rtsp://192.168.1.100:8554/PipeDetectorChainHSI_Gaussian_Probe RTSP/1.0\r\nCSeq: 3\r\nRange: npt=0.000000-\r\nx-prebuffer: maxtime=2.000000\r\nSession: 5\r\nUser-Agent: QTS (qtver=6.5.1;os=Windows NT 5.1Ser"..., bufferSize=10000, fromAddress=@0xb171f18c, timeout=0x0) at GroupsockHelper.cpp:229
#3 0x080dfbdf in RTSPServer::RTSPClientSession::incomingRequestHandler1 (this=0x896af90) at RTSPServer.cpp:315
#4 0x080dff5d in RTSPServer::RTSPClientSession::incomingRequestHandler (instance=0x896af90) at RTSPServer.cpp:304
#5 0x081031bd in BasicTaskScheduler::SingleStep (this=0x8434d38, maxDelayTime=0) at BasicTaskScheduler.cpp:119
#6 0x08102767 in BasicTaskScheduler0::doEventLoop (this=0x8434d38, watchVariable=0x0) at BasicTaskScheduler0.cpp:76
#7 0x080539dc in LiveStreamer::run (this=0xb4103430) at src/streaming/LiveStreamer.cpp:29
#8 0xb7db0b29 in ccxx_exec_handler () from /usr/lib/libccgnu2-1.5.so.0
#9 0xb7f36162 in start_thread () from /lib/libpthread.so.0
#10 0xb77eefee in clone () from /lib/libc.so.6

Here's the place where the streaming server hang:

224 FD_ZERO(&rd_set);
225 if (socket < 0) break;
226 FD_SET((unsigned) socket, &rd_set);
227 const unsigned numFds = socket+1;
228
*229 result = select(numFds, &rd_set, NULL, NULL, timeout);
230 if (timeout != NULL && result == 0) {
231 break; // this is OK - timeout occurred
232 } else if (result <= 0) {
233 #if defined(__WIN32__) || defined(_WIN32)

Any help, pointers on a solution or idea are welcome !

Thanks for your help,

Marc-André & Pierre-Luc Loyer
SONIA AUV, Vision Server team
weirdfox at gmail.com, ployer at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.live555.com/pipermail/live-devel/attachments/20071004/61c52a2e/attachment.html 


More information about the live-devel mailing list