The code pretends that RVA2 (id3v2.4) and RVAD (id3v2.3) have the same representation on byte level, which is not the case

Issue #51 new
IJabz repo owner created an issue

From https://java.net/jira/browse/JAUDIOTAGGER-362

BUG: When converting from id3v2.4 to id3v2.3 the frame bodies FrameBodyRVA2 and FrameBodyRVAD are treated as if they were the identical on the byte level. This is not the case - in fact they are quite different. This is why the trivial conversion currently implemented is invalid.

ENHANCEMENT: Furthermore, neither of the two frame bodies fully implements the tag, i.e. the contained data is not accessible.

Attached is a fully implemented FrameBodyRVA2 class (with some other changes, the diff was taken in the trunk of the project). If you're interested in importing it, it certainly needs some review and some more testing. Also, one probably needs to think about whether converting RVA2 to RVAD and vice versa makes sense at all, as they represent data that differs quite a bit.

You are right when converting from v24 to v23 its going to mess it up. however jaudiotagger lets you view data in a different as a different version and if merely viewing v23 as v24 but not converting to v24 then the fact that the bytes are left untouched means nothing is broken. We do need to convert between the two as best as we can because RVA2 is meant as a replacement for RVAD but we need to use a cleverer constructor more like we do for PIC and APIC until Ive done this extra bit of work I cant commit your patch

Comments (0)

  1. Log in to comment