Improve cdrdao grammar. More on SVCD. Minor index and other corrections.
Probably the last lookover before the 0.72 release.
This commit is contained in:
@@ -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
|
||||
|
||||
108
doc/libcdio.texi
108
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
|
||||
<toc> ::= ( "CATALOG" <string> | <tocType> )* @{ <cdTextGlobal> @}
|
||||
( <track> )+ Eof
|
||||
|
||||
track ::= "TRACK" trackMode
|
||||
@{ subChannelMode @}
|
||||
( "ISRC" string | @{ "NO" @} "COPY" | @{ "NO" @} "PRE_EMPHASIS"
|
||||
<track> ::= "TRACK" <trackMode>
|
||||
@{ <subChannelMode> @}
|
||||
( "ISRC" <string> | @{ "NO" @} "COPY" | @{ "NO" @} "PRE_EMPHASIS"
|
||||
| "TWO_CHANNEL_AUDIO" | "FOUR_CHANNEL_AUDIO" )*
|
||||
@{ cdTextTrack @}
|
||||
@{ "PREGAP" msf @}
|
||||
( subTrack | "START" | "END" )+
|
||||
( Index msf )*
|
||||
@{ <cdTextTrack> @}
|
||||
@{ "PREGAP" <msf> @}
|
||||
( <subTrack> | "START" | "END" )+
|
||||
( "INDEX" <msf> )*
|
||||
|
||||
subTrack ::=
|
||||
( AudioFile string @{ "SWAP" @} @{ "#" sLong @} samples
|
||||
| "DATAFILE" string @{ "#" sLong @{ dataLength @} @}
|
||||
| "FIFO" string dataLength
|
||||
| "SILENCE" samples
|
||||
| "ZERO" @{ dataMode @} @{ subChannelMode @} dataLength
|
||||
)
|
||||
<subTrack> ::=
|
||||
AudioFile <string> @{ "SWAP" @} @{ "#" <sLong> @} <samples>
|
||||
| "DATAFILE" <string> @{ "#" <sLong> @{ <dataLength> @} @}
|
||||
| "FIFO" <string> <dataLength>
|
||||
| "SILENCE" <samples>
|
||||
| "ZERO" @{ dataMode @} @{ <subChannelMode> @} <dataLength>
|
||||
|
||||
string ::= BeginString ( ( String | StringQuote | StringOctal ) )+
|
||||
|
||||
<string> ::= BeginString ( String | StringQuote | StringOctal )+
|
||||
EndString
|
||||
|
||||
stringEmpty ::= BeginString ( ( String | StringQuote | StringOctal ) )*
|
||||
<stringEmpty> ::= BeginString ( String | StringQuote | StringOctal )*
|
||||
EndString
|
||||
|
||||
uLong ::= Integer
|
||||
<uLong> ::= Integer
|
||||
|
||||
sLong ::= Integer
|
||||
<sLong> ::= Integer
|
||||
|
||||
msf ::= Integer ":" Integer ":" Integer
|
||||
<msf> ::= Integer ":" Integer ":" Integer
|
||||
|
||||
samples ::= ( msf | uLong )
|
||||
<samples> ::= <msf> | <uLong>
|
||||
|
||||
dataLength ::= ( msf | uLong )
|
||||
<dataLength> ::= <msf> | <uLong>
|
||||
|
||||
dataMode ::= ( "AUDIO" | "MODE0" | "MODE1" | "MODE1_RAW" | "MODE2"
|
||||
| "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX" )
|
||||
<dataMode> ::= "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" )
|
||||
<trackMode> ::= "AUDIO" | "MODE1" | "MODE1_RAW" | "MODE2"
|
||||
| "MODE2_RAW" | "MODE2_FORM1" | "MODE2_FORM2" | "MODE2_FORM_MIX"
|
||||
|
||||
subChannelMode ::= ( "RW" | "RW_RAW" )
|
||||
<subChannelMode> ::= "RW" | "RW_RAW"
|
||||
|
||||
tocType ::= ( "CD_DA" | "CD_ROM" | "CD_ROM_XA" | "CD_I" )
|
||||
<tocType> ::= "CD_DA" | "CD_ROM" | "CD_ROM_XA" | "CD_I"
|
||||
|
||||
packType ::= ( "TITLE" | "PERFORMER" | "SONGWRITER" | "COMPOSER" | "ARRANGER"
|
||||
<packType> ::= "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 ::= "\@{"
|
||||
<binaryData> ::= "@{"
|
||||
@{ Integer ( "," Integer )* @}
|
||||
"\@}"
|
||||
"@}"
|
||||
|
||||
cdTextItem ::= packType ( stringEmpty | binaryData )
|
||||
<cdTextItem> ::= <packType> ( <stringEmpty> | <binaryData> )
|
||||
|
||||
cdTextBlock ::= "LANGUAGE" Integer "\@{" ( cdTextItem )* "\@}"
|
||||
<cdTextBlock> ::= "LANGUAGE" Integer "@{" ( <cdTextItem> )* "@}"
|
||||
|
||||
|
||||
cdTextLanguageMap ::=
|
||||
LanguageMap "\@{"
|
||||
<cdTextLanguageMap> ::=
|
||||
"LANGUAGE_MAP" "@{"
|
||||
( Integer ":" ( Integer | "EN" ) )+
|
||||
"\@}"
|
||||
"@}"
|
||||
|
||||
cdTextTrack ::= "CD_TEXT" "\@{" ( cdTextBlock )* "\@}"
|
||||
<cdTextTrack> ::= "CD_TEXT" "@{" ( <cdTextBlock> )* "@}"
|
||||
|
||||
cdTextGlobal ::= "CD_TEXT" "\@{" @{ cdTextLanguageMap @} ( cdTextBlock )* "\@}"
|
||||
<cdTextGlobal> ::= "CD_TEXT" "@{" @{ <cdTextLanguageMap> @} ( <cdTextBlock> )* "@}"
|
||||
@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
|
||||
|
||||
Reference in New Issue
Block a user