<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div dir="ltr"><div>I have subclassed OnDemandServerMediaSubsession and added support for 'trick play' using absolute times. All is working fine but the client (which is also using Live555) is receiving wrong timestamps from the server after pause/play is triggered. Basically I follow these steps:</div>
<div><br></div><div>1 - Client connects to the server for live video - OK</div><div>2 - Pause the client (sendPauseCommand) - OK</div><div>3 - Wait for some seconds and play the client again (sendPlayCommand("YYYYMM....")) - The frames are correct but the client reports wrong timestamps for 1 or 2 seconds, and then shows the correct timestamps.</div></div></blockquote><div><br></div>Assuming that the presentation times during this time are all RTCP-synchronized (see <<a href="http://www.live555.com/liveMedia/faq.html#rtcp-synchronization-issue">http://www.live555.com/liveMedia/faq.html#rtcp-synchronization-issue</a>>), I wonder if the problem might be that these 'extra' packets (the initial ones with the incorrect presentation time) are simply old packets that were buffered inside the client OS's socket receive buffer at the time of the pause? (If that's the case, then there's nothing much you can do about this, other than reduce your client OS socket buffering.)</div><div><br></div><div>You could test this by sending (after your initial PAUSE) a non-absolute-time "PLAY" command with a "start" parameter of -1 (which means 'resume without seeking')</div><div><br></div><div><br><blockquote type="cite"><div dir="ltr"><div>Looking at the implementation of OnDemandServerMediaSubsession I see that the other seekStream (with NPT) is changing the rtpSink presentation times with rtpSink->resetPresentationTimes(), while the other is not. Could this be the problem?</div></div></blockquote><div><br></div>No, because that doesn't actually change any presentation times; it just resets variables that are used to compute "getCurrentNPT()", which doesn't get called in your case, because you're seeking by absolute time.</div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>