libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libcdio-devel] CD-Text patches


From: Thomas Schmitt
Subject: Re: [Libcdio-devel] CD-Text patches
Date: Thu, 08 Dec 2011 10:14:35 +0100

Hi,

> here, as promised, a CDTEXT file with 2 Blocks. I generated it with
> Sonys example tool, so we can rely on it.

Thanks.

Has this been tested with an audio CD player ?
Does it show both languages correctly ?
(Especially the "First track" number 2 is suspicious. See below.)


> You were right. There are only 3 BLOCKSIZE Packs in total.

Hm. I see two groups of 0x8f. One after each block.
There is a trailing 0. The file has 613 bytes after storing by my
mail client. (gzip before attaching to mail would keep the mail
handlers from tampering with the content.)

   0 : 80 00 00 00  F  r  o  s  c  h     L  i  e  d  e 4a 0a
   1 : 80 00 01 0c  r 00  F  r  o  s  c  h     H  y  m 62 43
   2 : 80 02 02 0a  n  e 00  D  a  s     F  r  o  s  c ac 0d
   3 : 80 03 03 09  h     D  u  e  t  t 00 00 00 00 00 15 a7
   4 : 81 00 04 00  H  e  r  r     F  r  o  s  c  h 00 43 b8
   5 : 81 02 05 00  H  e  r  r     F  r  o  s  c  h 00 75 00
   6 : 81 03 06 00  H  e  r  r     F  r  o  s  c  h    72 3d
   7 : 81 03 07 0c  f  t  .     O  c  h  s  e  n  f  r 48 50
   8 : 81 03 08 0f  o  s  c  h 00 00 00 00 00 00 00 00 de df
   9 : 85 00 09 00  H  e  r  r     F  r  o  s  c  h    8a a7
  10 : 85 00 0a 0c  S  i  n  g  t 00 00 00 00 00 00 00 33 cd
  11 : 86 00 0b 00  1  0  0  0  0  0  0  0  0  0  0  2 6b 5d
  12 : 86 00 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00 2f 0c
  13 : 87 00 0d 00 00 07  F  r  o  s  c  h     C  o  u 73 1f
  14 : 87 00 0e 0a  n  t  r  y 00 00 00 00 00 00 00 00 df 2e
  15 : 8f 00 0f 00 01 02 03 03 04 05 00 00 00 02 02 02 74 3e
  16 : 8f 01 10 00 00 00 00 00 00 00 00 03 11 0f 00 00 49 6f
  17 : 8f 02 11 00 00 00 00 00 08 09 00 00 00 00 00 00 4b cd
  18 : 80 00 00 10  F  r  o  g     S  o  n  g  s 00  F dc fa
  19 : 80 02 01 11  r  o  g     H  y  m  n 00  T  h  e 39 30
  20 : 80 03 02 13     F  r  o  g     D  u  e  t 00 00 16 ea
  21 : 81 00 03 10  M  r     F  r  o  g 00  M  r     F 75 1f
  22 : 81 02 04 14  r  o  g 00  M  r     F  r  o  g    4f af
  23 : 81 03 05 18  f  t  .     B  u  l  l  f  r  o  g 5f 61
  24 : 81 03 06 1f 00 00 00 00 00 00 00 00 00 00 00 00 60 0e
  25 : 85 00 07 10  T  h  e     F  r  o  g     S  i  n 46 34
  26 : 85 00 08 1c  g  s 00 00 00 00 00 00 00 00 00 00 54 93
  27 : 86 00 09 10  1  0  0  0  0  0  0  0  0  0  0  2 8b 2b
  28 : 86 00 0a 1c 00 00 00 00 00 00 00 00 00 00 00 00 32 df
  29 : 87 00 0b 10 00 07  F  r  o  g     C  o  u  n  t 36 ad
  30 : 87 00 0c 1a  r  y 00 00 00 00 00 00 00 00 00 00 5d f8
  31 : 8f 00 0d 10 00 02 03 00 03 04 00 00 00 02 02 02 c5 00
  32 : 8f 01 0e 10 00 00 00 00 00 00 00 03 11 0f 00 00 79 20
  33 : 8f 02 0f 10 00 00 00 00 08 09 00 00 00 00 00 00 7b 82

"Drei Wochen war der Frosch so krank,
 jetzt raucht er wieder. Gott sei Dank."
                         (Wilhelm Busch)

Interpreting the first group of 0x8f according to my theories:

   0 :             01 02 03 03 04 05 00 00 00 02 02 02
  12 :             00 00 00 00 00 00 00 03 11 0f 00 00
  24 :             00 00 00 00 08 09 00 00 00 00 00 00

Byte :Value Meaning
   0 : 01 = ASCII 7-bit
   1 : 02 = first track is 2
   2 : 03 = last track is 3
   3 : 03 = ? copyrighted ?
   4 : 04 = 4 packs of type 0x80
   5 : 05 = 5 packs of type 0x81
   6 : 00 = 0 packs of type 0x82
   7 : 00 = 0 packs of type 0x83
   8 : 00 = 0 packs of type 0x84
   9 : 02 = 2 packs of type 0x85
  10 : 02 = 2 pack  of type 0x86
  11 : 02 = 2 packs of type 0x87
  12 : 00 = 0 packs of type 0x88
  13 : 00 = 0 packs of type 0x89
  14 : 00 00 00 00 = 0 packs of types 0x8a to 0x8d
  18 : 00 = 0 packs of type 0x8e
  19 : 03 = 3 packs of type 0x8f
  20 : 11 = last sequence for block 0
  21 : 0f = last sequence for block 1 (although it comes after this 0x8f group)
  22 : 00 00 00 00 00 00 = last sequence for block 2..7 (none)
  28 : 08 = language code for block 0: German
  29 : 09 = language code for block 1: English
  20 : 00 00 00 00 00 00 = language code for block 2..7 (none)

Why is the number of the first track 2 and not 1 ?
Did you cause this by input to the Sony tool ?

Now for the second 0x8f group:

   0 :             00 02 03 00 03 04 00 00 00 02 02 02
  12 :             00 00 00 00 00 00 00 03 11 0f 00 00
  24 :             00 00 00 00 08 09 00 00 00 00 00 00

Byte :Value Meaning
   0 : 00 = ISO-8859-1
   1 : 02 = first track is 2
   2 : 03 = last track is 3
   3 : 00 = ? not copyrighted ?
   4 : 03 = 3 packs of type 0x80
   5 : 04 = 4 packs of type 0x81
   6 : 00 = 0 packs of type 0x82
   7 : 00 = 0 packs of type 0x83
   8 : 00 = 0 packs of type 0x84
   9 : 02 = 2 packs of type 0x85
  10 : 02 = 2 pack  of type 0x86
  11 : 02 = 2 packs of type 0x87
  12 : 00 = 0 packs of type 0x88
  13 : 00 = 0 packs of type 0x89
  14 : 00 00 00 00 = 0 packs of types 0x8a to 0x8d
  18 : 00 = 0 packs of type 0x8e
  19 : 03 = 3 packs of type 0x8f
  20 : 11 = last sequence for block 0
  21 : 0f = last sequence for block 1
  22 : 00 00 00 00 00 00 = last sequence for block 2..7 (none)
  28 : 08 = language code for block 0: German
  29 : 09 = language code for block 1: English
  20 : 00 00 00 00 00 00 = language code for block 2..7 (none)

Again, the start track is 2. Riddling ...

---------------------------------------------------------------------

Open questions:

- Why tell the 0x8f packs that Number of first track is 2 ?

- What input caused these two Disc Identification packs ?
    11 : 86 00 0b 00  1  0  0  0  0  0  0  0  0  0  0  2 6b 5d
    12 : 86 00 0c 0c 00 00 00 00 00 00 00 00 00 00 00 00 2f 0c

- Why does the copyright byte differ in both 0x8f groups ?

- Why does cdtext.cdt from libcdio show with pack type 0x87 a duplication
  of the two bytes "00 1b" in each pack
    34 : 87 00 22 00 00 1b  A  n  i  m  a  l     S  o  u ed 40
    35 : 87 00 23 0a 00 1b  n  d  z 00 00 00 00 00 00 00 b6 f1
  whereas the new example frog.cdt has cleartext at the payload start of
  the second pack
    29 : 87 00 0b 10 00 07  F  r  o  g     C  o  u  n  t 36 ad
    30 : 87 00 0c 1a  r  y 00 00 00 00 00 00 00 00 00 00 5d f8
  ?

---------------------------------------------------------------------

Ok, For now this modifies my theory in two aspects:

- There is one 0x8f group per block. But the fields "Highest sequence"
  and "Language code" govern all blocks, though.
  This explains why the 0x8f packs have a sequence number which
  they do count as part of their block, and why they bear the
  number of their block.

- The two binary bytes of pack type 0x87 are not necessarily
  repeated in each pack. But they may be repeated.

---------------------------------------------------------------------


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]