From dvd@treblig.org Sun, 25 Jul 1999 17:02:33 +0100 (BST)
Date: Sun, 25 Jul 1999 17:02:33 +0100 (BST)
From: Dave Gilbert dvd@treblig.org
Subject: [Livid-dev] CSS unlocking - and decoding stream

Hi,
  Having just found a cheap DVD ROM drive, I am newly LiVid.
The drive is a Matsushita SR-8582-B IDE drive with laser warnings in
significantly more languages than the rosetta stone. (It cost me #29 UK
pounds from a local end-of-line dealer).

  I'm planning on putting it into my Linux/Alpha box and wondered what
issues there are and in which ways I could help out.  A few years I did a
lot of work with MPEG (video streams only) and may be able to borrow some
specs again.  I'm not planning to get a decoder card - software MPEG
decoding sounds fun.....

  So the first issue that I see is getting the stream - I've looked at the
CSS unlock code and see that it is in x86 assembler; while I don't know
x86 I'd be happy to have a crack at doing the porting to portable C.

The next question is what is necessary to get from there to a nice happy
MPEG stream (would this be a transport stream??). It looks like some
decrypting is needed - how much of the appropriate dcoding info is public
?

Thanks in advance,

Dave

 --------------------------------------------------------------------   
/ Dr. David Alan Gilbert      | Running Linux on           |  Happy  \ 
\   gro.gilbert @ treblig.org |  Alpha, x86, ARM and SPARC |  In Hex /
 ____________________________|___ http://www.treblig.demon.co.uk __/

From Ralph_Giles@sfu.ca Sun, 25 Jul 1999 10:01:08 -0700 (PDT)
Date: Sun, 25 Jul 1999 10:01:08 -0700 (PDT)
From: Ralph_Giles@sfu.ca Ralph_Giles@sfu.ca
Subject: [Livid-dev] CSS unlocking - and decoding stream

On 25 Jul, Dave Gilbert wrote:

> I'm planning on putting it into my Linux/Alpha box and wondered what
> issues there are and in which ways I could help out. A few years I did a
> lot of work with MPEG (video streams only) and may be able to borrow some
> specs again. I'm not planning to get a decoder card - software MPEG
> decoding sounds fun.....

Amen. And cross-platform support is a place open source really helps
with. Better get to work, though, there are all sorts of endian-ness
assumptions in the current code, I think. (?)

> So the first issue that I see is getting the stream - I've looked at the
> CSS unlock code and see that it is in x86 assembler; while I don't know
> x86 I'd be happy to have a crack at doing the porting to portable C.

Check out the cvs version. About a third of the translation to C has
been done, but the longest routine still needs tackling, I guess.
Anyone have any partial work done on this?

> The next question is what is necessary to get from there to a nice happy
> MPEG stream (would this be a transport stream??). It looks like some
> decrypting is needed - how much of the appropriate dcoding info is public
> ?

The mpeg-2 format is publicly documented (though patented, apparently
:P) and the *.vob files are pretty much just mpeg streams. Some of the
extras, like alternate camera angles, subtitles and multiple audio
tracks will need to be figured out, but I expect we can play most
current movies straight through without too much trouble. Note that
some discs aren't encrypted, so this is the place to start if you just
want to work on the player. See the list archives for some suggestions.

As for the encryption, we seem to be able to get a disc key reliably.
The vts_*.vob files only are encrypted, apparently with some sort of per
sector or per file (or per title) "title key". which is probably
obtained by xoring the disk key with the right bit of the file header.
The title key is then used to decrypt the mpeg stream through some
variation of DES. I think it's been crippled to 40-bits in some way.

Hope that helps, and welcome to the project!

-r
Ralph_Giles@sfu.ca

From gilbertd@treblig.org Sun, 25 Jul 1999 21:32:24 +0100 (BST)
Date: Sun, 25 Jul 1999 21:32:24 +0100 (BST)
From: Dave Gilbert gilbertd@treblig.org
Subject: [Livid-dev] CSS unlocking - and decoding stream

On Sun, 25 Jul 1999 Ralph_Giles@sfu.ca wrote:

> Amen. And cross-platform support is a place open source really helps
> with. Better get to work, though, there are all sorts of endian-ness
> assumptions in the current code, I think. (?)

Yes - ts not just endianness assumptions - it is things like most
non-Intel processors don't like loading from non-aligned boundaries which
I'll bet you do a lot of while pulling the bit stream apart.

> The mpeg-2 format is publicly documented (though patented, apparently
> :P)

Sure - I know where there is a copy of the spec, and it is a matter of
seeing if my old research group will let me borrow it.
Sure once we have a nice happy MPEG stream then its a standard problem
whose only hard bits are speed and keeping the audio and video together.
(did I emphasise speed......)

> and the *.vob files are pretty much just mpeg streams. Some of the
> extras, like alternate camera angles, subtitles and multiple audio
> tracks will need to be figured out, but I expect we can play most
> current movies straight through without too much trouble. Note that
> some discs aren't encrypted, so this is the place to start if you just
> want to work on the player. See the list archives for some suggestions.

OK, as a research exercise I'm hoping to get someone to bring me back a 
Blade Runner DVD from the states next week....
 
> As for the encryption, we seem to be able to get a disc key reliably.
> The vts_*.vob files only are encrypted, apparently with some sort of per
> sector or per file (or per title) "title key". which is probably
> obtained by xoring the disk key with the right bit of the file header.
> The title key is then used to decrypt the mpeg stream through some
> variation of DES. I think it's been crippled to 40-bits in some way.


> Hope that helps, and welcome to the project!

Thanks!

Dave

 --------------------------------------------------------------------   
/ Dr. David Alan Gilbert      | Running Linux on           |  Happy  \ 
\   gro.gilbert @ treblig.org |  Alpha, x86, ARM and SPARC |  In Hex /
 ____________________________|___ http://www.treblig.demon.co.uk __/

From derek@spider.com Mon, 26 Jul 1999 17:05:37 +0100
Date: Mon, 26 Jul 1999 17:05:37 +0100
From: Derek Fawcus derek@spider.com
Subject: [Livid-dev] CSS unlocking - and decoding stream

On Sun, Jul 25, 1999 at 10:01:08AM -0700, Ralph_Giles@sfu.ca wrote:
> On 25 Jul, Dave Gilbert wrote:
> 
> > So the first issue that I see is getting the stream - I've looked at the
> > CSS unlock code and see that it is in x86 assembler; while I don't know
> > x86 I'd be happy to have a crack at doing the porting to portable C.
> 
> Check out the cvs version. About a third of the translation to C has
> been done, but the longest routine still needs tackling, I guess.
> Anyone have any partial work done on this?

I've got all of the remainder of the code converted to C. Unfortunatly
in the process I broke it :( So at the moment I'm going through testing
blocks of C against the corresponding blocks of assembler to find where
I messed up.

With some luck it shouldn't be too long before this is all done.

DF
-- 
Derek Fawcus derek@spider.com
Spider Software Ltd. +44 (0) 131 475 7034

From derek@spider.com Fri, 30 Jul 1999 02:30:35 +0100
Date: Fri, 30 Jul 1999 02:30:35 +0100
From: Derek Fawcus derek@spider.com
Subject: [Livid-dev] CSS unlocking - and decoding stream

On Mon, Jul 26, 1999 at 05:05:37PM +0100, Derek Fawcus wrote:
> 
> I've got all of the remainder of the code converted to C. Unfortunatly
> in the process I broke it :( So at the moment I'm going through testing
> blocks of C against the corresponding blocks of assembler to find where
> I messed up.
> 
> With some luck it shouldn't be too long before this is all done.

OK. I've got functional C code now. Is anyone in a hurry to have
this? If so I'll update CVS tomorrow (Friday), if not I'll continue
with some tidy ups and simplifications first.

DF
-- 
Derek Fawcus derek@spider.com
Spider Software Ltd. +44 (0) 131 475 7034

From derek@spider.com Tue, 27 Jul 1999 00:56:31 +0100
Date: Tue, 27 Jul 1999 00:56:31 +0100
From: Derek Fawcus derek@spider.com
Subject: [Livid-dev] CSS unlocking - and decoding stream

On Sun, Jul 25, 1999 at 09:32:24PM +0100, Dave Gilbert wrote:
>=20
> OK, as a research exercise I'm hoping to get someone to bring me back a=
=20
> Blade Runner DVD from the states next week....

  Well today I compiled up the player that Joachim K=F6nig did based upon
the NIST code,  and found that Trainspotting is unencrypted.  This is the
european release as supplied by www.dvdzone2.com.

  The player has some bugs and limitations (such as 1.5 - 2.5 fps),  and
crashes after a while,  but it's enought to play a bit from the start
of each chapter (vts_??_[1-0].vob) before it dies.

DF
--=20
Derek Fawcus                                                    derek@spi=
der.com
Spider Software Ltd.                                        +44 (0) 131 4=
75 7034

From joachim.koenig@gmx.net Tue, 27 Jul 1999 13:24:46 +0200
Date: Tue, 27 Jul 1999 13:24:46 +0200
From: Joachim König joachim.koenig@gmx.net
Subject: [Livid-dev] CSS unlocking - and decoding stream

I´m still writing on the player and it is already more stable. I will 
publish the next version when I have put in a new dithering module
(using MMX). Most
likely this will be next week.
For those who did not hear about it so far, it can be found at:
http://www.germany.net/teilnehmer/100/5083/index.htm

mfg
Joachim König



>Derek Fawcus wrote:
>
> Well today I compiled up the player that Joachim K=F6nig did based upon
>the NIST code, and found that Trainspotting is unencrypted. This is the
>european release as supplied by www.dvdzone2.com.
>
> The player has some bugs and limitations (such as 1.5 - 2.5 fps), and
>crashes after a while, but it's enought to play a bit from the start
>of each chapter (vts_??_[1-0].vob) before it dies.