Releases: Serial-ATA/lofty-rs
0.17.1
What's Changed
- MP4: Skip over invalid ilst atoms by default by @Serial-ATA in #292
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0171---2023-11-26
0.17.0
What's Changed
- MP4: Attempt to detect invalid atom identifiers by @Serial-ATA in #267
- MP4: Remove duplicate track/disc methods on
Ilst
by @Serial-ATA in #269 - Improve
Tag
conversion docs by @Serial-ATA in #271 - VorbisComments: Check
ItemKey::Unknown
for spec compliance by @Serial-ATA in #272 - ParseOptions: Add
ParseOptions::allocation_limit
by @Serial-ATA in #276 - ID3v2: Trim null terminators when reading some frames by @sublipri in #275
- Strip trailing null characters from decoded text by @uklotzde in #282
- ID3v2: Properly handle multi-value UTF-16 encoded frames by @Serial-ATA in #284
- ID3v2: Handle genre IDs in TCON frames by @sublipri in #286
New Contributors
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0170---2023-11-14
0.16.1
What's Changed
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0161---2023-10-15
0.16.0
What's Changed
- ID3v2: Report bad or unsupported frame IDs by @uklotzde in #212
- ID3v2: Ignore frames with bad IDs while reading by @uklotzde in #214
- APE: Properly convert track/disk number pairs when writing by @Serial-ATA in #216
- Support 'Involved People List' Id3v2 frame by @FriederHannenheim in #215
- OGG: Cleanup and fixes by @Serial-ATA in #220
- probe: Add
ParseOptions::max_junk_bytes
by @Serial-ATA in #227 - WavPack: Fix multichannel detection by @Serial-ATA in #230
- AIFF: Expose the compression type for AIFC by @Serial-ATA in #231
- ID3v2: Add simplified getters and setters for TXXX frames by @Serial-ATA in #232
- ID3v2: Support more frames by @Serial-ATA in #236
- ID3v2: Make FrameId less annoying by @Serial-ATA in #237
- MP4: Correctness fixes by @Serial-ATA in #241
- MP4: Fix integer shrinking by @Serial-ATA in #243
- FLAC: Do not error on multiple VorbisComments when not strict by @Serial-ATA in #242
- WavPack: Stop overwriting custom sample rates by @Serial-ATA in #244
- APE: Fix property reading on old stream versions by @Serial-ATA in #245
- OGG: Support reading COVERART fields/Make FLAC pictures less strict by @Serial-ATA in #254
- ID3v2: Don't expect text frames to be terminated by @Serial-ATA in #256
- ID3v2: Use FrameId for Id3v2Tag getters by @Serial-ATA in #257
New Contributors
- @FriederHannenheim made their first contribution in #215
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0160---2023-10-01
0.15.0
What's Changed
- ID3v2: Report bad or unsupported frame IDs by @uklotzde in #212
- ID3v2: Ignore frames with bad IDs while reading by @uklotzde in #214
- APE: Properly convert track/disk number pairs when writing by @Serial-ATA in #216
- Support 'Involved People List' Id3v2 frame by @FriederHannenheim in #215
- probe: Add
ParseOptions::max_junk_bytes
by @Serial-ATA in #227 - WavPack: Fix multichannel detection by @Serial-ATA in #230
- AIFF: Expose the compression type for AIFC by @Serial-ATA in #231
- ID3v2: Add simplified getters and setters for TXXX frames by @Serial-ATA in #232
New Contributors
- @FriederHannenheim made their first contribution in #215
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0150---2023-07-11
0.14.0
What's Changed
- MP4: Fix parsing of plID atoms with incorrect codes by @Serial-ATA in #202
- probe: Add new default ParsingMode variant by @Serial-ATA in #205
- misc: Add allocation limit to
try_vec!
by @Serial-ATA in #207 - Support Musepack files by @Serial-ATA in #200
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0140---2023-06-08
0.13.0
What's Changed
- ID3v2: Remove
ID3v2ErrorKind::Other
by @Serial-ATA in #176 - Add MusicBrainzArtistId/-ReleaseArtistId/-WorkId item keys by @uklotzde in #182
- tag: Check for and remove empty item values by @uklotzde in #181
- Add missing mappings for Barcode and CatalogNumber by @uklotzde in #183
- ID3v2: Allow creation of more synchsafe integer types by @Serial-ATA in #187
- ID3v2: Create more concrete types for
FrameValue
variants by @Serial-ATA in #184 - ID3v2: Support audio-text accessibility (ATXT) frame by @Serial-ATA in #188
- Follow Rust API naming conventions by @Serial-ATA in #190
- ID3v2: Properly handle compressed frames by @Serial-ATA in #191
- ID3v2: Remove unnecessary allocations by @Serial-ATA in #194
- ID3v1/ID3v2: Convert remaining types to UpperCamelCase by @Serial-ATA in #195
- ID3v2: Flatten SynchronizedText and GeneralEncapsulatedObject by @Serial-ATA in #196
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0130---2023-05-08
0.12.1
What's Changed
- wav: Fix division by zero for empty stream by @uklotzde in #175
- ID3v2: Fix missing exports by @Serial-ATA in #177
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0121---2023-04-10
0.12.0
What's Changed
- Remove special case handling of empty string values by @uklotzde in #134
- id3v2: Avoid allocation of FrameID by @uklotzde in #136
- More robust year parsing without allocations by @uklotzde in #139
- ID3v2: Fix conversion of user defined frames when using
Tag
writing interface by @Serial-ATA in #142 - Remove cfg-if dependency by @Serial-ATA in #146
- Vorbis: Add mapping for InitialKey by @uklotzde in #156
- ID3v2: Fix about number pair of track and disk by @mikanbako in #149
- Fix clippy::let_underscore_untyped by @uklotzde in #158
- Expose channel mask in file properties by @uklotzde in #155
- v0.12.0: Separate SplitAndMergeTag into SplitTag/MergeTag for compile-time safety by @uklotzde in #143
- Add support for selected MusicBrainz identifiers by @uklotzde in #161
- ID3v2: Add support for MusicBrainzRecordingId by @uklotzde in #162
- MP4: Improve parser/Cleanup/Fix
moov.udta.meta
writing by @Serial-ATA in #163 - WavPack: Add missing getter for bit depth by @Serial-ATA in #167
- WavPack: Fix property reading by @Serial-ATA in #168
- VorbisComments: Verify keys prior to insertion by @Serial-ATA in #169
- Tags: Add a
<Tag>::new()
alias for<Tag>::default()
by @Serial-ATA in #170 - Tags: Make method names consistent by @Serial-ATA in #171
- picture: add
into_data()
by @hinto-janai in #173
New Contributors
- @mikanbako made their first contribution in #149
- @hinto-janai made their first contribution in #173
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0120---2023-04-04
0.11.0
What's Changed
- gitignore: Support symbolic link for target directory by @uklotzde in #92
- Add support for common MP4 atoms by @uklotzde in #93
- Vorbis: Extend Vorbis Comment support by @uklotzde in #94
- MP4: Allow to create
AtomIdent
constants with 'static lifetime by @uklotzde in #95 - MP4: Implement
TryFrom<ItemKey>
forAtomIdent
by @Serial-ATA in #96 - Remove obsolete metadata format features by @Serial-ATA in #97
- mp4: Add new item key AppleXID by @uklotzde in #98
- Add Director item by @uklotzde in #100
- ItemKey: Add
ItemKey::Color
by @Serial-ATA in #101 - mp4: Map FlagCompilation to text "0"/"1" by @uklotzde in #103
- AudioFile: Add
AudioFile::save_to{_path}
by @Serial-ATA in #104 - Files: Add
<File>::set_{tag}
by @Serial-ATA in #105 - ID3v2: Reduce memory allocations for
FrameID
by @uklotzde in #102 - Tags: Improve handling of
Year
tag by @Serial-ATA in #108 - FLAC: Add
FlacProperties
by @Serial-ATA in #109 - FLAC: Store pictures separately from the
VorbisComments
tag by @Serial-ATA in #110 - id3v2: Use "XXX" if the actual language is unknown by @uklotzde in #112
- Use
#[must_use] pub const fn new(...)
whenever possible by @uklotzde in #116 - mp4: Write integer bpm by @uklotzde in #114
- build(deps): update base64 requirement from 0.20.0 to 0.21.0 by @dependabot in #111
- mp4: Implement IntoIterator for Ilst by @uklotzde in #115
- Use new naming convention for AppleXid by @uklotzde in #117
- Disambiguate ID3v2 TIT1/GRP1 by @uklotzde in #118
- Fix base64 deprecation warnings by @uklotzde in #119
- TagExt: Add
TagExt::len
by @Serial-ATA in #122 - id3v2: Consistent handling of three-letter language codes by @uklotzde in #124
- Fix and complete work/movement support by @uklotzde in #123
- Add more IntoIterator implementations by @uklotzde in #120
- mp4: More robust parsing and updated mapping of
rtng
atom by @uklotzde in #125 - RIFF: Support year
Accessor
methods inRIFFInfoList
by @Serial-ATA in #126 - id3v2: Retain frames by predicate by @uklotzde in #129
- Add conversions between borrowed/owned data by @uklotzde in #128
- ogg: Add a consuming iterator over all items by @uklotzde in #127
- id3v2: Distinguish COMM frames by content descriptor by @uklotzde in #121
- Split and rejoin tags for read/modify/write round trips by @uklotzde in #132
- OGG: Properly handle large packets by @Serial-ATA in #131
New Contributors
Full Changelog: https://github.com/Serial-ATA/lofty-rs/blob/main/CHANGELOG.md#0110---2022-1-29