[vdr] cDvbDevice::Initialize

Udo Richter udo_richter at gmx.de
Sat Sep 25 23:58:55 CEST 2010

Am 25.09.2010 16:38, schrieb syrius.ml at no-log.org:
> I'm having a setup with 4 dvb cards, and I'm running 3 vdr instances.
> I'm using an udev rules to make sure adapter numbers don't change.
> I'm using the -D option the assign cards to vdr instances.
> I've just discovered that vdr -D 3 would not use the adapter 3 if
> adapter2 was missing from /dev/dvb/.
> Here is the patch i'm testing to correct this issue, feel free to
> comment.

This would still be wrong if adapter 2 is a dual or more frontend
device, because if adapter 2 has two frontends, then -D 2 and -D 3 refer
to adapter 2 and -D 4 is adapter 3.

IMHO the -D numbers are a bit outdated anyway, and I would prefer a way
to use /dev/dvb paths directly. Some concept ideas:

vdr -D /dev/dvb/adapter0
- use only adapter 0

vdr -D /dev/dvb/adapter0/frontend1
- use only frontend 1 of adapter 0 - this could be tricky

vdr -D /dev/dvb/adapter1 -D /dev/dvb/adapter0
- Swap ordering of devices

vdr -D /dev/dvb/primary
- follow a symlink primary -> adapter0, like generated by udev

vdr -D "/dev/dvb/*"
- use all DVB devices

vdr -D /dev/dvb/primary -D "/dev/dvb/adapter*"
- Use primary first, then use all remaining devices. No duplicates.

Implementing this needs some API changes, esp. since device plugins can
decide to override the default receiver of VDR, and this interface just
has adapter and frontend number. (dvbsddevice replaces the receive-only
receiver that way.)

Also, frontend numbers are more than parts of file names. If you swap
frontend 0 and 1 in the file system, VDR cannot receive any more. (been
there, done that.)



More information about the vdr mailing list