Mailing List archive

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

[linux-dvb] Demux stops to work when tuning too many time



Hello,

If I run a code that does something like that:
  openFrontend
  while(1) {
    tune
    waitSignalLock
    startDemux
    acquireOneCATSection
    stopDemux
  }

Everything runs fine for around 2000 iterations (not a constant number).
Then, things start to go wrong. The DVB card is able to tune
(FE_HAS_LOCK), but nothing comes back from the demux filter. I can
try to tune to another frequency successfully (FE_HAS_LOCK), but I'll never
get any data back from the demux anymore. I tried to get data with both
DMX_SET_FILTER and DMX_SET_PES_FILTER (redirect to
/dev/dvb/adapter0/dvr0) and both are showing no packet comming. It's like
the demux has been disconnected from the frontend.

Once the card/drivers is in this state, the only way to recover is to
reboot the machine.

This happens only with my WinTV NOVA-C. The same code (appart from the
tuning) works perfectly for hours on the same machine with a WinTV NOVA-S
card. I have both card at the same time connected. When the cable is dead,
the satellit card is still working. So I guess it's a problem with the
modules handling the tuner.

The problem was present in the kernel 2.6.7 and in 2.6.10. both where
vanillia kernels (I don't use the CVS version of the drivers). I tried
another WinTV NOVA-C card and the problem is still present.

I have trouble to debug that since I don't know where to start looking.
Can anybody help me? At least to tell me what module to add debug to?

The test application is not too big, so I've put it in attachment. You'll
have to change the tuning info for your cable network.

Thanks for your help.

---
  -°)                 Patrick Valsecchi
  /\\                 +41 (21) 732 0509
 _\_v          NagraVision SA - Kudelski Group 

Attachment: dvbBug.c
Description: dvbBug.c


Home | Main Index | Thread Index