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

Reply via email to