From 6c50829f71206f4566256e9677344fe37a141c22 Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 31 Jan 2005 09:22:35 +0000 Subject: [PATCH] Improve cdrdao grammar. More on SVCD. Minor index and other corrections. Probably the last lookover before the 0.72 release. --- doc/glossary.texi | 34 +++++++++------ doc/libcdio.texi | 108 +++++++++++++++++++++++----------------------- 2 files changed, 75 insertions(+), 67 deletions(-) diff --git a/doc/glossary.texi b/doc/glossary.texi index 32c429a6..49aacd5c 100644 --- a/doc/glossary.texi +++ b/doc/glossary.texi @@ -188,7 +188,7 @@ Media Catalog Number. A identification number on an audio CD. Also called a UPC. Another identification number is ISRC. @item MMC -@cindex MMC +@cindex MMC (Multimedia Commands) MMC (Multimedia Commands). A SCSI programming specification made by the SCSI committee T10 organization @url{http://www.t10.org/}. MMC @@ -234,12 +234,6 @@ Yet another way of issuing MMC commands for accessing a CD-ROM. As with MMC or ASPI, the CD-ROM doesn't necessarily have to be a SCSI-attached drive. See also @acronym{MMC} and @acronym{ASPI}. - -@item SPTI -@cindex SPTI - -SCSI Pass Through Interface. See SCSI Pass Through Interface - @item Session A fully readable complete recording that contains one or more tracks @@ -248,16 +242,28 @@ of computer data or audio on a CD. @item SVCD @cindex Super VCD (SVCD) -Super @acronym{VCD} @uref{http://www.dvdrhelp.com/svcd} +Super @acronym{VCD} + +An improvement of Video CD 2.0 specification which includes most +notably a switch from @acronym{MPEG}-1 (constant bit rate encoding) to +@acronym{MPEG}-2 (variable bit rate encoding) for the video stream. + +Also added was higher video-stream resolution, up to 4 overlay +graphics and text (@dfn{OGT}) sub-channels for user switchable +subtitle displaying, closed caption text, and command lists for +controlling the @acronym{SVCD} virtual machine. + +See @uref{http://www.dvdrhelp.com/svcd} @item TOC -@cindex TOC +@cindex TOC (CD Table of Contents) -Table of Contents. The TOC contains the starting track number, last -track number individual track starting time, format of track: CDDA or -CDROM. Every CD must have at least 1 TOC, the first TOC is always -recorded at the start of the CD (lead-in area). A multi-session CD -may have several TOCs. +(Compact Disc) Table of Contents. The TOC contains the starting track +number, last track number individual track starting time, and some +track flags (copy protection, linear audio preemphasis, track format: +CDDA or data). Every CD must have at least 1 TOC, the first TOC is +always recorded at the start of the CD (lead-in area). A +multi-session CD may have several TOCs. @item Track @cindex track diff --git a/doc/libcdio.texi b/doc/libcdio.texi index 1843a377..00a7f291 100644 --- a/doc/libcdio.texi +++ b/doc/libcdio.texi @@ -46,7 +46,7 @@ development.'' @titlepage @title GNU libcdio library -@subtitle $Id: libcdio.texi,v 1.35 2005/01/29 20:54:20 rocky Exp $ +@subtitle $Id: libcdio.texi,v 1.36 2005/01/31 09:22:35 rocky Exp $ @author Rocky Bernstein et al. @page @@ -669,7 +669,9 @@ format. @subsection CDRDAO Grammar -Here is a list of lexical tokens taken from the cdrdao grammar. +Below are the lexical tokens and grammar for a cdrdao TOC. It was +taken from the cdrdao's pacct grammar; the token and nonterminal names +are the same. @example #lexclass START @@ -679,7 +681,6 @@ Here is a list of lexical tokens taken from the cdrdao grammar. #token "\n" #token BeginString "\"" #token Integer "[0-9]+" -#token Index "INDEX" #tokclass AudioFile @{ "AUDIOFILE" "FILE" @} #lexclass STRING @@ -693,73 +694,73 @@ Here is a list of lexical tokens taken from the cdrdao grammar. @example -toc ::= ( "CATALOG" string | tocType )* @{ cdTextGlobal @} ( track )+ Eof + ::= ( "CATALOG" | )* @{ @} + ( )+ Eof -track ::= "TRACK" trackMode - @{ subChannelMode @} - ( "ISRC" string | @{ "NO" @} "COPY" | @{ "NO" @} "PRE_EMPHASIS" + ::= "TRACK" + @{ @} + ( "ISRC" | @{ "NO" @} "COPY" | @{ "NO" @} "PRE_EMPHASIS" | "TWO_CHANNEL_AUDIO" | "FOUR_CHANNEL_AUDIO" )* - @{ cdTextTrack @} - @{ "PREGAP" msf @} - ( subTrack | "START" | "END" )+ - ( Index msf )* + @{ @} + @{ "PREGAP" @} + ( | "START" | "END" )+ + ( "INDEX" )* -subTrack ::= - ( AudioFile string @{ "SWAP" @} @{ "#" sLong @} samples - | "DATAFILE" string @{ "#" sLong @{ dataLength @} @} - | "FIFO" string dataLength - | "SILENCE" samples - | "ZERO" @{ dataMode @} @{ subChannelMode @} dataLength - ) + ::= + AudioFile @{ "SWAP" @} @{ "#" @} + | "DATAFILE" @{ "#" @{ @} @} + | "FIFO" + | "SILENCE" + | "ZERO" @{ dataMode @} @{ @} + -string ::= BeginString ( ( String | StringQuote | StringOctal ) )+ + ::= BeginString ( String | StringQuote | StringOctal )+ EndString -stringEmpty ::= BeginString ( ( String | StringQuote | StringOctal ) )* + ::= BeginString ( String | StringQuote | StringOctal )* EndString -uLong ::= Integer + ::= Integer -sLong ::= Integer + ::= Integer -msf ::= Integer ":" Integer ":" Integer + ::= Integer ":" Integer ":" Integer -samples ::= ( msf | uLong ) + ::= | -dataLength ::= ( msf | uLong ) + ::= | -dataMode ::= ( "AUDIO" | "MODE0" | "MODE1" | "MODE1_RAW" | "MODE2" - | "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX" ) + ::= "AUDIO" | "MODE0" | "MODE1" | "MODE1_RAW" | "MODE2" + | "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX" -trackMode ::= ( "AUDIO" | "MODE1" | "MODE1_RAW" | "MODE2" - | "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX" ) + ::= "AUDIO" | "MODE1" | "MODE1_RAW" | "MODE2" + | "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX" -subChannelMode ::= ( "RW" | "RW_RAW" ) + ::= "RW" | "RW_RAW" -tocType ::= ( "CD_DA" | "CD_ROM" | "CD_ROM_XA" | "CD_I" ) + ::= "CD_DA" | "CD_ROM" | "CD_ROM_XA" | "CD_I" -packType ::= ( "TITLE" | "PERFORMER" | "SONGWRITER" | "COMPOSER" | "ARRANGER" + ::= "TITLE" | "PERFORMER" | "SONGWRITER" | "COMPOSER" | "ARRANGER" | "MESSAGE" | "DISC_ID" | "GENRE" | "TOC_INFO1" | "TOC_INFO2" | "RESERVED1" | "RESERVED2" | "RESERVED3" | "RESERVED4" | "UPC_EAN" | - "ISRC" | "SIZE_INFO" ) + "ISRC" | "SIZE_INFO" -binaryData ::= "\@{" + ::= "@{" @{ Integer ( "," Integer )* @} - "\@}" + "@}" -cdTextItem ::= packType ( stringEmpty | binaryData ) + ::= ( | ) -cdTextBlock ::= "LANGUAGE" Integer "\@{" ( cdTextItem )* "\@}" + ::= "LANGUAGE" Integer "@{" ( )* "@}" - -cdTextLanguageMap ::= - LanguageMap "\@{" + ::= + "LANGUAGE_MAP" "@{" ( Integer ":" ( Integer | "EN" ) )+ - "\@}" + "@}" -cdTextTrack ::= "CD_TEXT" "\@{" ( cdTextBlock )* "\@}" + ::= "CD_TEXT" "@{" ( )* "@}" -cdTextGlobal ::= "CD_TEXT" "\@{" @{ cdTextLanguageMap @} ( cdTextBlock )* "\@}" + ::= "CD_TEXT" "@{" @{ @} ( )* "@}" @end example @@ -1825,9 +1826,9 @@ bit misleading because a drive can understand ``SCSI MMC'' commands but not use a SCSI interface. In fact there are drivers to ``encapsulate'' non-SCSI drive or a non-MMC-compliant drive and make it act like a MMC drive. I believe that many OS SCSI ``pass-through'' -mechanisms do the same thing. +mechanisms do roughly the same thing. -The name ``SCSI MMC'' is no doubt do to the fact that these commands +The name ``SCSI MMC'' is no doubt due to the fact that these commands grew out of the SCSI command set and thus were bundled in them. For clarity and precision we will use the term ``MMC'' rather than @@ -1849,17 +1850,18 @@ standards is the variation in the commands themselves and there are perhaps two or three ways to do many of the basic commands like read a CD frame. -There seems to be a fascination in the MMC specification world with -the number of bytes a command takes. (Size matters?) So often the name -of an operation will have a suffix with the number of bytes of the -command (actually in MMC jargon this is called a ``cdb'' +There seems to be a fascination with the number of bytes a command +takes in the MMC-specification world. (Size matters?) So often the +name of an operation will have a suffix with the number of bytes of +the command (actually in MMC jargon this is called a ``cdb'' @cindex cdb (Command Descriptor Buffer) or command descriptor buffer). So for example there is a 6-byte ``MODE SELECT'' often called ``MODE SELECT 6'' and a 10-byte ``MODE SELECT'' -sometimes called ``MODE SELECT 10''. Presumably the 6-byte command -came first and it was discovered that there was some deficiency -causing the longer command. In @value{libcdio} often in the later or -more common name we drop the size suffix. +often called ``MODE SELECT 10''. Presumably the 6-byte command came +first and it was discovered that there was some deficiency causing the +longer command. In @value{libcdio} where there are two formats we add +the suffix in the name, e.g. @code{CDIO_MMC_GPCMD_MODE_SELECT_6} or +@code{CDIO_MMC_GPCMD_MODE_SELECT_10}. If the fascination and emphasis in the MMC specifications of cdb size is a bit odd, equally so is the fact that this too often has bled