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.