[Live-devel] Play out PCR from gettimeofday rather than source stream?

Tim J Shackleton live555 at timshackleton.com
Wed Mar 23 17:04:55 PDT 2011


Re: [Live-devel] Play out PCR from gettimeofday rather thaHi Ross,

Thanks for your reply.  You are quite right, the PCR is always more accurate straight out of an encoder, so I have shelved that desperate idea which as it turns out wasn't a problem anyway.

I have been inspecting the clips produced by our Bitpack encoder and they do indeed have the discontinuity_indicator set on the first video packet, so there are no CC errors or PCR problems on our PID273, being video.

However, when we change clips, we are registering CC errors on PID 0, 64 and 40, being PAT, PMT and Audio respectively.  Should the first packet in the clips for these pids contain an adaptation field with discontinuity_indicator true also?

Incidentally, when I was chasing the PCR accuracy 'problem', I have noted that under default settings for MAX_PLAYOUT_BUFFER_DURATION (being 0.1s) the PCR jitter is seen at about 35ns, and we do from time to time experience pixellation at broadcast output, however when I reduce this buffer to 0.01s, the jitter is reduced to 16ns and any pixellation during clip playout is gone.  I don't understand why that setting should affect the packet presentation timing as the naming of that var would imply to me the length of a FIFO more than anything else.

To solve this clip change problem I am now leaning toward the idea of keeping an array of incrementing CC per PID, and playing that out - OR, if the non-PCR carrying PIDs should have the discontinuity_indicator flag when they first occur in a clip, inspecting the clips and adjusting them accordingly.

Looking forward to your comments,

Thanks,

-Tim

  ----- Original Message ----- 
  From: Ross Finlayson 
  To: LIVE555 Streaming Media - development & use 
  Sent: Tuesday, March 22, 2011 1:00 PM
  Subject: Re: [Live-devel] Play out PCR from gettimeofday rather than source stream?


    I see that timeNow is already stood up in in MPEG2TransportStreamFramer.cpp - is there a quick and dirty way to insert PCR based on this time, at time of playout, rather than pass through the source PCR?


  No, not really, and this is a bad idea anyway.  The PCR values that were inserted in the files at the time that they were encoded will always be more accurate (and better for decoders to use) than values derived from 'gettimeofday()'.


  Instead, you should make sure that your TS files have the 'discontinuity_indicator' flag set at the start.  Our "MPEG2TransportStreamFramer" code recognizes this flag, as should the decoder in your STB.
-- 

  Ross Finlayson
  Live Networks, Inc.
  http://www.live555.com/


------------------------------------------------------------------------------


  _______________________________________________
  live-devel mailing list
  live-devel at lists.live555.com
  http://lists.live555.com/mailman/listinfo/live-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20110324/a23ee060/attachment.html>


More information about the live-devel mailing list