Hi,
Thanks, this is very useful information.
> 1. emms-info-taglib trims trailing white space in strings but
> emms-info-native does not.
Is this problematic? It is easy to add trimming if needed. Maybe even
a defcustom.
> 2. emms-info-native puts dates in the year or original-year field while
> emms-info-taglib puts them in the date or orginaldate field. By date, I
> mean strings like "2003-11" which contain a month or day separated by
> hyphens. There are various places in the emms codebase which treat these
> fields differently (mainly to extract a year "2003" from a date
> "2003-10"). I suspect that emms-info-native is doing the right thing here
> (the file is tagged with id3v2.4) but it does have implications for the
> rest of the codebase.
On the contrary I suspect that emms-info-native is doing the wrong
thing. The reason is that I just added more or less randomly various
*timestamp* fields ("TDRC" "TDRL" and "TDOR") from id3v2.4 into
emms-info-native--id3v2-frame-to-info, in addition to *year* fields of
v2.3 and 2.2.
According to the 2.4 spec these fields are "a subset of ISO 8601"
timestamps. But they are put to year fields by emms-info-native. Now
when I think about it again, this is wrong, they should go to info-date
and info-originaldate.
Also emms-format-date-to-year should use iso8601-parse instead of
parse-time-string.
> 3. emms-info-native--decode-info-fields is now returning nil for the 75
> files for which it raised "id3v2 tag or frame size 3832965 is invalid"
> errors last week.
>
> For definiteness, this is emms-info-native from the info-native branch at
> commit 0fe6100
This is surprising given that you got no errors one revision earlier.
Now that there are no memory reservations made based on decoded sizes I
think we can remove these tag/frame size checks altogether.
I’ll push a new version into savannah git soon.
Thanks,
Petteri