# CD/DVD használat

## CD/DVD vezérlők

A modern CD-ROM meghajtók nagyon nagy sebességen működnek, ugyanakkor több CD-ROM képes kisebb sebességű pörgésre is. Rengeteg oka lehet annak, hogy valaki meg akarja megváltoztatni a CD-ROM meghajtó sebességét:

- Sok helyen írtak olvasási hibákról, melyek nagy sebességnél fordulnak elő, különösen rosszul nyomott CD-ROM-ok esetén. A csökkentett sebességgel megelőzheted az adatvesztést ilyen esetben.

- Sok CD-ROM idegesítően hangos, alacsonyabb sebességen kisebb a zaj.

### Linux

Az IDE CD-ROM meghajtók sebességét a `hdparm`, a `setcd` vagy a `cdctl` programmal módosíthatod. Így működnek:

    hdparm -E [sebesség] [cdrom eszköz]

    setcd -x [sebesség] [cdrom eszköz]

    cdctl -bS [sebesség]

Ha SCSI emulációt használsz, az igazi IDE eszközre vonatkozóan kell alkalmaznod a beállításokat, nem az emulált SCSI eszközre.

Ha root jogaid vannak, a következő parancs is segíthet:

    echo file_readahead:2000000 > /proc/ide/[cdrom eszköz]/settings

Ez beállítja a fájl előreolvasást 2 MB-ra, ami segít a karcos CD-ROM-ok esetében. Ha túl nagyra állítod, a meghajtó folyton felpörög majd leáll, és drasztikus módon csökkenni fog a teljesítménye. A javasolt módszer a CD-ROM meghajtó `hdparm`-mal történő beállítása:

    hdparm -d1 -a256 -u1 [cdrom eszköz]

Ez bekapcsolja a DMA elérést, az előreolvasást, és az IRQ unmasking-ot (olvasd el a `hdparm` man oldalát a bővebb magyarázatért).

Nézd meg a "`/proc/ide/`[cdrom eszköz]`/settings`" fájlt a CD-ROM tuningolásához.

A SCSI CD-ROM meghajtók sebességével is lehet trükközni az `sdparm` segítségével, 1.03 vagy újabb kell:

    sdparm --command=speed=[sebesség kB/s-ben] [cdrom eszköz]

A sebességet kilobájt/másodpercben kell megadni, a meghajtó megfelelően kerekíteni fogja. Nézd meg az sdparm man oldalát a részletekért.

Van egy dedikált segédeszköz is, ami a Plextor SCSI meghajtókkal működik.

### FreeBSD

sebesség:

    cdcontrol [-f eszköz] speed [sebesség]

DMA:

    sysctl hw.ata.atapi_dma=1

## DVD lejátszás

A használható kapcsolók teljes listájáért olvasd el a man oldalt. A szintaxis egy szabványos DVD lejátszásához a következő:

    mplayer dvd://<sáv> [-dvd-device <eszköz>]

Például:

    mplayer dvd://1 -dvd-device /dev/hdc

Ha az MPlayert dvdnav támogatással fordítottad, a szintaxis ugyan ez, kivéve, hogy dvdnav://-ot kell használnod a dvd:// helyett.

Az alapértelmezett DVD eszköz a `/dev/dvd`. Ha a te beállításod különböző, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a `-dvd-device` kapcsolóval.

Az MPlayer fel tudja használni a `libdvdread`-ot és a `libdvdcss`-t is a DVD-k lejátszásához és dekódolásához. Ez a két függvénykönyvtár megtalálható az MPlayer forrás fájában, nem kell őket külön telepítened. Használhatod a két függvénykönyvtár rendszer-szintű verzióját is, de ez nem javasolt, mivel hibák forrása lehet, a függvénykönyvtárak közötti inkompatibilítást és sebességcsökkenést okozhat.

Ha DVD dekódolási problémáid vannak, próbáld meg letiltani a supermount-ot vagy bármilyen más hasonló dolgot. Néhány RPC-2 vezérlő régió kód beállítását is megköveteli.

## DVD dekódolás

A DVD dekódolást a `libdvdcss` végzi. A módszer megadható a `DVDCSS_METHOD` környezeti változó segítségével, lásd a man oldalt.

### Régió kód

A DVD meghajtók manapság tartalmaznak egy régió kódnak nevezett értelmetlen korlátozást. Szégyen, hogy a DVD meghajtókat arra kényszerítik, hogy a hat különböző régióból, amire a világot felosztották, csak az egyikben gyártott lemezeket fogadják el. Hogy egy asztal körül ülő pár ember hogy állhatott elő egy ilyen ötlettel és hogyan várhatják el, hogy a 21. században elfogadnak egy ilyen ötletet, az minden képzeletet felülmúl.

Azok a meghajtók, amelyek a régióbeállításokat csak szoftveresen kényszerítik ki, RPC-1 meghajtókként ismertek, amelyek hardveresen teszik ugyan ezt, azok az RPC-2 meghajtók. Az RPC-2 meghajtók öt alkalommal engedik meg a régiókód megváltoztatását, mielőtt az véglegessé válna. Linux alatt a regionset eszközt használhatod a DVD meghajtód régió kódjának beállításához.

Szerencsére lehetséges az RPC-2 meghajtók RPC-1-re történő átalakítása egy firmware frissítéssel. Add meg a DVD meghajtód model számát a kedvenc kereső motorodnak vagy nézz be a "The firmware page" fórumjába és letöltési oldalára. Bár a firmware frissítésre vonatkozó figyelmeztetések itt is érvényesek, a régió kódtól történő megszabadulás általában pozitív élménnyel zárul.

## VCD lejátszás

A használható kapcsolók teljes listájáért olvasd el a man oldalt. Egy szabványos Video CD (VCD) szintaxisa a következő:

    mplayer vcd://<sáv> [-cdrom-device <eszköz>]

Például:

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

Az alapértelmezett VCD eszköz a `/dev/cdrom`. Ha a te beállításaid különbözőek, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a `-cdrom-device` kapcsolóval.

A Plextor és néhány Toshiba SCSI CD-ROM meghajtónak borzalmas a teljesítménye CVD olvasáskor. Ez azért van, mert a CDROMREADRAW `ioctl` nincs teljesen implementálva ezekben a meghajtókban. Ha ismered a SCSI programozást, kérlek segíts nekünk egy általános SCSI támogatás elkészítésében VCD-khez.

Addig is kinyerheted az adatokat a VCD-ről a readvcd segítségével, majd a kapott fájlt lejátszhatod az MPlayerrel.

## VCD struktúra

Egy Video CD (VCD) CD-ROM XA szektorokból áll, pl. CD-ROM 2-es módban 1-es és 2-es formátumú sávok:

- Az első sáv 2-es módban, 2-es formátumban van, ami azt jelenti, hogy L2 hibajavítást használ. A sáv ISO-9660 fájl rendszert tartalmaz 2048 bájt/szektorral. Ez a fájl rendszer VCD metaadat információkat tartalmaz, valamint gyakran a menükben alkalmazott képkockákat. A menük MPEG szegmensei is ezen az első sávon tárolhatóak, de az MPEG-eket fel kell osztani 150 szektoros csonkokra. Az ISO-9660 fájl rendszer tartalmazhat egyéb fájlokat vagy programokat, amik a VCD működése szempontjából nem lényegesek.

- A második és a további sávok általában nyers 2324 bájt/szektor formátumú MPEG (film) sáv, mely egy MPEG PS adat csomagot tartalmaz szektoronként. Ezek 2-es mód 1-es formátumban vannak, így több adatot tárolnak szektoronként némi hibajavítás elveszítése árán. Lehet CD-DA sáv is a VCD-n az első sáv után. Némelyik operációs rendszeren van egy kis csalás, amivel ezek a nem-ISO-9660 sávok megjelennek a fájl rendszerben. Más operációs rendszereken, például GNU/Linux-on ez nem így van (még). Itt az MPEG adat nem mountolható. Mivel a legtöbb film ilyen típusú sávon belül van, először próbáld ki a `vcd://2`-t.

- Léteznek olyan VCD lemezek is, melyeken nincs meg az első sáv (egy sáv és egyáltalán nincs fájl rendszer). Ezek szintén lejátszhatóak, de nem lehet őket becsatolni.

- A Video CD szabvány definícióját a Philips "Fehér könyv"-nek nevezte el és nem szabadon hozzáférhető, a Philipstől kell megvásárolni. A Video CD-kről sokkal részletesebb információt találhatsz a vcdimager dokumentációjában.

## A .DAT fájlokról

A becsatolt VCD első sávján látható ~600 MB fájl valójában nem igazi fájl! Ez egy úgynevezett ISO átjáró, azért hozták létre, hogy a Windows kezelni tudja ezen sávokat (a Windows semmilyen módon sem engedi a közvetlen eszköz elérést az alkalmazásoknak). Linux alatt nem tudod átmásolni vagy lejátszani az ilyen fájlokat (szemét van bennük). Windows alatt lehetséges, mivel az iso9660 vezérlője a sávok nyers olvasását emulálja ebben a fájlban. A .DAT fájlok lejátszásához szükséged lesz egy kernel vezérlőre, ami a PowerDVD Linuxos verziójában található. Ez egy módosított iso9660 fájl rendszer vezérlőt (`vcdfs/isofs-2.4.X.o`) tartalmaz, ami képes a nyers sáv emulációra ezen ál .DAT fájlon keresztül. Ha az ő vezérlőjük segítségével csatolod be a lemezt, át tudod másolni és le tudod játszani a .DAT fájlt az MPlayerrel. A Linux kernel szabványos iso9660 vezérlőjével ez nem megy! Használd a `vcd://`-t helyette. VCD másolásához alternatíva az új cdfs kernel vezérlő (nem része a hivatalos kernelnek) ami a CD meneteket kép fájlok formájában mutatja, és a cdrdao, egy bitről-bitre grabbelő/másoló program.