[Live-devel] openRTSP

Andro Debevere andro.debevere at ugent.be
Fri Feb 19 00:17:18 PST 2010


Hello,

 

in our test setup we want to record an RTSP session containing 52 media
tracks (AVC/AAC). We also want all the tracks to be synchronized. For this
purpose, we use the openRTSP tool (using the QuickTimeFileSink through the
-4 openRTSP flag) (version: live.2009.09.28, building on linux).

 

We experienced, however, that on rare occasions the recording does not start
(i.e. the output file's size does not increase).

 

We tried to debug the code on such an event and we checked the syncOK
function of the SubsessionIOState class because, apparently, the
ioState->afterGettingFrame(packetDataSize, presentationTime); never got
called. We found out that in such an erroneous case, some tracks (mostly
just one) never get synchronized (the fHaveBeenSynced flag of the
SubsessionIOstate class does not get set).

 

Therefore, we went deeper into the code until the point of the
BasicTaskscheduler. Here we see that after calling the select statement in
the "void BasicTaskScheduler::SingleStep(unsigned maxDelayTime)" function,
we only get a limited number of readable sockets as a return value. If, for
example, we have 52 media tracks, we create at least 104 sockets (52 for RTP
and 52 for RTCP), but the result value is never 104 or higher, no matter how
long we wait in between two select calls. This makes us believe that the
accompaniment socket of the track is never read, and for example the RTCP SR
is not parsed to get that track synchronized.

 

We also observed that data is actually being send to all the sockets (and
correct port numbers) and that sockets are correctly created (socket number>
-1) and added to the read set before the select call.

 

Do you have any similar experiences or any ideas on what might go wrong
here?

 

Kind regards.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20100219/7cefb035/attachment-0001.html>


More information about the live-devel mailing list