libcdio-devel
[Top][All Lists]
Advanced

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

Re: [Libcdio-devel] How tolerant to be towards CD-TEXT character set mis


From: Serge Pouliquen
Subject: Re: [Libcdio-devel] How tolerant to be towards CD-TEXT character set mislabeling ?
Date: Mon, 29 Apr 2019 17:34:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Hi,


git diff
diff --git a/lib/driver/cdtext.c b/lib/driver/cdtext.c
index 868cef5..86431a4 100644
--- a/lib/driver/cdtext.c
+++ b/lib/driver/cdtext.c
@@ -711,18 +711,32 @@ cdtext_data_init(cdtext_t *p_cdtext, uint8_t *wdata, size_t i_data)            p_cdtext->block[i_block].language_code = CDTEXT_LANGUAGE_INVALID;

         /* determine encoding */
+        /* <<< only for a test of the default case <<< */
+        blocksize.charcode = 123;
         switch (blocksize.charcode){
           case CDTEXT_CHARCODE_ISO_8859_1:
-            /* default */
             charset = (char *) "ISO-8859-1";
             break;
           case CDTEXT_CHARCODE_ASCII:
-            charset = (char *) "ASCII";
+            charset = (char *) "ISO-8859-1";
             break;
           case CDTEXT_CHARCODE_SHIFT_JIS:
             charset = (char *) "SHIFT_JIS";
             break;
+          default:
+            /* Do not let charset pass here as NULL */
+            cdio_warn("CD-TEXT: Unknown character set code %u.\n",
+                      (unsigned int) blocksize.charcode);
+           charset = (char *) "ISO-8859-1";
         }
+       cdio_debug("CD-TEXT character set: code=%u , name=%s , chosen=%s\n",
+                  (unsigned int) blocksize.charcode,
+                  blocksize.charcode == 0 ? "ISO-8859-1" :
+                  blocksize.charcode == 1 ? "ASCII" :
+                  blocksize.charcode == 0x80 ? "SHIFT_JIS" :
+                  "",
+                  charset);
+

         /* set track numbers */
         p_cdtext->block[i_block].first_track = blocksize.i_first_track;



cd-info -d 9

CD Analysis Report
++ WARN: CD-TEXT: Unknown character set code 123.

--DEBUG: CD-TEXT character set: code=123 , name= , chosen=ISO-8859-1


Language 0 'English':

tried with starmania (declaring ascii using iso-8859-1) and all title and performer are good



cd-info

CD Analysis Report
++ WARN: CD-TEXT: Unknown character set code 123.


Language 0 'English':

Regards,
Serge

reply via email to

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