<div>Hi Ross</div>
<div> </div>
<div>I am not a casual hobbiest.I am using gmail id because My Official mail-id is not accessible from home. I access Live555 mails from home also. But if you want I will subscribe to the live555 mailing list using my official id.</div>
<div> </div>
<div>I have more queries regarding timestamp. I don't understand the code in <font size="2">RTPReceptionStats::noteIncomingSR function. The function is written as:</font></div>
<p><span style="FONT-FAMILY: 'Times New Roman','serif'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">void</span><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"> RTPReceptionStats::noteIncomingSR(u_int32_t ntpTimestampMSW,</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-tab-count: 4"> </span><span style="mso-spacerun: yes"> </span>u_int32_t ntpTimestampLSW,</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-tab-count: 4"> </span><span style="mso-spacerun: yes"> </span>u_int32_t rtpTimestamp) {</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fLastReceivedSR_NTPmsw = ntpTimestampMSW;</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fLastReceivedSR_NTPlsw = ntpTimestampLSW;</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"> </span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>gettimeofday(&fLastReceivedSR_time, NULL);</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"> </span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span><span style="COLOR: green">// Use this SR to update time synchronization information:</span></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fSyncTimestamp = rtpTimestamp;</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fSyncTime.tv_sec = ntpTimestampMSW - 0x83AA7E80; <span style="COLOR: green">// 1/1/1900 -> 1/1/1970</span></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span><span style="COLOR: blue">double</span> microseconds = (ntpTimestampLSW*15625.0)/0x04000000; <span style="COLOR: green">// 10^6/2^32</span></span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fSyncTime.tv_usec = (<span style="COLOR: blue">unsigned</span>)(microseconds+0.5);</span></p>
<p style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class="MsoNormal"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="mso-spacerun: yes"> </span>fHasBeenSynchronized = True;</span></p>
<p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-no-proof: yes">}</span><span style="FONT-FAMILY: 'Times New Roman','serif'"></span></p>
<div>I having following confusion:</div>
<div> </div>
<div>1. fSyncTime.tv_sec = ntpTimestampMSW - 0x83AA7E80; <span style="COLOR: green">// 1/1/1900 -> 1/1/1970</span></div>
<div><span style="COLOR: green"> </span>why 0x83AA7E80 is subtracted from ntpTimestampMSW?</div>
<div> </div>
<div>2. <span style="COLOR: blue">double</span> microseconds = (ntpTimestampLSW*15625.0)/0x04000000; <span style="COLOR: green">// 10^6/2^32</span></div>
<div><span style="COLOR: green"></span>Why 15625.0 is multiplied with ntpTimestampLSW and the result is divided by 0x04000000 </div>
<div> </div>
<div>Please reply.</div>
<div> </div>
<div><br> </div>
<div class="gmail_quote">On Mon, May 10, 2010 at 10:34 AM, Ross Finlayson <span dir="ltr"><<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div class="im">
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">We are developing a client application using Live555.<br></blockquote><br></div>Do "we" not have a domain name? (If you use a "@<a href="http://gmail.com/" target="_blank">gmail.com</a>" email address, then you are assumed to be a casual hobbiest (whose posts are moderated and given a very low-priority), not a "we".)
<div class="im"><br><br><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"> Our application have some specific requirement of converting the rtp timestamp of each video frame to utc time. So I have following query regarding this:<br>
<br>1.The MediaSink class of Live555 gets the presentation time as a parameter in aftergettingframe function.This presentation time can be converted to RTP timestamp using convertToRTPTimestamp function in RTPSink class.I just want to know how this rtp timestamp can be converted to UTC time.<br>
</blockquote><br></div>You don't need to know or care about RTP timestamps. Our software automatically converts from presentation time to RTP timestamp (at the server end), and then back from RTP timestamp to presentation time (at the client end). This is assuming, of course, that you use RTCP (which is a required part of the RTP/RTCP standard).<br>
<br>So, just make sure that you give your streams proper presentation times at the server end - and you will get them automatically at the client end. These presentation times must be aligned with 'wall clock' time - i.e., the time that you would get by calling "gettimeofday()". (If "gettimeofday()" does not return UTC time, then you will need to apply the appropriate conversion at the client end.<br>
-- <br><font color="#888888"><br>Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/" target="_blank">http://www.live555.com/</a><br>_______________________________________________<br>live-devel mailing list<br>
<a href="mailto:live-devel@lists.live555.com" target="_blank">live-devel@lists.live555.com</a><br><a href="http://lists.live555.com/mailman/listinfo/live-devel" target="_blank">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Mohita Gandotra<br>------------------------------<br>Senior Software Engineer<br>Canon India Pvt. Ltd., Noida<br>