Re: APIC tag description text



On 2013-03-12 18:34, Oliver Joos <oliver joos hispeed ch> wrote:
I have created test files with different APIC description texts:
1. APIC_v2.3_ASCII.mp3         APIC desc. with ASCII chars only
2. APIC_v2.3_ISO-8859-1.mp3    APIC desc. with 'äöü' (within ISO-8859-1)
3. APIC_v2.3_NoDesc.mp3        No APIC text description at all
4. APIC_v2.3_UTF-16.mp3        APIC desc. with '←→' (Unicode only)
5. APIC_v2.4_UTF-8.mp3         APIC desc. with '←→' (Unicode only)
The files are here: http://homepage.hispeed.ch/joos/oliver/APIC-Test.zip

Number 1-4 were written by EasyTAG configured to ID3v2.3/UTF-16.
Number 5 was written as ID3v2.4/UTF-8 (EasyTAG default settings).

I attached a screenshot of a diagnosis of these files using MP3 Diags:
1-3 are ok, 4+5 have issues. And (no surprise) my Nokia Symbian S60
phone shows the APIC image for file 1-3, but shows no image for 4+5!

File 5 seems fine, as the warning mentions that there is no ID3v2.3 tag present, which is expected for a file with only a v2.4 tag. File 4 seems to show evidence of a bug, but I looked at the description string in the file and it seems to be correct (UTF-16 little-endian). I will try to test this more when I have the time, as I would consider my results to be inconclusive at this stage.

So I still think that EasyTAG should add no (= empty) APIC text
descriptions by default. An optimal fix could re-encode Unicode APIC
descriptions to ISO-8859-1/TRANSLIT, at least for ID3v2.3 headers.
(Players that are fully v2.4-capable might be fine with Unicode APIC
descriptions)

ID3v2.3 allows ISO-8859-1 and UCS-2 (UTF-16 with a BOM, in practice), so there is either a bug in EasyTAG while writing UTF-16 fields in ID3v2.3 or a bug in whatever is reading those fields, and I am currently not sure which. This is unlikely to be isolated to APIC description fields, as much of the tag writing code is common among all fields, so I would rather not change any behaviour in EasyTAG until the bug is found.

I sneaked at the source: id3v24_tag.c:1010 looks interesting. But until
now I did not dare to fix it myself. I guess an EasyTAG expert is more
efficient in fixing this and won't add regressions either.

A unit test should be able to uncover the problem, but EasyTAG currently has none.

--
http://amigadave.com/

Attachment: pgpfHcHKFSDuJ.pgp
Description: PGP signature



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