<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Re: [Live-devel] Play out PCR from gettimeofday rather tha</TITLE>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<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 name=GENERATOR content="MSHTML 8.00.6001.18975"></HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Hi Ross,</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>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.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>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.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>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?</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>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.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>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.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Looking forward to your comments,</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Thanks,</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>-Tim</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B> 
  <A title=finlayson@live555.com href="mailto:finlayson@live555.com">Ross 
  Finlayson</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=live-devel@ns.live555.com 
  href="mailto:live-devel@ns.live555.com">LIVE555 Streaming Media - development 
  & use</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, March 22, 2011 1:00 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Live-devel] Play out PCR 
  from gettimeofday rather than source stream?</DIV>
  <DIV><BR></DIV>
  <BLOCKQUOTE cite="" type="cite"><FONT size=-1 face=Arial>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?</FONT></BLOCKQUOTE>
  <DIV><BR></DIV>
  <DIV>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()'.</DIV>
  <DIV><BR></DIV>
  <DIV>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.</DIV><X-SIGSEP><PRE>-- 
</PRE></X-SIGSEP>
  <DIV><BR>Ross Finlayson<BR>Live Networks, 
Inc.<BR>http://www.live555.com/</DIV>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>live-devel mailing 
  list<BR>live-devel@lists.live555.com<BR>http://lists.live555.com/mailman/listinfo/live-devel<BR></BLOCKQUOTE></BODY></HTML>