[vdr] PCR pid

Giampaolo Sica gpsica at tin.it
Fri Jan 8 12:19:05 CET 2010

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 card
derives its internal clock using the framerate of the mpeg2 stream, but it
is not standard.


P.S. I liked very much the architecture of the 1.7.11 regarding the dvb FF
support. I think that the more VDR will be hardware agnostic, the more its
architecture will be well designed.

-----Original Message-----	
From: vdr-bounces at linuxtv.org [mailto:vdr-bounces at linuxtv.org] On Behalf Of
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, because
>> 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 there
> 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
> ioctl DMX_GET_STC fails and the only way to you get time information is
> the video/audio decoder (VIDEO_GET_PTS/ AUDIO_GET_PTS). So, even if I
> 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.


vdr mailing list
vdr at linuxtv.org

More information about the vdr mailing list