Menu

#102 Fix build of 3.101 (utf8)

None
closed-accepted
None
5
2026-07-11
2026-07-10
No

build of 3.101 fails. below patch resolves the error.

../../libmp3lame/id3tag.c: In function 'id3tag_set_genre_utf8':
../../libmp3lame/id3tag.c:661:48: error: passing argument 4 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
  661 |     ret = id3v2_add_utf8_lng(gfp, ID_GENRE, 0, text);
      |                                                ^~~~
      |                                                |
      |                                                const short unsigned int *
../../libmp3lame/id3tag.c:221:81: note: expected 'const char *' but argument is of type 'const short unsigned int *'
  221 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text);
      |                                                                     ~~~~~~~~~~~~^~~~
...
--- a/include/lame.h    (revision 6537)
+++ a/include/lame.h    (working copy)
@@ -1303,7 +1303,7 @@
 int CDECL id3tag_set_comment_utf16(lame_t gfp, char const *lang, unsigned short const *desc, unsigned short const *text);

 /* experimental */
-int CDECL id3tag_set_textinfo_utf8(lame_t gfp, char const *id, unsigned short const *text);
+int CDECL id3tag_set_textinfo_utf8(lame_t gfp, char const *id, char const *text);

 /* experimental */
 int CDECL id3tag_set_comment_utf8(lame_t gfp, char const *lang, char const *desc, char const *text);
--- a/libmp3lame/id3tag.c       (revision 6537)
+++ a/libmp3lame/id3tag.c       (working copy)
@@ -639,7 +639,7 @@


 static int
-id3tag_set_genre_utf8(lame_t gfp, unsigned short const* text)
+id3tag_set_genre_utf8(lame_t gfp, char const* text)
 {
     lame_internal_flags* gfc = gfp->internal_flags;
     int   ret;
@@ -646,10 +646,8 @@ id3tag_set_genre_utf8(lame_t gfp, char const* text)
     if (text == 0) {
         return -3;
     }

-    if (maybeLatin1(text)) {
-        char*   latin1 = local_strdup_utf16_to_latin1(text);
-        int     num = lookupGenre(latin1);
-        free(latin1);
+    {
+        int     num = lookupGenre(text);
         if (num == -1) return -1; /* number out of range */
         if (num >= 0) {           /* common genre found  */
             gfc->tag_spec.flags |= CHANGED_FLAG;
@@ -1125,7 +1125,7 @@
 }

 int
-id3tag_set_textinfo_utf8(lame_t gfp, char const *id, unsigned short const *text)
+id3tag_set_textinfo_utf8(lame_t gfp, char const *id, char const *text)
 {
     uint32_t const frame_id = toID3v2TagId(id);
     if (frame_id == 0) {

Related

Bugs: #523

Discussion

  • Alexander Leidinger

    Fix committed in r6542.

     
  • Alexander Leidinger

    • status: open --> closed-accepted
    • Group: -->
     

Log in to post a comment.