[vdr] DVB (usb) device hotswapping?

Georg Acher acher at in.tum.de
Sun Apr 4 03:37:02 CEST 2010


On Sun, Apr 04, 2010 at 12:35:04AM +0200, Udo Richter wrote:
> Am 03.04.2010 21:17, schrieb Teemu Rantanen:
> > now that I've moved from pci dvb-c cards to usb dvb-c cards, I started
> > to think what happens if dvb-devices are inserted/ejected when vdr is
> > running. I haven't actually tried what happens, but it looks like
> > hotswapping isn't supported? 
> 
> VDR is far from being able to hot-swap.

This is true, but there is a workaround for that. It involves one
indirection in the device handling by a plugin.

During the development of the mcli-plugin for the NetCeiver the same issue
appeared. The networked tuners are already virtualized, they get
visible a few seconds after the plugin start and may also disappear or
change their type. So hotplugging support was a must.

It is now solved by the mcli plugin by allocating all (16) devices at
startup. When the various Provides*-methods are called for tuning, the
plugin searches in its internal resource database for an appropriate tuner
and assigns it to the vdr-device. If there is no appropriate tuner for the
request the Provides-methods return simply false, so the device is skipped.
That is virtualizing of already virtual tuners :-O

This means also that every tuner has initially no type like DVB-S/C/T. The
type is allocated on demand during tuning and reset when the device has no
active PIDs (for short, actually it's a bit more complicated since there is
no reliable resource usage tracking in vdr...).

-- 
         Georg Acher, acher at in.tum.de         
         http://www.lrr.in.tum.de/~acher
         "Oh no, not again !" The bowl of petunias          



More information about the vdr mailing list