Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-26 Thread Klaus Schmidinger
Heikki Manninen wrote:
> Klaus Schmidinger wrote:
>> Heikki Manninen wrote:
>>> On su, 2007-01-14 at 14:48 +0100, Klaus Schmidinger wrote:
>>>
 Your CAM doesn't respond to the QUERY that VDR sends to it.
 So VDR can't ask the CAM whether it is able to decrypt a certain
 channel (in addition to others it is already decrypting).
 So it's a hard-/firmware restriction of your CAM.

 The only CAM I have here that actually can decrypt more than one
 channel is the Alphacrypt with firmware revision 3.09.
>>> Conax 4.00e is able to decrypt 2-3 channels at the same time. Although
>>> when used with VDR 1.5.0 it is not. Also when using previous versions of
>>
>> If the CAM doesn't respond to a QUERY, then how is VDR supposed to
>> know whether it can decrypt more than one channel at a time?
> 
> Didn't mean that it is supposed to. Just informed you to let you (and
> others) now that sometimes it's possible :)
> 
>>> VDR you have to fake fixed receiver number in the channels.conf for this
>>> to be possible - if you put in B00 it doesn't work anymore :) It's
>>> sometimes a bit unrealiable but works.
>>
>> VDR 1.4 used the FIRST/MORE/LAST method to send multiple CaPmts.
>> Since some CAMs apparently don't handle this correctly, I changed
>> that to the simpler ADD/UPDATE method, which should be supported
>> by any CAM that can decrypt more than one channel.
>>
>> Can you please check if there is a newer firmware for the Conax CAM
>> and maybe try that?
> 
> Hmm.. have to try. Although I'm not aware how to do it. Should it be
> able to update from the broadcast signal?

That depends on the manufacturer of the CAM.
Some do, some don't. The Alphacrypt CAM, for instance, can be
updated via satellite, and VDR supports this.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-15 Thread Heikki Manninen

Klaus Schmidinger wrote:

Heikki Manninen wrote:

On su, 2007-01-14 at 14:48 +0100, Klaus Schmidinger wrote:


Your CAM doesn't respond to the QUERY that VDR sends to it.
So VDR can't ask the CAM whether it is able to decrypt a certain
channel (in addition to others it is already decrypting).
So it's a hard-/firmware restriction of your CAM.

The only CAM I have here that actually can decrypt more than one
channel is the Alphacrypt with firmware revision 3.09.

Conax 4.00e is able to decrypt 2-3 channels at the same time. Although
when used with VDR 1.5.0 it is not. Also when using previous versions of


If the CAM doesn't respond to a QUERY, then how is VDR supposed to
know whether it can decrypt more than one channel at a time?


Didn't mean that it is supposed to. Just informed you to let you (and 
others) now that sometimes it's possible :)



VDR you have to fake fixed receiver number in the channels.conf for this
to be possible - if you put in B00 it doesn't work anymore :) It's
sometimes a bit unrealiable but works.


VDR 1.4 used the FIRST/MORE/LAST method to send multiple CaPmts.
Since some CAMs apparently don't handle this correctly, I changed
that to the simpler ADD/UPDATE method, which should be supported
by any CAM that can decrypt more than one channel.

Can you please check if there is a newer firmware for the Conax CAM
and maybe try that?


Hmm.. have to try. Although I'm not aware how to do it. Should it be 
able to update from the broadcast signal?



--
Heikki M

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-15 Thread Matthias Schniedermeyer
Klaus Schmidinger wrote:
> Heikki Manninen wrote:
> 
>>On su, 2007-01-14 at 14:48 +0100, Klaus Schmidinger wrote:
>>
>>
>>>Your CAM doesn't respond to the QUERY that VDR sends to it.
>>>So VDR can't ask the CAM whether it is able to decrypt a certain
>>>channel (in addition to others it is already decrypting).
>>>So it's a hard-/firmware restriction of your CAM.
>>>
>>>The only CAM I have here that actually can decrypt more than one
>>>channel is the Alphacrypt with firmware revision 3.09.
>>
>>Conax 4.00e is able to decrypt 2-3 channels at the same time. Although
>>when used with VDR 1.5.0 it is not. Also when using previous versions of
> 
> If the CAM doesn't respond to a QUERY, then how is VDR supposed to
> know whether it can decrypt more than one channel at a time?

I think i can say with resonable confidence that most VDR-Systems don't
change at a regular basis, but stay unchanged (more or less) for
sometimes years(*).

So why not make a "probe capabilities" function (where you could also
probe "unsafe" things, with a bit of user interaction(*2)) and then
store the information away in a config-file.

The next time the system has significant changes you can probe again.




*:
My first VDR-machine is for e.g. practically unchanged (hardware-wise)
since i build it sometime near end of 2000(!).

*2:
Ever installed Windows?
I've seen: "The screen may go blank and the computer can freeze", or
something in the same sense.

Bis denn

-- 
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-15 Thread Klaus Schmidinger
Heikki Manninen wrote:
> On su, 2007-01-14 at 14:48 +0100, Klaus Schmidinger wrote:
> 
>> Your CAM doesn't respond to the QUERY that VDR sends to it.
>> So VDR can't ask the CAM whether it is able to decrypt a certain
>> channel (in addition to others it is already decrypting).
>> So it's a hard-/firmware restriction of your CAM.
>>
>> The only CAM I have here that actually can decrypt more than one
>> channel is the Alphacrypt with firmware revision 3.09.
> 
> Conax 4.00e is able to decrypt 2-3 channels at the same time. Although
> when used with VDR 1.5.0 it is not. Also when using previous versions of

If the CAM doesn't respond to a QUERY, then how is VDR supposed to
know whether it can decrypt more than one channel at a time?

> VDR you have to fake fixed receiver number in the channels.conf for this
> to be possible - if you put in B00 it doesn't work anymore :) It's
> sometimes a bit unrealiable but works.

VDR 1.4 used the FIRST/MORE/LAST method to send multiple CaPmts.
Since some CAMs apparently don't handle this correctly, I changed
that to the simpler ADD/UPDATE method, which should be supported
by any CAM that can decrypt more than one channel.

Can you please check if there is a newer firmware for the Conax CAM
and maybe try that?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Heikki Manninen
On su, 2007-01-14 at 14:48 +0100, Klaus Schmidinger wrote:

> Your CAM doesn't respond to the QUERY that VDR sends to it.
> So VDR can't ask the CAM whether it is able to decrypt a certain
> channel (in addition to others it is already decrypting).
> So it's a hard-/firmware restriction of your CAM.
> 
> The only CAM I have here that actually can decrypt more than one
> channel is the Alphacrypt with firmware revision 3.09.

Conax 4.00e is able to decrypt 2-3 channels at the same time. Although
when used with VDR 1.5.0 it is not. Also when using previous versions of
VDR you have to fake fixed receiver number in the channels.conf for this
to be possible - if you put in B00 it doesn't work anymore :) It's
sometimes a bit unrealiable but works.

-- 
Heikki M


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Petri Helin

Klaus Schmidinger wrote:

Petri Helin wrote:

But anyway, now it works, though only for one channel at time as stated
in the vdr's log. Is that a hardware specific restriction?


Your CAM doesn't respond to the QUERY that VDR sends to it.
So VDR can't ask the CAM whether it is able to decrypt a certain
channel (in addition to others it is already decrypting).
So it's a hard-/firmware restriction of your CAM.

The only CAM I have here that actually can decrypt more than one
channel is the Alphacrypt with firmware revision 3.09.



Is it possible to override the query and just try to decrypt two channels?

-Petri

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>> Petri Helin wrote:
>>> But anyway, now it works, though only for one channel at time as stated
>>> in the vdr's log. Is that a hardware specific restriction?
>>
>> Your CAM doesn't respond to the QUERY that VDR sends to it.
>> So VDR can't ask the CAM whether it is able to decrypt a certain
>> channel (in addition to others it is already decrypting).
>> So it's a hard-/firmware restriction of your CAM.
>>
>> The only CAM I have here that actually can decrypt more than one
>> channel is the Alphacrypt with firmware revision 3.09.
>>
> 
> Is it possible to override the query and just try to decrypt two channels?

Just make the function cCamSlot::CanDecrypt() always return 'true'.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>...
>> Please set the CA parameter of these channels to 0 (FTA) and tune to
>> them again.
>> VDR should automatically insert the correct CA values then.
>>
>>> From the HISTORY:
>>
>> - Ca values in the range 0...F in channels.conf can still be used to
>> assign a channel
>>   to a particular device, but this will no longer work with encrypted
>> channels because
>>   without valid CA ids VDR can't decide which CAM slot to use.
>> However, since VDR now
>>   automatically determines which CAM can decrypt which channel,
>> setting fixed
>>   channel/device relations should no longer be necessary.
>>
>>
>> Klaus
>>
> 
> Oh, should have read that HISTORY more carefully, though it still not
> clear to me, after reading that part of HISTORY, that i should change
> the channels.conf file. Maybe that could be impressed in a way that
> would make it clear, even for me?

Ok, will do.

> But anyway, now it works, though only for one channel at time as stated
> in the vdr's log. Is that a hardware specific restriction?

Your CAM doesn't respond to the QUERY that VDR sends to it.
So VDR can't ask the CAM whether it is able to decrypt a certain
channel (in addition to others it is already decrypting).
So it's a hard-/firmware restriction of your CAM.

The only CAM I have here that actually can decrypt more than one
channel is the Alphacrypt with firmware revision 3.09.

Greetings
Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Petri Helin

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Looks like the CAM is recognized all right.

Please enable the lines

static bool DumpTPDUDataTransfer = false;
static bool DebugProtocol = false;
static bool DumpPolls = false;
static bool DumpDateTime = false;

in ci.c by changing them to 'true' and compile/run VDR again,
redirecting
stderr into a file, as in

  ./vdr 2> ci.txt

Then send me the resulting output after trying to switch to an
encrypted
channel.


Attached.

Everything looks fine, the CaPmt is sent to the CAM and the
communication with the CAM is stable. It should work.

Can you please do the same with VDR 1.4 and send me the result of
that, too?

...
Here you are.

Ah, now I see the difference:

3: ==> Ca Pmt
 4  --> 00 01 A0 2F 01 90 02 00 03 9F 80 32 26 03 01 35 01 00 07
01 09 04 0B 00 E0 68 02 02 06 00 00 04 02 AE 00 00 04 02 AF 00 00 04
02 AC 00 00 04 02 AD 00 00

Slot 1: ==> Ca Pmt (3) 3 3
 1: --> 00 01 A0 10 01 90 02 00 03 9F 80 32 07 03 00 00 01 00 01 03

For some reason VDR 1.4.4 sends the CA descriptors in the CaPmt, while
VDR 1.5.0
doesn't.

Please post the channels.conf entry for the channel you are trying to
tune to.

Also, just to make sure: are you using plain vanilla VDR 1.5.0 or are
there
any patches involved?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Here are the channels that VDR 1.5.0 cannot tune to:


Canal+
Mix;Telenor:266000:C0M128:C:6900:518:686=nor,687=fin,684=sve,685=dan:581:1:309:0:9:0

Canal+ Film
1;Telenor:266000:C0M128:C:6900:512:650=sve,651=dan,652=nor,653=fin;654=eng:576:1:301:0:9:0

Canal+ Film
2;Telenor:266000:C0M128:C:6900:515:682=nor,683=fin,680=sve,681=dan;679=eng:579:1:308:0:9:0

Canal+ Film
3;Telenor:314000:C0M128:C:6900:518:664=sve,665=dan,666=nor,667=fin;668=eng:577:1:3307:0:19:0

Canal+ HD;Telenor:33:C0M256:C:6900:512:640;641=eng:580:1:3306:0:22:0
Canal+ Sport 1;Telenor:266000:C0M128:C:6900:514:670=fin:577:1:305:0:9:0
Canal+ Sport
2;Telenor:314000:C0M128:C:6900:519:672=sve,673=dan,674=nor,675=fin:578:1:3308:0:19:0


Ah, just as I thought.

Please set the CA parameter of these channels to 0 (FTA) and tune to them again.
VDR should automatically insert the correct CA values then.


From the HISTORY:


- Ca values in the range 0...F in channels.conf can still be used to assign a 
channel
  to a particular device, but this will no longer work with encrypted channels 
because
  without valid CA ids VDR can't decide which CAM slot to use. However, since 
VDR now
  automatically determines which CAM can decrypt which channel, setting fixed
  channel/device relations should no longer be necessary.


Klaus



Oh, should have read that HISTORY more carefully, though it still not 
clear to me, after reading that part of HISTORY, that i should change 
the channels.conf file. Maybe that could be impressed in a way that 
would make it clear, even for me?
But anyway, now it works, though only for one channel at time as stated 
in the vdr's log. Is that a hardware specific restriction?


Thanks for helping out.

-Petri

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>> Petri Helin wrote:
>>> Klaus Schmidinger wrote:
 Petri Helin wrote:
> Klaus Schmidinger wrote:
>> Looks like the CAM is recognized all right.
>>
>> Please enable the lines
>>
>> static bool DumpTPDUDataTransfer = false;
>> static bool DebugProtocol = false;
>> static bool DumpPolls = false;
>> static bool DumpDateTime = false;
>>
>> in ci.c by changing them to 'true' and compile/run VDR again,
>> redirecting
>> stderr into a file, as in
>>
>>   ./vdr 2> ci.txt
>>
>> Then send me the resulting output after trying to switch to an
>> encrypted
>> channel.
>>
> Attached.
 Everything looks fine, the CaPmt is sent to the CAM and the
 communication with the CAM is stable. It should work.

 Can you please do the same with VDR 1.4 and send me the result of
 that, too?
>>> ...
>>> Here you are.
>>
>> Ah, now I see the difference:
>>
>> 3: ==> Ca Pmt
>>  4  --> 00 01 A0 2F 01 90 02 00 03 9F 80 32 26 03 01 35 01 00 07
>> 01 09 04 0B 00 E0 68 02 02 06 00 00 04 02 AE 00 00 04 02 AF 00 00 04
>> 02 AC 00 00 04 02 AD 00 00
>>
>> Slot 1: ==> Ca Pmt (3) 3 3
>>  1: --> 00 01 A0 10 01 90 02 00 03 9F 80 32 07 03 00 00 01 00 01 03
>>
>> For some reason VDR 1.4.4 sends the CA descriptors in the CaPmt, while
>> VDR 1.5.0
>> doesn't.
>>
>> Please post the channels.conf entry for the channel you are trying to
>> tune to.
>>
>> Also, just to make sure: are you using plain vanilla VDR 1.5.0 or are
>> there
>> any patches involved?
>>
>> Klaus
>>
>> ___
>> vdr mailing list
>> vdr@linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>>
> 
> Here are the channels that VDR 1.5.0 cannot tune to:
> 
> 
> Canal+
> Mix;Telenor:266000:C0M128:C:6900:518:686=nor,687=fin,684=sve,685=dan:581:1:309:0:9:0
> 
> Canal+ Film
> 1;Telenor:266000:C0M128:C:6900:512:650=sve,651=dan,652=nor,653=fin;654=eng:576:1:301:0:9:0
> 
> Canal+ Film
> 2;Telenor:266000:C0M128:C:6900:515:682=nor,683=fin,680=sve,681=dan;679=eng:579:1:308:0:9:0
> 
> Canal+ Film
> 3;Telenor:314000:C0M128:C:6900:518:664=sve,665=dan,666=nor,667=fin;668=eng:577:1:3307:0:19:0
> 
> Canal+ HD;Telenor:33:C0M256:C:6900:512:640;641=eng:580:1:3306:0:22:0
> Canal+ Sport 1;Telenor:266000:C0M128:C:6900:514:670=fin:577:1:305:0:9:0
> Canal+ Sport
> 2;Telenor:314000:C0M128:C:6900:519:672=sve,673=dan,674=nor,675=fin:578:1:3308:0:19:0

Ah, just as I thought.

Please set the CA parameter of these channels to 0 (FTA) and tune to them again.
VDR should automatically insert the correct CA values then.

>From the HISTORY:

- Ca values in the range 0...F in channels.conf can still be used to assign a 
channel
  to a particular device, but this will no longer work with encrypted channels 
because
  without valid CA ids VDR can't decide which CAM slot to use. However, since 
VDR now
  automatically determines which CAM can decrypt which channel, setting fixed
  channel/device relations should no longer be necessary.


Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Petri Helin

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Looks like the CAM is recognized all right.

Please enable the lines

static bool DumpTPDUDataTransfer = false;
static bool DebugProtocol = false;
static bool DumpPolls = false;
static bool DumpDateTime = false;

in ci.c by changing them to 'true' and compile/run VDR again,
redirecting
stderr into a file, as in

  ./vdr 2> ci.txt

Then send me the resulting output after trying to switch to an
encrypted
channel.


Attached.

Everything looks fine, the CaPmt is sent to the CAM and the
communication with the CAM is stable. It should work.

Can you please do the same with VDR 1.4 and send me the result of
that, too?

...
Here you are.


Ah, now I see the difference:

3: ==> Ca Pmt
 4  --> 00 01 A0 2F 01 90 02 00 03 9F 80 32 26 03 01 35 01 00 07 01 09 04 
0B 00 E0 68 02 02 06 00 00 04 02 AE 00 00 04 02 AF 00 00 04 02 AC 00 00 04 02 AD 
00 00

Slot 1: ==> Ca Pmt (3) 3 3
 1: --> 00 01 A0 10 01 90 02 00 03 9F 80 32 07 03 00 00 01 00 01 03

For some reason VDR 1.4.4 sends the CA descriptors in the CaPmt, while VDR 1.5.0
doesn't.

Please post the channels.conf entry for the channel you are trying to
tune to.

Also, just to make sure: are you using plain vanilla VDR 1.5.0 or are there
any patches involved?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr



Here are the channels that VDR 1.5.0 cannot tune to:


Canal+ 
Mix;Telenor:266000:C0M128:C:6900:518:686=nor,687=fin,684=sve,685=dan:581:1:309:0:9:0
Canal+ Film 
1;Telenor:266000:C0M128:C:6900:512:650=sve,651=dan,652=nor,653=fin;654=eng:576:1:301:0:9:0
Canal+ Film 
2;Telenor:266000:C0M128:C:6900:515:682=nor,683=fin,680=sve,681=dan;679=eng:579:1:308:0:9:0
Canal+ Film 
3;Telenor:314000:C0M128:C:6900:518:664=sve,665=dan,666=nor,667=fin;668=eng:577:1:3307:0:19:0

Canal+ HD;Telenor:33:C0M256:C:6900:512:640;641=eng:580:1:3306:0:22:0
Canal+ Sport 1;Telenor:266000:C0M128:C:6900:514:670=fin:577:1:305:0:9:0
Canal+ Sport 
2;Telenor:314000:C0M128:C:6900:519:672=sve,673=dan,674=nor,675=fin:578:1:3308:0:19:0



My 1.5.0 is unpatched, but 1.4.4 has been patched with liemikuutio-patch 
and patches needed for ttxtsubs- and subtitles-plugins.


-Petri

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Klaus Schmidinger
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.0 +0300
> +++ vdr-1.4.4/device.c2006-12-11 20:46:13.0 +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

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-14 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>> Petri Helin wrote:
>>> Klaus Schmidinger wrote:
 Looks like the CAM is recognized all right.

 Please enable the lines

 static bool DumpTPDUDataTransfer = false;
 static bool DebugProtocol = false;
 static bool DumpPolls = false;
 static bool DumpDateTime = false;

 in ci.c by changing them to 'true' and compile/run VDR again,
 redirecting
 stderr into a file, as in

   ./vdr 2> ci.txt

 Then send me the resulting output after trying to switch to an
 encrypted
 channel.

>>> Attached.
>>
>> Everything looks fine, the CaPmt is sent to the CAM and the
>> communication with the CAM is stable. It should work.
>>
>> Can you please do the same with VDR 1.4 and send me the result of
>> that, too?
> ...
> Here you are.

Ah, now I see the difference:

3: ==> Ca Pmt
 4  --> 00 01 A0 2F 01 90 02 00 03 9F 80 32 26 03 01 35 01 00 07 01 09 04 
0B 00 E0 68 02 02 06 00 00 04 02 AE 00 00 04 02 AF 00 00 04 02 AC 00 00 04 02 
AD 00 00

Slot 1: ==> Ca Pmt (3) 3 3
 1: --> 00 01 A0 10 01 90 02 00 03 9F 80 32 07 03 00 00 01 00 01 03

For some reason VDR 1.4.4 sends the CA descriptors in the CaPmt, while VDR 1.5.0
doesn't.

Please post the channels.conf entry for the channel you are trying to
tune to.

Also, just to make sure: are you using plain vanilla VDR 1.5.0 or are there
any patches involved?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Petri Helin

Klaus Schmidinger wrote:

Petri Helin wrote:

Klaus Schmidinger wrote:

Looks like the CAM is recognized all right.

Please enable the lines

static bool DumpTPDUDataTransfer = false;
static bool DebugProtocol = false;
static bool DumpPolls = false;
static bool DumpDateTime = false;

in ci.c by changing them to 'true' and compile/run VDR again, redirecting
stderr into a file, as in

  ./vdr 2> ci.txt

Then send me the resulting output after trying to switch to an encrypted
channel.


Attached.


Everything looks fine, the CaPmt is sent to the CAM and the
communication with the CAM is stable. It should work.

Can you please do the same with VDR 1.4 and send me the result of that, too?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr



Here you are.

-Petri


ci-1.4.4.txt.gz
Description: application/gzip
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Petri Helin

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
- 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.0 +0300
+++ vdr-1.4.4/device.c	2006-12-11 20:46:13.0 +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) {
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>>
>> Looks like the CAM is recognized all right.
>>
>> Please enable the lines
>>
>> static bool DumpTPDUDataTransfer = false;
>> static bool DebugProtocol = false;
>> static bool DumpPolls = false;
>> static bool DumpDateTime = false;
>>
>> in ci.c by changing them to 'true' and compile/run VDR again, redirecting
>> stderr into a file, as in
>>
>>   ./vdr 2> ci.txt
>>
>> Then send me the resulting output after trying to switch to an encrypted
>> channel.
>>
> 
> Attached.

Everything looks fine, the CaPmt is sent to the CAM and the
communication with the CAM is stable. It should work.

Can you please do the same with VDR 1.4 and send me the result of that, too?

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Petri Helin

Klaus Schmidinger wrote:


Looks like the CAM is recognized all right.

Please enable the lines

static bool DumpTPDUDataTransfer = false;
static bool DebugProtocol = false;
static bool DumpPolls = false;
static bool DumpDateTime = false;

in ci.c by changing them to 'true' and compile/run VDR again, redirecting
stderr into a file, as in

  ./vdr 2> ci.txt

Then send me the resulting output after trying to switch to an encrypted
channel.



Attached.

-Petri


ci.txt.gz
Description: application/gzip
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Klaus Schmidinger
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
===
RCS file: RCS/device.c
retrieving revision 1.138
diff -u -r1.138 device.c
--- device.c	2007/01/07 13:41:07	1.138
+++ device.c	2007/01/13 12:05:00
@@ -334,6 +334,7 @@
  imp <<= 8; imp |= min(max((NumUsableSlots ? SlotPriority[j] : 0) + MAXPRIORITY, 0), 0xFF);  // use the CAM slot with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used)
  imp <<= 1; imp |= ndr;  // avoid devices if we need to detach existing receivers
  imp <<= 1; imp |= device[i]->IsPrimaryDevice(); // avoid the primary device
+ imp <<= 1; imp |= NumUsableSlots ? 0 : device[i]->HasCi();  // avoid cards with Common Interface for FTA channels
  imp <<= 1; imp |= device[i]->HasDecoder();  // avoid full featured cards
  imp <<= 1; imp |= NumUsableSlots ? !ChannelCamRelations.CamDecrypt(Channel->GetChannelID(), j + 1) : 0; // prefer CAMs that are known to decrypt this channel
  if (imp < Impact) {
@@ -367,6 +368,11 @@
   return d;
 }
 
+bool cDevice::HasCi(void)
+{
+  return false;
+}
+
 void cDevice::SetCamSlot(cCamSlot *CamSlot)
 {
   camSlot = CamSlot;
===
RCS file: RCS/device.h
retrieving revision 1.80
diff -u -r1.80 device.h
--- device.h	2007/01/03 14:14:29	1.80
+++ device.h	2007/01/13 11:33:57
@@ -314,6 +314,8 @@
   time_t startScrambleDetection;
   cCamSlot *camSlot;
 public:
+  virtual bool HasCi(void);
+ ///< Returns true if this device has a Common Interface.
   void SetCamSlot(cCamSlot *CamSlot);
  ///< Sets the given CamSlot to be used with this device.
   cCamSlot *CamSlot(void) const { return camSlot; }
===
RCS file: RCS/dvbdevice.c
retrieving revision 1.161
diff -u -r1.161 dvbdevice.c
--- dvbdevice.c	2007/01/05 11:09:51	1.161
+++ dvbdevice.c	2007/01/13 11:37:00
@@ -509,6 +509,11 @@
   return spuDecoder;
 }
 
+bool cDvbDevice::HasCi(void)
+{
+  return ciAdapter;
+}
+
 uchar *cDvbDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int SizeY)
 {
   if (devVideoIndex < 0)
===
RCS file: RCS/dvbdevice.h
retrieving revision 1.42
diff -u -r1.42 dvbdevice.h
--- dvbdevice.h	2007/01/05 10:39:52	1.42
+++ dvbdevice.h	2007/01/13 11:35:07
@@ -84,6 +84,11 @@
 protected:
   virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask);
 
+// Common Interface facilities:
+
+public:
+  virtual bool HasCi(void);
+
 // Image Grab facilities
 
 private:
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-13 Thread Klaus Schmidinger
Petri Helin wrote:
> Klaus Schmidinger wrote:
>> VDR developer version 1.5.0 is now available at
>> ...
> with a quick test with this new version I was unable to get the
> decrypting to work. I have a Technotrend C1500 budget card with budget
> CI and a Dual CAM Irdeto + Conax (Conax is used). This combinations
> works flawlessly with 1.4.* series. Here are some relevant log entries:
> 
> Jan  8 00:00:14 localhost vdr: [12494] video directory scanner thread
> started (pid=12493, tid=12494)
> Jan  8 00:00:14 localhost vdr: [12495] video directory scanner thread
> started (pid=12493, tid=12495)
> Jan  8 00:00:14 localhost vdr: [12493] probing /dev/dvb/adapter0/frontend0
> Jan  8 00:00:14 localhost vdr: [12497] CI adapter on device 0 thread
> started (pid=12493, tid=12497)
> Jan  8 00:00:14 localhost vdr: [12495] video directory scanner thread
> ended (pid=12493, tid=12495)
> Jan  8 00:00:14 localhost vdr: [12494] video directory scanner thread
> ended (pid=12493, tid=12494)
> Jan  8 00:00:14 localhost vdr: [12497] CAM 1: module present
> Jan  8 00:00:14 localhost vdr: [12493] probing /dev/dvb/adapter1/frontend0
> Jan  8 00:00:14 localhost vdr: [12498] tuner on device 1 thread started
> (pid=12493, tid=12498)
> Jan  8 00:00:14 localhost vdr: [12499] section handler thread started
> (pid=12493, tid=12499)
> Jan  8 00:00:14 localhost vdr: [12493] probing /dev/dvb/adapter2/frontend0
> Jan  8 00:00:14 localhost vdr: [12493] found 2 video devices
> ...
> Jan  8 00:00:17 localhost vdr: [12497] CAM 1: module ready
> Jan  8 00:00:20 localhost vdr: [12497] CAM 1: Conax 4.00e, 01, 0B00, 04B1
> Jan  8 00:00:24 localhost vdr: [12497] CAM 1: doesn't reply to QUERY -
> only a single channel can be decrypted
> Jan  8 00:00:24 localhost vdr: [12493] switching to channel 11

Looks like the CAM is recognized all right.

Please enable the lines

static bool DumpTPDUDataTransfer = false;
static bool DebugProtocol = false;
static bool DumpPolls = false;
static bool DumpDateTime = false;

in ci.c by changing them to 'true' and compile/run VDR again, redirecting
stderr into a file, as in

  ./vdr 2> ci.txt

Then send me the resulting output after trying to switch to an encrypted
channel.

> 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?

This would require additional information in cDevice::GetDevice() to see whether
the device has CA capabilities. Until now this is implicitly done by avoiding
full featured cards, but since budget cards also can have CAMs I'll add an
appropriate check for this to the cDevice class.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.5.0

2007-01-07 Thread Petri Helin

Klaus Schmidinger wrote:

VDR developer version 1.5.0 is now available at

ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.5.0.tar.bz2

A 'diff' against the latest stable version is available at

ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.4.5-1.5.0.diff



WARNING:


This is a *developer* version. Even though *I* use it in my productive
environment, I strongly recommend that you only use it under controlled
conditions and for testing and debugging.



This version focuses mainly on improvements in CAM handling.
The highlights are:

- Improved CAM menu and reset handling.
- Automatic selection of suitable CAM in a system with several CAMs
  that claim to decrypt a given channel.
- Decrypting of several channels on the same transponder (if the
  CAM is able to do this).


The changes since version 1.4.5:

- The CAM handling has been refactored. Instead of a cCiHandler per device there
  is now an abstract cCiAdapter and a cCamSlot. This allows each slot to be
  accessed individually.
- The general 15 seconds workaround time before opening the CAM menu has been
  removed. If the CAM menu doesn't open within a timeout, the enter menu command
  is now sent again.
- If a CAM is reset or pulled and reinserted, it now automatically starts
  decrypting the current channel again.
- The Setup/CAM menu now dynamically refreshes its items and displays whether
  a CAM is present or ready. The 'Reset' function no longer leaves the menu.
- The CAM menu will now be openend when pressing the Ok key on a slot entry.
- The CAM menu now stays within the current menu context and doesn't close and
  reopen the menu every time an option is selected.
- When an encrypted channel is switched to for the first time, VDR now checks
  explicitly whether a CAM can actually decrypt that channel. If there is more
  than one CAM in the system that claims to be able to decrypt the channel,
  they are all tried in turn.
  To make this possible, an encrypted channel needs to be received in Transfer
  Mode when it is switched to for the first time, so that VDR can determine
  whether the TS packets are actually decrypted. Once a channel is known to
  be decrypted by a particular CAM, the next time it is switched to it will
  be shown in normal live viewing mode.
- A cDevice now automatically detaches all cReceiver objects that receive PIDs
  that can't be decrypted with the current CAM. A plugin that attaches a 
cReceiver
  to a device should therefore watch the receiver's IsAttached() function to
  see if it is still attached to the device.
- The cReceiver constructor no longer takes an 'int Ca' as its first parameter,
  but rather a 'tChannelID ChannelID'. This is necessary for the device to be
  able to determine which CAM a particular channel can be decrypted with. If the
  channel is known to be unencrypted, or a plugin doesn't want to provide the
  channel id for other reasons, an invalid tChannelID() can be given.
- The cThread::Start() function now waits until a previous incarnation of this
  thread has actually stopped. Before this it could happen that a thread's
  Cancel(-1) function was called and immediately after that it was started 
again,
  but the Start() function still found it to be 'active'.
- The parameter NeedsDetachReceivers in cDevice::GetDevice(const cChannel 
*Channel, ...)
  has been removed. A call to this function will automatically detach all 
receivers
  from the device if it returns a non-NULL pointer.
- The cTimeMs class now accepts an initial timeout value in its constructor.
- A CAM is now explicitly instructed to stop decrypting when switching away from
  an encrypted channel.
- If the CAM in use can decrypt several channels at the same time, VDR can
  now make use if this capability. Whether or not a CAM can decrypt more
  than one channel is determined by sending it an initial empty QUERY command
  and testing whether it replies to it.
- Ca values in the range 0...F in channels.conf can still be used to assign a 
channel
  to a particular device, but this will no longer work with encrypted channels 
because
  without valid CA ids VDR can't decide which CAM slot to use. However, since 
VDR now
  automatically determines which CAM can decrypt which channel, setting fixed
  channel/device relations should no longer be necessary.

KNOWN BUG - PLEASE HELP DEBUGGING:

Start VDR with only one FF DVB card and an attached CI with a CAM.
Switch to an encrypted channel for the first time, the channel is shown
in Transfer Mode. Wait for at least 10 seconds, so that VDR will mark
the CAM as "able to decrypt this channel".
Now switch to the same channel again (by selecting it from the Channels
menu or typing in its number), and the screen goes black. VDR is now
receiving the channel in normal live mode (no Transfer Mode).
Apparently there is a problem with switching to live mode after using
Transfer Mode.
The problem goes away if you switch to a channel on a different transponder
and then back to the original one.