Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: [Patch] starting section handler after the first tune instead during vdr start




> Andreas Share wrote:
> >
> > Hi,
> >
> > i have included a patch for vdr-1.3.11 (and some versions up and down)
to
> > avoid opening section filter before the card ist the first time tuned.
> >
> > This should help against problems with some cards during vdr start. I
dont
> > think we need section filter attached to an untuned card, maybe this
help
> > for some of the problems during vdr start.
>
> The problem with this modification is the abstract cDevice can't know
whether
> the actual device provides any section data at all. That's why this
> call is in dvbdevice.c.
>
> Besides, even with the above change it is still not guaranteed that the
> device has a lock when the section handling is started. Furthermore this
> would only help with the initial startup, not with "no lock" after a later
> channel switch.
>
> However, you do, of course, have a point in that section filtering on
> a device that has no lock is pretty useless. I would suggest the following
> patch instead, which delays the actual setup of the filters until the
> device has a lock.
>
> Please try this and let me know whether it works as well as the original
> suggestion.
>
> Klaus
>

Hi Klaus,

this patch work if the device lost lock, but donīt avoid starting section
filters during section handler startup.

And if the device lost lock (and also in normal operation i think) there is
(maybe) some other problem. The additional EIT tables (Set(0x12, 0x50,
0xF0); & Set(0x12, 0x60, 0xF0);) causes two restarts for the 0x12 filter
right after shut down the first one, especialy on full featured cards.

Aug  8 20:38:32 amd-linux vdr[4394]: Switching Channel via EPG-Scan to Freq:
11954 h , SID 28006, Source 35008
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 before_after_tune - No
Lock
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 SetPIDs: APID=0x0000,
VPID=0x0000
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 av7110_start_feed:
start_feed Type SEC
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 av7110_start_feed:
start_feed Type SEC
Aug  8 20:38:32 amd-linux kernel: DVB (dvb_dmxdev_filter_stop) DMX_TYPE_SEC:
Aug  8 20:38:32 amd-linux kernel: av7110: d7970000 - av7110_stop_feed

Maybe the section handler could be started in dvbdevice.c at the end of
cDvbDevice::SetChannelDevice ....


Andreas







Home | Main Index | Thread Index