From 5929c7c83565be103f9df14d8db22506e72e5f61 Mon Sep 17 00:00:00 2001 From: diego Date: Tue, 24 Dec 2002 18:28:11 +0000 Subject: Reviewed and reworked (again), added some information about SCSI CD-ROMs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8555 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/cd-dvd.html | 177 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 81 deletions(-) (limited to 'DOCS') diff --git a/DOCS/cd-dvd.html b/DOCS/cd-dvd.html index b40b7df40a..90a89fac3d 100644 --- a/DOCS/cd-dvd.html +++ b/DOCS/cd-dvd.html @@ -19,15 +19,15 @@ make you consider changing the speed of a CD-ROM drive:

-

You can reduce the drive speed with hdparm or a program called setcd. - It works like this:

+

You can reduce the speed of IDE CD-ROM drives with hdparm or a + program called setcd. It works like this:

    hdparm -E [speed] [cdrom device]

@@ -44,16 +44,21 @@

This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. If you set it to too high, the drive will continuously spin up and down, and will dramatically decrease the performance. - It is recommended that you also tune your CD-ROM drive with hdparm:

+ It is recommended that you also tune your CD-ROM drive with + hdparm:

    hdparm -d1 -a8 -u1 (cdrom device)

-

This enables DMA access, read-ahead, and IRQ unmasking (read the hdparm man - page for a detailed explanation).

+

This enables DMA access, read-ahead, and IRQ unmasking (read the + hdparm man page for a detailed explanation).

Please refer to "/proc/ide/[cdrom device]/settings" for fine-tuning your CD-ROM.

+

SCSI drives do not have a uniform way of setting these parameters (Do you + know one? Tell us!) There is a tool that works for + Plextor SCSI drives.

+

FreeBSD:

    Speed: cdcontrol [-f device] speed [speed]

@@ -70,18 +75,20 @@ DVD decryption and playback. These two libraries are contained in the libmpdvdkit2/ subdirectory of the MPlayer source tree, you do not have to install them separately. We opted for this solution because - we had to fix a libdvdread bug, and apply a patch which adds cracked CSS - keys caching support to libdvdcss. This results in a large speed increase - because the keys do not have to be cracked every time before playing.

+ we had to fix a libdvdread bug and apply a patch which adds + cracked CSS keys caching support to libdvdcss. This results in a large + speed increase because the keys do not have to be cracked every time before + playing.

MPlayer can also use system-wide libdvdread and libdvdcss libraries, but this solution is not recommended, - as it can result in bugs, library incompatibilities, and slower speed.

+ as it can result in bugs, library incompatibilities and slower speed.

DVD Navigation support (dvdnav)

Support for DVD navigation via dvdnav was being worked on, but - it was never finished properly and is therefore not recommended!

+ it was never finished properly and it is currently unmaintained. Who knows, it + might even compile.

Old-style DVD support - OPTIONAL

@@ -93,40 +100,40 @@

DVD structure

-

DVD disks use all 2048 b/s sectors with ecc/crc. They usually have an UDF +

DVD disks have 2048 bytes per sector with ECC/CRC. They usually have an UDF filesystem on a single track, containing various files (small .IFO and .BUK files and big (1GB) .VOB files). They are real files and can be copied/played - from a mounted file system of an unencrypted DVD.

+ from the mounted filesystem of an unencrypted DVD.

-

The .IFO files contain the movie navigation informations (chapter/title/angle - map, language table, etc) and is needed to read and interpret the .VOB content - (movie). The .BUK files are backups of them. They use sectors everywhere, - so you need to use raw addressing of sectors of the disc to implement DVD - navigation. It's also needed to decrypt the content.

+

The .IFO files contain the movie navigation information (chapter/title/angle + map, language table, etc) and are needed to read and interpret the .VOB + content (movie). The .BUK files are backups of them. They use sectors + everywhere, so you need to use raw addressing of sectors of the disc to + implement DVD navigation or decrypt the content.

-

The whole old-style DVD support with libcss needs therefore a mounted DVD - filesystem and a raw sector-based access to the device. Unfortunately you must - be root (under Linux) to get the sector address of a file. You got the +

The whole old-style DVD support with libcss therefore needs a mounted DVD + filesystem and raw sector-based access to the device. Unfortunately you must + (under Linux) be root to get the sector address of a file. You have the following choices:

-

Sometimes /dev/dvd can't be read by users, so the libdvdread authors - implemented an emulation layer which transfers sector addresses to - filenames+offsets, to emulate raw access on the top of a mounted filesystem +

Sometimes /dev/dvd cannot be read by users, so the libdvdread + authors implemented an emulation layer which transfers sector addresses to + filenames+offsets, to emulate raw access on top of a mounted filesystem or even on a hard disk.

-

libdvdread even accepts the mountpoint instead of the device name for raw - access and checks in /proc/mounts to get the device name. It was +

libdvdread even accepts the mountpoint instead of the device name for raw + access and checks /proc/mounts to get the device name. It was developed for Solaris, where device names are dynamically allocated.

The default DVD device is /dev/dvd. If your setup differs, @@ -136,8 +143,8 @@

DVD authentication

The authentication and decryption method of the new-style DVD support is done - using a patched libdvdcss (see above). The method can be specified over the - environment variable DVDCSS_METHOD which can be set to + using a patched libdvdcss (see above). The method can be specified through the + environment variable DVDCSS_METHOD, which can be set to key, disk or title.

If nothing is specified it tries the following methods @@ -149,14 +156,14 @@ the title and disk keys before sending them over the unprotected bus (to prevent eavesdropping). The bus key is needed to get and predecrypt the crypted disk key. -

  • cached key: MPlayer looks for eventually already cracked +
  • cached key: MPlayer looks for already cracked title keys which are stored in the ~/.mplayer/DVDKeys directory (fast ;).
  • key: If no cached key is available, MPlayer tries to decrypt the disk key with a set of included player keys.
  • disk: If the key method fails (e.g. no included player keys), MPlayer will crack the disk key using a brute force algorithm. - This process is CPU intensive and requires 64 MB of memory (16M 32bit + This process is CPU intensive and requires 64 MB of memory (16M 32Bit entries hash table) to store temporary data. This method should always work (slow).
  • title request: With the disk key MPlayer requests the crypted title @@ -167,72 +174,80 @@
  • title: This method is used if the title request failed and does not rely on any key exchange with the DVD drive. It uses a crypto attack to guess the title key directly (by finding a repeating pattern in the - decrypted VOB content and guessing that that the plain text for first - encrypted bytes are a continuation of that pattern). + decrypted VOB content and guessing that the plain text corresponding to the + first encrypted bytes is a continuation of that pattern). The method is also known as "known plaintext attack" or "DeCSSPlus". In rare cases this may fail because there is not enough encrypted data on the disk to perform a statistical attack or because the key changes in the - middle of a title. On the other hand it is the only way to decrypt a DVD - stored on a hard disk or a DVD with the wrong region on an RPC2 drive - (slow).
  • + middle of a title. This method is the only way to decrypt a DVD stored on a + hard disk or a DVD with the wrong region on an RPC2 drive (slow). -

    RPC-1 DVD drives only protect region settings over software DVD players. +

    RPC-1 DVD drives only protect region settings through software. RPC-2 drives have a hardware protection that allows 5 changes only. It might be needed/recommended to upgrade the firmware to RPC-1 if you have a RPC-2 DVD - drive. Firmware upgrades can be found - here. If there is + drive. Firmware upgrades can be found on this + firmware page. If there is no firmware upgrade available for your device, use the regionset - tool to set the region code of your DVD-drive (under Linux). + tool to set the region code of your DVD drive (under Linux). Warning: You can only set the region 5 times.

    4.3 VCD playback

    For the complete list of available options, please read the man page. - The Syntax for a standard Video CD (VCD) is as followed: - mplayer -vcd <track> [-cdrom-device <device>].
    - Example: mplayer -vcd 2 -cdrom-device /dev/hdc

    + The Syntax for a standard Video CD (VCD) is as follows:

    + +

    mplayer -vcd <track> [-cdrom-device <device>]

    + +

    Example: mplayer -vcd 2 -cdrom-device /dev/hdc

    + +

    The default VCD device is /dev/cdrom. If your setup differs, + make a symlink or specify the correct device on the command line with the + -cdrom-device option.

    + +

    Note: At least Plextor and some Toshiba SCSI CD-ROM drives have + horrible performance reading VCDs. This is because the the CDROMREADRAW ioctl + is not fully implemented for these drives. If you have some knowledge of SCSI + programming, please help us implement generic + SCSI support for VCDs.

    VCD structure

    -

    VCD disks consists of 2 or more track:

    +

    VCD disks consist of one or more tracks:

    -

    About .DAT files:

    - -

    The ~600 MB file visible on the first track of the mounted vcd isn't a real - file! It's a so called iso gateway, created to allow Windows to handle such - tracks (Windows doesn't allow raw device access to applications at all). - Under linux, you cannot copy or play such files (they contain garbage). - Under Windows it is possible as its iso9660 driver emulates the raw reading of - tracks in this file. To play a .DAT file you need a kernel driver which can be - found in the Linux version of PowerDVD. It has a modified iso9660 filesystem - (vcdfs/isofs-2.4.X.o) driver, which is able to emulate the - raw tracks through this shadow .DAT file. If you mount the disc using their - driver, you can copy and even play .DAT files with mplayer. But it won't - work with the standard iso9660 driver of the kernel! It is recommended to - use the -vcd option instead. Alternate options for VCD copy are - the new cdfs kernel driver (shows CD sessions as image files) and - cdrdao (a bit-to-bit cd grabber/copier application).

    - -

    The default VCD device is /dev/cdrom. If your setup differs, - make a symlink, or specify the correct device on the command line with the - -cdrom-device option.

    +

    About .DAT files:

    + +

    The ~600 MB file visible on the first track of the mounted VCD is not a real + file! It is a so called ISO gateway, created to allow Windows to handle such + tracks (Windows does not allow raw device access to applications at all). + Under Linux you cannot copy or play such files (they contain garbage). Under + Windows it is possible as its iso9660 driver emulates the raw reading of + tracks in this file. To play a .DAT file you need the kernel driver which can + be found in the Linux version of PowerDVD. It has a modified iso9660 + filesystem (vcdfs/isofs-2.4.X.o) driver, which is able to emulate + the raw tracks through this shadow .DAT file. If you mount the disc using + their driver, you can copy and even play .DAT files with mplayer. But it + will not work with the standard iso9660 driver of the Linux kernel! + Use the -vcd option instead. Alternatives for VCD copying are + the new cdfs kernel + driver (not part of the official kernel) that shows CD sessions + as image files and cdrdao, a + bit-by-bit CD grabbing/copying application.

    -- cgit v1.2.3