Updated documentation of CD-TEXT pack types 0x87 and 0x8f
This commit is contained in:
parent
3ebb2babb1
commit
cf05995c34
@ -222,14 +222,10 @@ sync. libburn uses the info provided by 52h READ TRACK INFORMATION.
|
|||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
SAO CD Cookbook
|
SAO CD Cookbook
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Guided by reading libburn/* from http://icculus.org/burn
|
Guided by reading libburn/* from http://icculus.org/burn
|
||||||
backed by reading mmc5r03c.pdf from http://www.t10.org/ftp/t10/drafts/mmc5/
|
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/
|
and by experiments with drives NEC ND-4570A, LG GSA-4082B, LITE-ON LTR48125S,
|
||||||
by reading source of libcdio from http://www.gnu.org/s/libcdio
|
Optiarc BD RW BD-5300S,
|
||||||
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>
|
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)
|
(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:
|
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
|
Each pack consists of a 4-bytes are header, 12 byte of payload, and 2 bytes
|
||||||
of CRC.
|
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."
|
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.
|
The known information about the meaning of the pack payload is incomplete.
|
||||||
|
|
||||||
Pack types 0x80 to 0x85 and 0x8e contain 0-terminated cleartext.
|
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
|
Type 0x87 seems to contain 2 binary bytes and 10 bytes of 0-terminated
|
||||||
cleartext.
|
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.)
|
Unclear yet: 0x88 = Table of Content information
|
||||||
The payload bytes of three packs form a 36 byte record.
|
|
||||||
|
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 :
|
Byte :
|
||||||
0 : Character code:
|
0 : Character code:
|
||||||
0x00 = ISO-8859-1
|
0x00 = ISO-8859-1
|
||||||
@ -475,6 +530,7 @@ The payload bytes of three packs form a 36 byte record.
|
|||||||
1 : Number of first track
|
1 : Number of first track
|
||||||
2 : Number of last track
|
2 : Number of last track
|
||||||
3 : libcdio source states: "cd-text information copyright byte"
|
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.
|
4 - 19 : Pack count of the various types 0x80 to 0x8f.
|
||||||
Byte number N tells the count of packs of type 0x80 + (N - 4).
|
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.
|
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
|
0x29 = Turkish
|
||||||
0x2a = Flemish
|
0x2a = Flemish
|
||||||
0x2b = Wallon
|
0x2b = Wallon
|
||||||
0x45 = Zuku
|
0x45 = Zulu
|
||||||
0x46 = Vietnamese
|
0x46 = Vietnamese
|
||||||
0x47 = Uzbek
|
0x47 = Uzbek
|
||||||
0x48 = Urdu
|
0x48 = Urdu
|
||||||
@ -571,7 +627,7 @@ The payload bytes of three packs form a 36 byte record.
|
|||||||
0x72 = Fulani
|
0x72 = Fulani
|
||||||
0x73 = Dari
|
0x73 = Dari
|
||||||
0x74 = Churash
|
0x74 = Churash
|
||||||
0x75 = Chines
|
0x75 = Chinese
|
||||||
0x76 = Burmese
|
0x76 = Burmese
|
||||||
0x77 = Bulgarian
|
0x77 = Bulgarian
|
||||||
0x78 = Bengali
|
0x78 = Bengali
|
||||||
@ -581,7 +637,7 @@ The payload bytes of three packs form a 36 byte record.
|
|||||||
0x7c = Assamese
|
0x7c = Assamese
|
||||||
0x7d = Armenian
|
0x7d = Armenian
|
||||||
0x7e = Arabic
|
0x7e = Arabic
|
||||||
0x7e = Amharic
|
0x7f = Amharic
|
||||||
|
|
||||||
E.g. these three packs
|
E.g. these three packs
|
||||||
42 : 8f 00 2a 00 01 01 03 00 06 05 04 05 07 06 01 02 48 65
|
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
|
0 : 01 = ASCII 7-bit
|
||||||
1 : 01 = first track is 1
|
1 : 01 = first track is 1
|
||||||
2 : 03 = last track is 3
|
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
|
4 : 06 = 6 packs of type 0x80
|
||||||
5 : 05 = 5 packs of type 0x81
|
5 : 05 = 5 packs of type 0x81
|
||||||
6 : 04 = 4 packs of type 0x82
|
6 : 04 = 4 packs of type 0x82
|
||||||
@ -608,9 +664,9 @@ Byte :Value Meaning
|
|||||||
19 : 03 = 3 packs of type 0x8f
|
19 : 03 = 3 packs of type 0x8f
|
||||||
20 : 2c = last sequence for block 0
|
20 : 2c = last sequence for block 0
|
||||||
This matches the sequence number of the last text pack (0x2c = 44)
|
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
|
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 :
|
What is known about mixed mode sessions :
|
||||||
|
Loading…
Reference in New Issue
Block a user