On 4 April 2010 03:37, Georg Acher acher@in.tum.de wrote:
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
Can this solution coexist with vdr-streamdev/iptv? I ask because currently vdr-streamdev does not support dynamic increase in streams to remote server(s). Only way now is to copy the plugin multiple times and load them accordingly. If the plugin is loaded 3 times, then it will allow 3 connections. I take it this will then consume 3 devices?
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@in.tum.de http://www.lrr.in.tum.de/~acher "Oh no, not again !" The bowl of petunias
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr