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.
Giampaolo
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@linuxtv.org [mailto:vdr-bounces@linuxtv.org] On Behalf Of Klaus Schmidinger Sent: sabato 5 dicembre 2009 12:27 To: vdr@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:
- 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
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@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr