Usenet.com

www.Usenet.com

Group Index

Sci Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Understanding The CSS




Hi,

I'm doing a small project at University on the Content Scrambling
System and currently I'm looking at some example css decoding source
code.  I was hoping someone may be able to clear something up for me
regarding the reading of the MPEG vobs into a 'decss' type program
before they are decoded.

My question is regarding a snippet of some example css scrambling code
from css_descramble.java that deals with PES (Packetized Elementary
Stream) Control:


if ((sec[0x14] & 0x30) > 0x00 ) // PES scrambling control
                    {
                        sec = jDeCSS.CSSdescramble(sec, key);
                        sec[0x14] &= 0x8F;
                    }

After reading a 2048 byte stream sector from the DVD the css
descramble program decides which part of the block to actually decode.
 The first 128 bytes of each 2048 byte DVD stream is unencrypted, and
part of this includes the MPEG pack header.  I'm trying to understand
what the bytes upto 0x14 and then at 0x30 actually do in the above
code.

At a guess do the bytes between 0x14 and 0x2F contain the MPEG Pack
header (up 28 bytes), then the final byte 0x30 includes either a 00
for no encryption - i.e no need to decode, or a 01 for CSS encryption.
 Does the IF statement basically check that there is an MPEG header -
i.e actual data, and also check that it is encrypted?

Just to add to the confusion, I'm also a little unsure what the 0x8F
byte represents (see next bit of above code).  It represents 143 bytes
into the stream? (0x8F in decimal is 143).

Any help would be fantastic.

Kind Regards,
Scott




<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.