[vdr] [ANNOUNCE] VDR developer version 1.5.0

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sun Jan 14 11:23:02 CET 2007


Petri Helin wrote:
> Klaus Schmidinger wrote:
>> Petri Helin wrote:
>>> ...
>>> BTW: I have been patching the device.c in 1.4.* series so that my other
>>> card, TT budget DVB-C v1.0, is always preferred for FTA channel
>>> recordings. Otherwise the precious CAM could be wasted in an FTA
>>> recording. I understood that you are planning on restructuring the
>>> priority model in 1.5.*. Have you taken in consideration the situation
>>> with budget-only environment with one or more CIs?
>>
>> Please try the attached patch and let me know if it works
>> as expected.
>>
>> Klaus
>>
> 
> Unfortunately it didn't work as (at least I) expected. What I am looking
> for is as follows
> 
> - card 1 (with CI) is tuned to channel A

Does this mean that there are receivers attached to card 1?
If so, VDR of course starts the new recording on card 1 in
order to keep card 2 available for other recordings.

> - card 2 (without CI) is tuned to channel B
> - channels A and B are on on different transponders
> - a recording is about to start on channel A
> - VDR chooses card 2 and tunes it to channel A in order to actuate the
> recording
> 
> Currently I have achieved this with the attached patch.
> 
> -Petri
> 
> 
> ------------------------------------------------------------------------
> 
> --- vdr-1.4.4/device.c.orig	2006-09-03 13:13:25.000000000 +0300
> +++ vdr-1.4.4/device.c	2006-12-11 20:46:13.000000000 +0200
> @@ -292,11 +292,11 @@
>           // to their individual severity, where the one listed first will make the most
>           // difference, because it results in the most significant bit of the result.
>           uint imp = 0;
> +         imp <<= 8; imp |= min(max(device[i]->ProvidesCa(Channel), 0), 0xFF);      // use the device that provides the lowest number of conditional access methods
>           imp <<= 1; imp |= !device[i]->Receiving() || ndr;                         // use receiving devices if we don't need to detach existing receivers
>           imp <<= 1; imp |= device[i]->Receiving();                                 // avoid devices that are receiving
>           imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice();        // avoid the Transfer Mode receiver device
>           imp <<= 8; imp |= min(max(device[i]->Priority() + MAXPRIORITY, 0), 0xFF); // use the device with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used)
> -         imp <<= 8; imp |= min(max(device[i]->ProvidesCa(Channel), 0), 0xFF);      // use the device that provides the lowest number of conditional access methods
>           imp <<= 1; imp |= device[i]->IsPrimaryDevice();                           // avoid the primary device
>           imp <<= 1; imp |= device[i]->HasDecoder();                                // avoid full featured cards
>           if (imp < Impact) {

This would mean that if a recording is currently running on card 1 (with CI),
and another recording on the same transponder shall be started, that new
recording would use card 2, thus blocking the possibility of a third recording
on a different transponder.

Klaus



More information about the vdr mailing list