Updated documentation of CD-TEXT pack types 0x87 and 0x8f
This commit is contained in:
parent
0e5149d716
commit
3b0f6b742f
@ -224,12 +224,8 @@ sync. libburn uses the info provided by 52h READ TRACK INFORMATION.
|
||||
-------------------------------------------------------------------------------
|
||||
Guided by reading libburn/* from http://icculus.org/burn
|
||||
backed by reading mmc5r03c.pdf from http://www.t10.org/ftp/t10/drafts/mmc5/
|
||||
by reading mmc3r10g.pdf from http://www.t10.org/ftp/t10/drafts/mmc3/
|
||||
by reading source of libcdio from http://www.gnu.org/s/libcdio
|
||||
by reading tech3264.pdf from http://tech.ebu.ch/docs/tech/
|
||||
and by experiments with drives NEC ND-4570A, LG GSA-4082B, LITE-ON LTR48125S,
|
||||
Optiarc BD RW BD-5300S,
|
||||
which used in part code from http://icculus.org/burn.
|
||||
|
||||
For libburnia-project.org by Thomas Schmitt <scdbackup@gmx.net>
|
||||
|
||||
@ -410,9 +406,16 @@ Following are text packs of 18 bytes each.
|
||||
(mmc5r03c.pdf 6.26.3.7.1 table 495)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Guided by Leon Merten Lohse via libcdio-devel@gnu.org
|
||||
by reading mmc3r10g.pdf from http://www.t10.org/ftp/t10/drafts/mmc3/
|
||||
by reading tech3264.pdf from http://tech.ebu.ch/docs/tech/
|
||||
by studying output of cdtext.zip from http://www.sonydadc.com/file/
|
||||
by reading source of libcdio from http://www.gnu.org/s/libcdio
|
||||
which quotes source of cdrecord from ftp://ftp.berlios.de/pub/cdrecord/alpha
|
||||
|
||||
Format of CD-TEXT packs:
|
||||
|
||||
The format of a text pack is explained in (mmc3r10g.pdf, appendix J).
|
||||
The format of a text pack is explained in (mmc3r10g.pdf, Annex J).
|
||||
Each pack consists of a 4-bytes are header, 12 byte of payload, and 2 bytes
|
||||
of CRC.
|
||||
|
||||
@ -455,15 +458,67 @@ The CRC algorithm uses divisor 0x11021 and is known as CRC-16-CCITT.
|
||||
MMC-3 says: "All bits shall be inverted."
|
||||
|
||||
|
||||
The text packs are grouped in up to 8 blocks of at most 256 packs. Each block
|
||||
is in charge for one language. Sequence numbers of each block are counted
|
||||
separately. All packs of block 0 come before the packs of block 1.
|
||||
|
||||
The limitation of block number and sequence numbers imply that there are at
|
||||
most 2048 text packs possible. (READ TOC/PMS/ATIP could retrieve 3640 packs,
|
||||
as it is limited to 64 kB - 2.)
|
||||
|
||||
|
||||
The known information about the meaning of the pack payload is incomplete.
|
||||
|
||||
Pack types 0x80 to 0x85 and 0x8e contain 0-terminated cleartext.
|
||||
|
||||
Unclear yet: 0x86 = Disc Identification
|
||||
|
||||
Type 0x87 seems to contain 2 binary bytes and 10 bytes of 0-terminated
|
||||
cleartext.
|
||||
The two binary bytes may or may not be repeated at the start of each pack.
|
||||
They form a big-endian index to the following list (from libcdio source, which
|
||||
learned it from cdrecord source, stating "Genre codes from Enhanced CD
|
||||
Specification page 21").
|
||||
0x0000 = "Not Used"
|
||||
0x0001 = "Not Defined"
|
||||
0x0002 = "Adult Contemporary"
|
||||
0x0003 = "Alternative Rock"
|
||||
0x0004 = "Childrens Music"
|
||||
0x0005 = "Classical"
|
||||
0x0006 = "Contemporary Christian"
|
||||
0x0007 = "Country"
|
||||
0x0008 = "Dance"
|
||||
0x0009 = "Easy Listening"
|
||||
0x000a = "Erotic"
|
||||
0x000b = "Folk"
|
||||
0x000c = "Gospel"
|
||||
0x000d = "Hip Hop"
|
||||
0x000e = "Jazz"
|
||||
0x000f = "Latin"
|
||||
0x0010 = "Musical"
|
||||
0x0011 = "New Age"
|
||||
0x0012 = "Opera"
|
||||
0x0013 = "Operetta"
|
||||
0x0014 = "Pop Music"
|
||||
0x0015 = "Rap"
|
||||
0x0016 = "Reggae"
|
||||
0x0017 = "Rock Music"
|
||||
0x0018 = "Rhythm & Blues"
|
||||
0x0019 = "Sound Effects"
|
||||
0x001a = "Spoken Word"
|
||||
0x001b = "World Music"
|
||||
The meaning of the cleartext part is yet unclear. Probably it shall give
|
||||
a more specific description of the genre.
|
||||
|
||||
Type 0x8f summarizes the whole list of text packs. (Learned from libcdio.)
|
||||
The payload bytes of three packs form a 36 byte record.
|
||||
Unclear yet: 0x88 = Table of Content information
|
||||
|
||||
Unclear yet: 0x89 = Second Table of Content information
|
||||
|
||||
Type 0x8f summarizes the whole list of text packs of a block.
|
||||
So there is one group of three 0x8f packs per block.
|
||||
Nevertheless each 0x8f group tells the highest sequence number and the
|
||||
language code of all blocks.
|
||||
The payload bytes of three 0x8f packs form a 36 byte record.
|
||||
Byte :
|
||||
0 : Character code:
|
||||
0x00 = ISO-8859-1
|
||||
@ -475,6 +530,7 @@ The payload bytes of three packs form a 36 byte record.
|
||||
1 : Number of first track
|
||||
2 : Number of last track
|
||||
3 : libcdio source states: "cd-text information copyright byte"
|
||||
Probably 3 means "copyrighted", 0 means "not copyrighted".
|
||||
4 - 19 : Pack count of the various types 0x80 to 0x8f.
|
||||
Byte number N tells the count of packs of type 0x80 + (N - 4).
|
||||
I.e. the first byte in this field of 16 counts packs of type 0x80.
|
||||
@ -524,7 +580,7 @@ The payload bytes of three packs form a 36 byte record.
|
||||
0x29 = Turkish
|
||||
0x2a = Flemish
|
||||
0x2b = Wallon
|
||||
0x45 = Zuku
|
||||
0x45 = Zulu
|
||||
0x46 = Vietnamese
|
||||
0x47 = Uzbek
|
||||
0x48 = Urdu
|
||||
@ -571,7 +627,7 @@ The payload bytes of three packs form a 36 byte record.
|
||||
0x72 = Fulani
|
||||
0x73 = Dari
|
||||
0x74 = Churash
|
||||
0x75 = Chines
|
||||
0x75 = Chinese
|
||||
0x76 = Burmese
|
||||
0x77 = Bulgarian
|
||||
0x78 = Bengali
|
||||
@ -581,7 +637,7 @@ The payload bytes of three packs form a 36 byte record.
|
||||
0x7c = Assamese
|
||||
0x7d = Armenian
|
||||
0x7e = Arabic
|
||||
0x7e = Amharic
|
||||
0x7f = Amharic
|
||||
|
||||
E.g. these three packs
|
||||
42 : 8f 00 2a 00 01 01 03 00 06 05 04 05 07 06 01 02 48 65
|
||||
@ -592,7 +648,7 @@ Byte :Value Meaning
|
||||
0 : 01 = ASCII 7-bit
|
||||
1 : 01 = first track is 1
|
||||
2 : 03 = last track is 3
|
||||
3 : 00 = copyright (>>> what does this mean ?)
|
||||
3 : 00 = copyright (0 = public domain, 3 = copyrighted ?)
|
||||
4 : 06 = 6 packs of type 0x80
|
||||
5 : 05 = 5 packs of type 0x81
|
||||
6 : 04 = 4 packs of type 0x82
|
||||
@ -608,9 +664,9 @@ Byte :Value Meaning
|
||||
19 : 03 = 3 packs of type 0x8f
|
||||
20 : 2c = last sequence for block 0
|
||||
This matches the sequence number of the last text pack (0x2c = 44)
|
||||
21 : 00 00 00 00 00 00 00 = last sequence for block 1..7 (none)
|
||||
21 : 00 00 00 00 00 00 00 = last sequence numbers for block 1..7 (none)
|
||||
28 : 09 = language code for block 0: English
|
||||
29 : 00 00 00 00 00 00 00 = language code for block 1..7 (none)
|
||||
29 : 00 00 00 00 00 00 00 = language codes for block 1..7 (none)
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
What is known about mixed mode sessions :
|
||||
|
Loading…
Reference in New Issue
Block a user