[Live-devel] [PATCH] Sets RTP-Info for every subsession

Rafaël Carré rcarre at m2x.nl
Mon Sep 8 06:49:04 PDT 2008


Hello,

I came around this problem while messing with a WMS stream.
It has 3 subsessions in this order:
- audio
- application
- video

VLC uses the video track for pts calculation, but getNormalPlayTime()
would return 0 because the rtpInfo hadn't been set for this track.

In playMediaSession(), an iterator is used to associate the rtpinfo to
each subsession in this way (pseudo-code):

if(parseRTPInfoHeader()) /* this will increment the string pointer */
{
	for_each_subsession()
	{
		associate_rtpinfo();
		if(!parseRTPInfoHeader()) break; /* here we fail because we didn't
find valid rtpinfo data */
	}
}

In my case, the rtpinfo would not be associated to the video track, and
since the stream is not synchronized with rtcp, I would get 0 npt.

I understand that the 2nd call to parseRTPInfoHeader() should go away:
parse the rtpinfo once, and then associate it to all subsessions.

Attached patch does what is described.

-- 
Rafaël Carré <rcarre at m2x.nl>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: live-rtpinfo.diff
Type: text/x-patch
Size: 886 bytes
Desc: not available
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20080908/21976112/attachment.bin>


More information about the live-devel mailing list