On Sun, 06 Mar 2011 17:15:44 +0100, Klaus Schmidinger wrote
> The problem is that the VPS code in vdr.c avoids devices that are
> currently recording. And since this is a rather complex area,
> I'm not sure if it's too good an idea to change this ;-)
> If you feel like it, you may want to take a look at the code under
> // Find a device that provides the required transponder:
> in vdr.c. Maybe you can come up with a better solution...
Unless I've missed something, that code does not only ignore priorities but
also the availability of CAMs. How about using cDevice::GetDevice(const
cChannel*, int, bool) to find out which device will do the job? After all
that's what cRecordControls::Start(...) uses later when looking for the device
to actually start recording from.
Streamdev-server already uses this method for quite a while to find out if a
device is available. The only change required in cDevice::GetDevice would be
that it needs to become a query only method again like it was before VDR
1.5.0. Currently it may detach receivers of the device it returns. Adding a
"query only" flag to the method should do. Streamdev currently includes a copy
of cDevice::GetDevice without the detach receivers part to get that "query
only" behaviour. Would be happy if I could get rid of that.
OT but related: Any chance to see Udo Richter's patch related to proper
priorities on the transfer mode receiver device in VDR? This patch eliminates
some more inconsistencies related to priorities. References:
vdr mailing list