<!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>