<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML XMLNS:O><HEAD><TITLE>Re: [Live-devel] Calculating rtptime for RTSP/PLAY-Respons</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<STYLE type=text/css>BLOCKQUOTE {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
DL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
UL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
OL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
LI {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
</STYLE>
<META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Verdana color=#0000ff size=2><SPAN
class=810492701-08082008>The crux of my question concerns the *delta* that a
reference implementation (Helix USM) applies to one of the rtptime=X values that
is reported in the RTP-Info header. All of our testing (with ~30 different
brand/model combinations) has shown that this is critical for many mobile phones
to correctly apply A/V sync.</SPAN></FONT></DIV>
<DIV><FONT face=Verdana color=#0000ff size=2></FONT> </DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff size=2>The
live555 code (the 2008.07.25 release) does not adjust (calculate a delta) the
RTP-Info header in this way. It simply reports the seqNum & rtptime of the
first packet on each stream.</FONT></SPAN></DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff size=2>And
while you may think that RTSP/RTP/RTCP clients should not use the RTP
timestamps, these phones are doing just that. Wouldn't it be nice if we could
play nicely with them too?</FONT></SPAN></DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff
size=2>Cheers & thanks for all your hard work and excellent
code.</FONT></SPAN></DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=810492701-08082008><FONT face=Verdana color=#0000ff
size=2>ChrisB</FONT></SPAN></DIV>
<DIV class=Section1>
<P class=MsoNormal align=left><B style="mso-bidi-font-weight: normal"><SPAN
style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"><ST1:PERSONNAME w:st="on">Chris
Burns<BR></SPAN></B><SPAN style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana">M: +64
21 391 286<BR></SPAN><SPAN style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"><A
href="mailto:chris.burns@abdeus.com">chris.burns@abdeus.com</A></SPAN><O:P></O:P></P>
<P class=MsoNormal><A href="http://www.abdeus.com/"><SPAN
style="TEXT-DECORATION: none; text-underline: none"></SPAN></A></P></DIV></ST1:PERSONNAME>
<DIV><FONT face=Verdana color=#0000ff size=2></FONT> </DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> live-devel-bounces@ns.live555.com
[mailto:live-devel-bounces@ns.live555.com] <B>On Behalf Of </B>Ross
Finlayson<BR><B>Sent:</B> Friday, 08 August 2008 12:02<BR><B>To:</B> LIVE555
Streaming Media - development & use<BR><B>Subject:</B> Re: [Live-devel]
Calculating rtptime for RTSP/PLAY-Response "RTP-Info"
header<BR></FONT><BR></DIV>
<DIV></DIV>
<BLOCKQUOTE cite="" type="cite"><FONT face=Verdana color=#0000ff size=-1>I'm
specifically trying to work out how to create the "RTP-Info" header in a
RTSP/PLAY-Response.</FONT></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>Our server implementation does this automatically (see "RTSPServer.cpp",
and search for "rtpInfo"). You shouldn't have to do anything yourself to
generate this.</DIV>
<DIV><BR></DIV>
<DIV>Similarly, at the client end, the information is filled in automatically
- if you wish, you can just access the "MediaSubsession::rtpInfo"
structure. Most clients, however, will not need to access this structure
directly. Instead, if they wish to get the current 'normal play time'
(NPT) for the stream, they can just call
"MediaSubsession::getNormalPlayTime()", which uses the "rtpInfo"
structure.</DIV>
<DIV><BR></DIV>
<DIV>Also (as I have explained several times before), RTSP/RTP/RTCP clients
(receivers) should rarely, if ever, need to look at RTP timestamps, sequence
numbers, or RTCP packet data. Our receiving code automatically uses this
information itself, to give you a properly-synchronized presentation time for
each incoming frame of data.</DIV><X-SIGSEP><PRE>--
</PRE></X-SIGSEP>
<DIV><BR>Ross Finlayson<BR>Live Networks,
Inc.<BR>http://www.live555.com/</DIV></BLOCKQUOTE></BODY></HTML>