[vdr] PCR pid

Giampaolo Sica gpsica at tin.it
Fri Jan 8 20:16:56 CET 2010

Hi Klaus,

in the iso13818-1 (you can find a copy at
http://neuron2.net/library/mpeg2/iso13818-1.pdf), in the section
Input to the Transport Stream system target decoder, is explained how the
PCR is used to reconstruct the transport stream clock. 


-----Original Message-----
From: vdr-bounces at linuxtv.org [mailto:vdr-bounces at linuxtv.org] On Behalf Of
Klaus Schmidinger
Sent: venerdì 8 gennaio 2010 15.01
To: vdr at linuxtv.org
Subject: Re: [vdr] PCR pid

On 08.01.2010 12:19, Giampaolo Sica wrote:
> Hi Klaus,
> Thanks for your answer and sorry for replaying so late.
> Setting Ppid to 0x1FFF means disable it. The effect is that some mpeg2
> players refuse to play vdr recordings.
> I think that the PCR pid is more important in recordings than in live
> viewing, because in live viewing the timing is implicit in the packet time
> of arrival. When you have a file you lose that information because you try
> to fill the playing buffer. 
> What I said is anyway wrong, because PCR is part of the mpeg2 standard and
> it have to be present in the stream.
> Maybe, the particular implementation of the mpeg2 decoder in the DVB FF
> derives its internal clock using the framerate of the mpeg2 stream, but it
> is not standard.

Can you point to some documentation that specifies how the PCR data
is actually used during replay of a recording?
I find it very hard to believe that this can actually be used, because
you just can't syncronize a local clock to the PCR if the PCR packets don't
arrive in real time.


> -----Original Message-----	
> From: vdr-bounces at linuxtv.org [mailto:vdr-bounces at linuxtv.org] On Behalf
> Klaus Schmidinger
> Sent: sabato 5 dicembre 2009 12:27
> To: vdr at linuxtv.org
> Subject: Re: [vdr] PCR pid
> On 26.11.2009 13:51, Giampaolo Sica wrote:
>>> Maybe because you haven't applied it to your copy of version 1.7.10? ;-)
>> :)))
>>> In hindsight I'm not sure whether the change "Fixed writing the PCR pid
>>> into the PMT in cPatPmtGenerator::GeneratePmt()" was a good idea,
>>> VDR doesn't record the PCR pid at all.
>>> I tend to revert that change, because I don't think that
>>> a separate PCR pid is necessary in a recording. AFAIK the
>>> PCR pid is only for live viewing.
>>> Klaus
>> Yes, you're right if you are replaying recordings on a FF card, but:
>> 1) Some players refuse to play TS streams without PCR information (screen
>> remains black). 
>> 2) I'm porting VDR to IPBOX 9000HD (STi710x based STB... yes, I know
>> is enigma2, but I've been using vdr since 2000 and I love it) and the PCR
>> pid is essential to have the timeline while watching recording, because
> the
>> ioctl DMX_GET_STC fails and the only way to you get time information is
> from
>> the video/audio decoder (VIDEO_GET_PTS/ AUDIO_GET_PTS). So, even if I
> wrote
>> a plugin for this device, I'd have to patch the base classes that is in
>> contrast with the plugins philosophy
> Can you please try what happens if you set
>   int Ppid = 0x1FFF;
> in cPatPmtGenerator::GeneratePmt()?
> As far as I understand the PCR (please correct me if I'm wrong), it only
> has a meaning in live mode, where PCR packets arrive at precise points in
> time and are used to syncronize the player's internal clock.
> When replaying a recording, it is not defined when the PCR packets arrive
> at the player, and thus they have no meaning.
> Klaus

vdr mailing list
vdr at linuxtv.org

More information about the vdr mailing list