Hi - I am trying a vanilla 1.3.37 (same issue with 1.4.0) with a USB DVB-T stick (a Freecom-branded Wideview 220 clone) which works perfectly with vlc, dvbstream, Kaffeine, etc.
If I run vdr, and then just try to record the current channel, I get this:
Jun 5 13:48:59 telly vdr: [11315] switching device 1 to channel 21 Jun 5 13:48:59 telly vdr: [11315] ERROR: can't open filter handle on '/dev/dvb/adapter0/demux0' Jun 5 13:48:59 telly vdr: [11315] timer 1 (21 1348-1648 '@TITLE EPISODE') start Jun 5 13:48:59 telly vdr: [11315] Title: 'BBC News' Subtitle: '(null)' Jun 5 13:48:59 telly vdr: [11315] record /video/@BBC_News/2006-06-05.13.48.50.99.rec Jun 5 13:48:59 telly vdr: [11315] creating directory /video/@BBC_News/2006-06-05.13.48.50.99.rec Jun 5 13:48:59 telly vdr: [11315] recording to '/video/@BBC_News/2006-06-05.13.48.50.99.rec/001.vdr' Jun 5 13:48:59 telly vdr: [11315] ERROR: /dev/dvb/adapter0/demux0: Too many open files Jun 5 13:48:59 telly vdr: [11315] ERROR (dvbdevice.c,673): Too many open files Jun 5 13:48:59 telly vdr: [11315] ERROR: can't set PID 640 on device 1 Jun 5 13:48:59 telly vdr: [11315] ERROR (dvbdevice.c,688): Bad file descriptor Jun 5 13:48:59 telly vdr: [11315] buffer stats: 0 (0%) used
It would suggest that the number of PID filters on the device has been exceeded, but I know that there are 15 available, and VDR is only using nine:
root@telly:~# lsof -n | grep adapter0.demux0 -c 9
BBC News 24 has a channels.conf entry of 754166670:C34D34M16B8T2G32Y0:T:0:640:641=eng:0:0:4415:9018:4104:0
so it's only using two PIDs.
I have verified that the device truly does have 15 PID filters available thusly:
dvbstream -f 754167 100 17 600 601 610 611 612 613 640 641 650 651 652 1013 1021 -i 127.0.0.1 FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC Setting filter for PID 100 Setting filter for PID 17 Setting filter for PID 600 Setting filter for PID 601 Setting filter for PID 610 Setting filter for PID 611 Setting filter for PID 612 Setting filter for PID 613 Setting filter for PID 640 Setting filter for PID 641 Setting filter for PID 650 Setting filter for PID 651 Setting filter for PID 652 Setting filter for PID 1013 Setting filter for PID 1021 Using 127.0.0.1:5004:2 version=2 Streaming 15 streams
and adding another PID to the list gives: FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC FD 15: DEMUX DEVICE: : Too many open files
Can anyone suggest why VDR might be receiving this error?
Cheers, Gavin.
Gavin Hamill a écrit :
Hi - I am trying a vanilla 1.3.37 (same issue with 1.4.0) with a USB DVB-T stick (a Freecom-branded Wideview 220 clone) which works perfectly with vlc, dvbstream, Kaffeine, etc.
If I run vdr, and then just try to record the current channel, I get this:
...
Jun 5 13:48:59 telly vdr: [11315] ERROR (dvbdevice.c,673): Too many open files
...
It would suggest that the number of PID filters on the device has been exceeded, but I know that there are 15 available, and VDR is only using nine:
Isn't this the actual kernel limit ? Verify in /proc :
$ grep . /proc/sys/fs/file-* /proc/sys/fs/file-max:154060 /proc/sys/fs/file-nr:3850 0 154060
I am currently using 3850 files out of 154060 system-wide available file handles (Debian, kernel 2.6.8). You may reach the limit set in your kernel. Change this at run-time with something like "echo 154060 > /proc/sys/fs/file-max" Set this at boot-time by modifying /etc/sysctl.conf, if you distro handles it.
Maybe something is leaking file handles somewhere. In that case, you have to find an fix the problem.
Nicolas Huillard wrote:
Hello :)
Gavin Hamill a écrit :
It would suggest that the number of PID filters on the device has been exceeded, but I know that there are 15 available, and VDR is only using nine:
Isn't this the actual kernel limit ? Verify in /proc :
$ grep . /proc/sys/fs/file-* /proc/sys/fs/file-max:154060 /proc/sys/fs/file-nr:3850 0 154060
/proc/sys/fs/file-max:24064 /proc/sys/fs/file-nr:840 0 24064
Maybe something is leaking file handles somewhere. In that case, you have to find an fix the problem.
It would seem not.. Plus, on changing the USB device to my own PCI cx88-dvb 'blackbird' card, VDR works beautifully... so given that I can open 15 PIDs with dvbstream on the USB device, I can't see why changing the DVB hardware should have any impact on VDR :(
I'm really just looking for extra pointers / where to put some 'pid open count' dprintf()s etc. ...
gdh