[linux-dvb] How to descramble?

Henrik Sjoberg henke at epact.se
Sat Oct 15 11:00:08 CEST 2005


Hi,

I managed to fix a few more bugs last night and can now descramble on
stream level too. (Which means I have currently no need to moving of CA
descriptors.)

However, what I have done for now is to implement the move of CA
descriptors in the way Manu describes below. Although, this is done _only_
if a new flag (-m) is given to ca_zap.
So, if this new flag is give to ca_zap, it checks that the move criterias
are fulfilled. If they are, the CA descriptors are moved from stream to
programme level.

Hence, the user of ca_zap have an option of moving the descriptors if
he/she sees fit.

Does this sound reasonable?

/Henrik

> Dominique Dumont wrote:
>
>>Manu Abraham <abraham.manu at gmail.com> writes:
>>
>>
>>
>>>The first one that i had seen was with TPS, and this was the only way it
>>>could be worked. In fact stream level decryption according to TPS wasn't
>>>probably stream level decryption but only program level decryption. I
>>>might be wrong here though, but that was the only thing that got it to
>>>descramble.
>>>
>>>
>>
>>You statement related to "program level decryption" is misleading. In
>>all cases only the elementary streams are encrypted. Sending CA
>>descriptors at program level is only a mean of saying "this
>>descriptor is valid for *all* elementary streams of this program"
>>
>>Here's the section 8.4.3.4 of EN50221 that specifies this behavior:
>>
>>   The CA_descriptor after the current_next_indicator is at the
>>   programme level and is valid for all elementary components of the
>>   programme. The CA_descriptor(s) at elementary_stream level is (are)
>>   valid for the elementary_stream only. If, for one
>>   elementary_stream, CA_descriptor(s) exist at programme level and at
>>   elementary_stream level, only the CA_descriptor(s) at
>>   elementary_stream level are taken into account.
>>
>>
>
> from a module point of  view, the rule is the following
>
> rule 1) check for each component the elementary stream level,
>   if there are any, use it and IGNORE the one from the program level.
>
> rule 2) if there is no ca_descriptor on the ES level (and only in this
> case),
>
>     use the  one at the program level.
>
>
>
> so , clearly, if you see that all the ca_desc at ES level are the same,
> you can remove them from es level, and put them only once at program
> level.
>
> then, rule 1 will no more be applied, but rule2 will be use instead...
> and the result will be 100%
> the same, since the ca_descriptor at program level
> will be used for each ES.
>
>
> So what is the reason to send a longer message which does exactly the
> same thing in that context ?
>
> HTH
>
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>





More information about the linux-dvb mailing list