Skip to content

Conversation

@uklotzde
Copy link
Contributor

@uklotzde uklotzde commented Jan 11, 2023

Plain comments are supposed to have an empty description aka content descriptor. Only those must appear as ItemKey::Comment, otherwise this would cause confusion and inconsistencies during the read/write round trip.

TODO

  • How to filter the COMM frames such that only those with an empty content descriptor appear under ItemKey::Comment?
  • Test that unsupported frames with a non-empty content descriptor are preserved during a read/write round trip. Out of scope, nothing to do here. Conversions from ID3v2Tag to Tag are expected to be lossy and applications are responsible for preserving unmapped MP3 metadata frames. All operations directly on ID3v2Tag are unaffected by the changes.
@Serial-ATA
Copy link
Owner

For the TODO, the ID3v2Tag -> Tag conversion could easily be changed to only accept empty descriptors here:

FrameValue::Comment(LanguageFrame { content, .. })

The real issue is how should comments with a descriptor be stored? Currently, the descriptor just gets discarded, which definitely isn't ideal. Might have to take a similar route to the popularimeter, adding a new ItemKey and converting the LanguageFrame to binary.

Plain comments are supposed to have an empty description aka content descriptor. Only those must appear as ItemKey::Comment.
@uklotzde uklotzde marked this pull request as ready for review January 14, 2023 17:53
@Serial-ATA Serial-ATA merged commit 19fe23c into Serial-ATA:main Jan 15, 2023
@uklotzde uklotzde deleted the id3v2_comments branch January 15, 2023 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants