[Live-devel] pause issue

Gilles Chanteperdrix gilles.chanteperdrix at xenomai.org
Mon Feb 23 23:22:08 PST 2015


On Tue, Feb 24, 2015 at 08:07:15AM +0100, Gilles Chanteperdrix wrote:
> On Tue, Feb 24, 2015 at 07:37:59PM +1300, Ross Finlayson wrote:
> > 
> > > On Feb 24, 2015, at 7:27 PM, Gilles Chanteperdrix <gilles.chanteperdrix at xenomai.org> wrote:
> > > 
> > > On Mon, Feb 23, 2015 at 11:03:24AM +0100, Gilles Chanteperdrix wrote:
> > >>  in the following
> > >> sequence of OnDemandServerMediaSubsession.cpp:
> > >> 
> > >> 
> > >>  if (streamState != NULL) {
> > >>    streamState->startPlaying(destinations,
> > >> 			      rtcpRRHandler, rtcpRRHandlerClientData,
> > >> 			      serverRequestAlternativeByteHandler, serverRequestAlternativeByteHandlerClientData);
> > >>    RTPSink* rtpSink = streamState->rtpSink(); // alias
> > >>    if (rtpSink != NULL) {
> > >>      rtpSeqNum = rtpSink->currentSeqNo();
> > >>      rtpTimestamp = rtpSink->presetNextTimestamp();
> > >>    }
> > >>  }
> > > 
> > > The following patch avoids this issue:
> > 
> > What ‘issue'??  Previously you said there was no ‘issue’ - i.e.:
> 
> Sorry, what I meant is that this issue does not cause any side
> effect on the timestamps references (since the new reference is set
> after this packet sent immediately), so it has no lasting effect,
> but the issue here is that the RTP timestamps are wrong after a
> pause (they use the reference from before the pause).

Not all the RTP timestamps. Just the RTP timestamps of the packet sent
immediately by MultiFramedRTPSink::continuePlaying.


> > (I *do*, however, plan to fix the problem (that you noted) with
> > old data being sent (after resuming from a “PAUSE”) because of
> > it having been stored in ‘overflow data’  - once I’ve verified
> > this.)

The problem is not only with overflow data. It is a problem with any
framer or filter which stores presentation time and answer multiple
calls to doGetNextFrame with the same presentation time. Because one
call to doGetNextFrame may be before a pause, and the next after a
pause. H264or5Fragmenter does that for instance, independently from
MultiFramedRTPSInk overflow data.

-- 
					    Gilles.


More information about the live-devel mailing list