Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: [ANNOUNCE] autopid/nvod/portal patch v7
Hi
From: "Andreas Schultz" <aschultz@warp10.net>
To: <vdr@linuxtv.org>
Sent: Tuesday, April 08, 2003 8:52 AM
Subject: [vdr] Re: [ANNOUNCE] autopid/nvod/portal patch v7
> Hi Andreas,
>
> Andreas Share wrote:
>
> > Hi Andreas,
> >
> > nice work the latest (autopid9) patch:)
> >
> > But 2 things i have seen will not work correctly. First one Direkt ond
the
> > three will be added by the patch, but these channels cannot work,
because
> > the data is wrong (12480 vertical). I could not understand how this can
> > happen....
>
> The patch only looks at the transport stream id to find the
> corresponding frequency settings. I have discovered that this is the
> wrong way. i did assume that tid meant transponder id, but it doesn't.
> transport stream id's do uniquely identify a transponder, but there can
> be more that one transport stream id for a single transponder. tid's are
> only unique withid theyr network, so nid+tid identify a transponder.
> So, what you are probably seeing there, is a case where the tansport
> stream id (tid) in the transponders.conf is wrong or even used on
> multiple transponders.
> What i have so far been able to deduce from the neutrino source and the
> dvbdrivers scan aplication is that to get the transponder, tid, nid
> mapping right, a scan on the NIT (network information table, pid: 0x00,
> section: 0x40) is needed. The NIT also contains the frequencies and
> other operation parameters of the current and other transponders. Please
> correct me if i'm wrong!
>
> > The second is sometimes vdr fail to get an correct pmt-pid at very fast
> > zapping on premiere-channels. Because i could not see any error in eit.c
to
> > get the pat, i think this must be an driver related problem. I think in
this
> > case (pmt-pid == 0x0000) we should reread the pat. I have solve this at
the
> > moment with an very dirty loop.....
> >
> > ....
> > if (siProcessor) {
> > siProcessor->SetCurrentTransponder(Channel->Source(),
Channel->Tid());
> > siProcessor->SetPendingProgramID(Channel->Sid());
> > siProcessor->SetStatus(true);
> > for (loop; loop < 2; loop++) {
> > if (siProcessor->Wait4PidSync()) {
> > vPid = siProcessor->Vpid();
> > aPid1 = siProcessor->Apid1();
> > aPid2 = siProcessor->Apid2();
> > dPid1 = siProcessor->Dpid1();
> > dPid2 = siProcessor->Dpid2();
> > tPid = siProcessor->Tpid();
> > pmtPID = siProcessor->PMTPID();
> > }
> > if (pmtPID |= 0x0000) break;
> > printf("looping siProcessor to %d \n", loop);
> > }
> > }
> >
> > if (!pmtPID) {
> > if (Interface) Interface->Error("No service available!");
> > }
> >
> > ....
> >
> > very nasty sideeffect: If an service transmit no data, it takes some
time
> > bevor i can switch zu another channel:( But i have seen no wrong
pmt-pid
> > after the second loop anymore.
>
> mh, in eit.c the PAT filter is reset immediatly after a piece of the pat
> has been received, maybe this should only happen after the pmtpid has
> been found.
>
> > I think there should be some simalary in eit.c in an (very) future
release.
>
> The next step will be to write a NIT parser. Since i do not like the way
> libdtv works and since there isn't a NIT parser in there, i'm probably
> going to steal some ideas from neutrinos sectionsd for it.
>
I believe there is a newer version of libdtv which has NIT parsing built in.
It may be worth updating VDR to use the newer version.
Ray
> Andreas
>
>
>
> --
> Info:
> To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as
subject.
>
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index