Problema con la codificación de metadatos en MP3 y Ogg



  • Hola 🙂


    No estoy muy seguro de si en BQ podéis hacer algo al respecto o no, porque este bug no es exclusivo del Aquaris A4.5, afecta a muchos más terminales con Android, pero el caso es que hay familias de terminales que no están afectados por este problema con lo que presumo que tiene arreglo.

    El error afecta a los metadatos ID3v2.3 e ID3v2.4 en MP3 y Vorbiscomment en Ogg. En otro tipo de metadatos en los que la codificación no se puede especificar, yo no considero que el comportamiento actual sea un error, pero en esos que cito sí. Este bug está en el componente Media Scanner de Android, que construye la base de datos de medios del sistema operativo.

    El error consiste en que el MediaScanner, en lugar de interpretar el metadato que se está leyendo usando la codificación que se especifica, intenta "adivinar" la codificación, dando un resultado erróneo.

    En ID3v2.3 y v2.4, se puede especificar la codificación del texto almacenado en un metadato, a elegir entre cuatro codificaciones: ISO-8859-1, UTF-8, UTF-16BE (sin BOM) y UCS-2. En Vorbiscomment la codificación es SIEMPRE UTF-8. Pues bien, MediaScanner ignora esa "marca" y SIEMPRE intenta adivinar la codificación, interpretando incorrectamente los datos en muchas ocasiones.

    Por ejemplo, si el autor es "Raúl" y el metadato está codificado en UTF-8, los caracteres almacenados son en realidad "Raúl". Pues bien, MediaScanner en algunas ocasiones en lugar de interpretar "Raúl", que es lo correcto, interpreta "Raúl", pensando que la codificación es ISO-8859-1 en lugar de la correcta, UTF-8 (insisto, esta codificación está marcada en los metadatos, es una clara instrucción de cómo interpretar los datos que están contenidos en los metadatos, no hay que adivinar).

    El error ya se ha notificado en AOSP, pero no se ha solucionado.

    ¿Se puede hacer algo para arreglar este problema en los Aquaris o hay que esperar a que se arregle en Android? ¡No pretendo pediros que lo arregleis en BQ!, solo quería dejar constancia de que sucede para que se informe a quien se tenga que informar.

    Muchas gracias 🙂