diff --git a/doc/cookbook.txt b/doc/cookbook.txt index 6b358a9..659469b 100644 --- a/doc/cookbook.txt +++ b/doc/cookbook.txt @@ -282,11 +282,19 @@ ADR is 01h for entries which define time points. It is 02h for media catalog entries and it is 03h for track ISRC entries. The bits of CTL and ADR are combined in the CTL|ADR byte. -TNO is the track number (1 to 99). +TNO is the track number. The TNO of the first track may be chosen in the range +of 1 to 99. The TNO of following tracks must be the TNO of their predecessor +plus 1. The last track must not have a TNO larger than 99. -INDEX is a subaddress within tracks. This recipe uses only INDEX 01h within -tracks. +INDEX is a subaddress within tracks. INDEX 1 is mandatory and marks the start +of the payload area of a track. The range between INDEX 0 and 1 is called +pre-gap. It should contain zeros if it exists. Further cue sheet entries with +consecutive INDEX numbers mark ranges within the track. The range of the last +index may contain a post-gap with zeros. (mmc5r03c.pdf 4.2.3.5.2) +A pre-gap of 2 seconds is mandatory only for the first track. Pre-gap and +post-gap may be needed with further tracks if they have neighbors with +different DATA FORM values. (Such mixing is not yet supported by libburn.) DATA FORM is 00h for audio payload, 01h for audio pause, 10h for data, 41h for CD-TEXT in Lead-in. @@ -300,7 +308,7 @@ LBA = frames - 150, 75 frames = 1 sec , 60 sec = 1 min. This address must increase from entry to entry (or at least stay equal). -The first two entries in a Cue Sheet describe the Media Catalog Number, +The first two entries in a Cue Sheet may describe the Media Catalog Number, a string of 13 characters, also known with CD-TEXT as "UPC/EAN". (02h, catalog characters 1 to 7) (02h, catalog characters 8 to 13, 00h) @@ -322,17 +330,24 @@ characters. These entries shall be omitted if no ISRC is given for the track. CTL shall be the same as with the track. -The first information track on disc is preceded by a pause encoding of 2 sec: +The first information track on disc is preceded by a pause encoding or pre-gap +of at least 2 seconds: (CTL|ADR,01h,00h, DATA FORM ,00h,00h,00h,00h) with DATA FORM = 00h for audio and 10h for data. By those 2 seconds the MSF -address increases to 00h:02h:00h = LBA 0. This entry has to come after ISRC, -if ISRC is given for the track. +address increases to 00h:02h:00h = LBA 0. Optional further sectors may occupy +addresses larger than 0. This entry has to come after ISRC, if ISRC is given +for the track. INDEX has to be 0. -Each track is represented by an entry +Each track is represented by one or more entries, with increasing index number. +At least the entry for INDEX 1 has to exist: (CTL|ADR, TNO ,01h,DATA FORM,00h, MIN , SEC , FRAME) TNO gives the track number. MIN, SEC, FRAME give the MSF address which becomes the start address of the track. The MSF address is then increased by the size of the track (to be used with next track or with lead-out). +There may be more entries with INDEX 2 to 99. Their MSF address tells the +sector where their range starts. This range ends at the MSF of the next entry +in the cue sheet. INDEX information is stored in the sub-channel of the sectors +but not in the Table-of-Content of the disc. A track must at least contain 300 payload blocks: 4 seconds of audio or 600 KiB of data.