4.1.  CD-ROM drives

  From Linux documentation:

  Some CDROM drives are capable of changing their head-speed. There are several
  reasons for changing the speed of a CDROM drive. Badly pressed CDROMs may
  benefit from less-than-maximum head rate. Modern CDROM drives can obtain very
  high head rates (up to 24-times is common).  It has been reported that these
  drives can make reading errors at these high speeds, reducing the speed can
  prevent data loss in these circumstances.  Finally, some of these drives can
  make an annoyingly loud noise, which a lower speed may reduce.

  The recommended way to do it is with a program called 'setcd' . It's kinda
  old, but won't be too hard to find on the Net. (UPDATE : new hdparm
  has an option for this !)
  Use it with :


		setcd -x [speed] [cdrom device]


  Also you can try :


		echo current_speed:4 >/proc/ide/[cdrom device]/settings


  but you'll need root privileges. I use following command too :


		echo file_readahead:2000000 >/proc/ide/[cdrom device]/settings


  for 2MB prefetched reading from the file (it's useful for scratched CDROMs).
  It's recommended that you tuneup your CDROM drive also with hdparm :


		hdparm -d1 -a8 -u1 (cdrom device)


  to enable using DMA access, readahead, and IRQ unmasking.
  (if you don't understand these, *read the hdparm manpage*)

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



  4.2.  DVD drives

  IMPORTANT NOTE: please _DO_NOT_ require further features for DVD playback. This
  is extremly experimental hack. Maybe it won't work for you. If you're
  capable of helping us do it now! First we would like to fix existing problems.
  Then we can start implementing advanced DVD playback functions of course.

  This means current DVD functions are mainly for developers and not for users!

  First, you must compile and install libcss on your system.
  Second, you have to recompile MPlayer with libcss support. There is
  autodetection of libcss, but if it fails, see below :

  Call ./configure script of MPlayer with these options:

  ./configure --enable-css --with-csslibdir=/usr/local/lib --with-cssincdir=/usr/local/include

  (of course you can append your favourite options as well)

  --with-csslibdir=/usr/local/lib
	Directory contains libcss.so shared library. This directory should
	be in your /etc/ld.so.conf as well.
	
  --with-cssincdir=/usr/local/include
	Directory contains header file 'css.h' of libcss.

  mplayer -dvdauth /dev/dvd /mnt/cdrom/video_ts/vts_01_1.vob

  where,

	'-dvdauth /dev/dvd' tells MPlayer the device name of your DVD drive.
	it's used in disc authentication process

	the filename is simply a VOB file path on the disc

  Note that according to my experiences, disc authentication requires root
  privileges so you must run MPlayer as root! (see section 'Problems').

  NOTE about the sound:
	It seems that MPlayer sometimes fails to find the first audio stream.
	You can specify it with the '-aid 128' option, for example.
	Please experience with 128,129 and similar values. See section
	'Problems'.

  On my AMD K6-2 with using hw scaling and colorspace conversion
  capability of my G400 it's possible to watch DVD with about 70%
  CPU usage with '-nosound'. Unfortunately with sound my machine is
  not enough :( Maybe it can be improved somewhat ...
  Guess, it's not so bad ... According to reports from my friends
  xine uses 80-90% CPU to play DVD on much more powerful machines
  like 1GHz Athlon systems (as far as I know, it's said that about
  300MHz celeron is the minimum to watch DVDs ... using windows
  DVD viewers).

  Hint: I commented out downmix functions from libac3 (of course in this way I
  can't get sound) and audio decoding CPU usage became 11% instead of 24 on
  my machine. This clearly indicates that we should optimize downmix functions
  (KNI code is no use for my k6-2).

  HOT NEWZ:
  We have got 3Dnow optimized libac3. Wow ;-)


  Problems (TODO)

  * disc authentication (the FIBMAP ioctl) requires root privilegies.
    this is strange since OMS can do it as user too.
  * sound. I'm using my only DVD disc (The Matrix) to test MPlayer.
    some VOB file have English sound, some have Spanish and some have
    no sound at all.
    IT SEEMS that if I give '-aid 128' everything works with English sound ...
  * strange effects but only with SOME vob files (it looks like some interlacing
    effect, eg: every 2nd line on the screen is from the last frame).


  Feature TODO

  * chapter scanner
  * audio stream scanner and allow to select one on runtime as well
    (in stage#1 it would be enough to select one on the startup, see
    'Problems' above)
  * DVD menu
    I found (at least on disc 'The Matrix') the menu VOB but I don't
    know how can it be used.
    (after some eyeballing on the source of OMS, it seems we would have to
    parse *.ifo files)
  * subtitle support
  * OSD/GUI (?) support for select chapter, subtitle and audio stream
  * getting some documentation on DVD format, eg: which is the 'root' VOB
    file on the disc in video_ts directory, which is the menu and so on.
  * improve performance (see 'Performance' above)


  No sound problem (from Matrix DVD, the menu VOB)

  End of packet while searching for PCM header

  DEMUXER: Too many (2048 in 4131540 bytes) video packets in the buffer!
  (maybe you play a non-interleaved stream/file or video codec failed)
  MPEG: No Audio stream found...  ->nosound

  However this does not occur if you specify '-aid 128'.


  4.3.  DVD FAQ

  Q: I have some problem not mentioned here ...
  A: Read file 'DVD' as well.

  Q: How can I actually watch DVD with MPlayer?
  A: Ehh. Go on reading this file as well as 'DVD' (hint: you must have libcss)

  Q: So MPlayer can play DVDs? Then it must use DeCSS! You are under arrest
     under the XYZ#$ paragraph of the--
  A: Get back asshole, there is no DeCSS code in MPlayer. It links to libcss.

  Q: Seems to work but no sound.
  A: Use '-aid 128' (or try: 128,129,...) command line switch

  Q: I have got Spanish audio instead of English (or similar problems)
  A: See the last question/answer.

  Q: MPlayer complains about FIBMAP or something.
  A: Try to run MPlayer as root.

  Q: some strange effect (interlace like thing) especially when fast moving
     objects are shown in the movie
  A: known problem, we try to fix it later

  Q: DVD support in MPlayer is a piece of shit!
  A: You're probably right :) However please contact us if you can improve it!

  Q: Where can I get libcss package from?
  A: Maybe from the source of OMS (www.linuxvideo.org).

  Q: How can I ... (insert some expectable DVD player feature here)
  A: The current implementation is only for viewing VOB files from DVD.
     Nothing more, like subtitles, menus and so on.

  Q: How can I set the region code of my DVD-Drive ? I don't have windows!
  A: Use the 'regionset' tool :
     http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz

  Q: MPlayer complains about some renamed option?
  A: For future development, old '-dvd' option was replaced by '-dvdauth'.
     Option '-dvd' *WILL* do the 'full disk movie' mplaying mode.
     But until that, '-dvd' does nothing only prints error message.