# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.5.3] - 2022-03-03 ## Fixed - **OGG**: Segment tables are written correctly with data spanning multiple pages ## [0.5.2] - 2022-02-26 ### Added - **MP4**: `Ilst::{atoms, retain}` ### Fixed - **ID3v2**: The footer flag is written to the tag - **ID3v2**: Pictures are written when using `Tag` ## [0.5.1] - 2022-02-21 ### Changed - **MP4**: Padding atoms (`free`) are used when writing - **Opus**: Channel count is verified in accordance to the channel mapping family ### Fixed - **MP4**: `meta` atoms are written correctly ## [0.5.0] - 2022-02-20 ### Added - Support for Speex files - `TagExt` trait to unify tag behavior - `doc_cfg` feature for docs.rs - Fallible allocation with `ErrorKind::Alloc` to help prevent OOM - New dependency: `cfg-if` - **MP3**: Emphasis struct (`mp3::Emphasis`) for use in `Mp3Properties` - **ID3v2**: Respect the footer flag (`id3::v2::Id3v2TagFlags::footer`) when writing - **MP4**: Constants for all well-known data types (`mp4::constants`) - **MP4**: Support `rtng` (Parental advisory) atom, with corresponding `mp4::AdvisoryRating` enum ### Changed - Added `#[non_exhaustive]` to `MimeType` - Added `#[non_exhaustive]` to `PictureType` - Added `#[non_exhaustive]` to `Mp4Codec` - **APE**: Clarify why ID3v2 is read only - **MP3**: No longer error on missing Xing/VBRI header when reading properties - **MP3**: Read the entire MPEG frame header, which is exposed in `Mp3Properties` - `AudioFile` now requires `Into` - **MP4**: Empty atoms are discarded - **MP4**: Variable-size integers are shrunk when writing ### Fixed - **MP4**: Panic in `Mp4File::read_from` ([commit](https://github.com/Serial-ATA/lofty-rs/commit/9e18616a6882c659ba2d5ca6bdad9bf41171135d)) - **WAV/AIFF**: Chunk reading now makes use of fallible allocation, preventing OOM - **ID3v2**: Text is properly encoded when writing - **ID3v2**: `MVNM` and `MVIN` frames are now treated as text frames - **ID3v2**: Text encodings are verified for V2 tags - **MP4**: `plID` atom is properly treated as a 64-bit signed integer ([issue](https://github.com/Serial-ATA/lofty-rs/issues/34)) - **MP4**: `rate` and `rtng` now map to the correct `ItemKey` - **MP4**: Integer pairs are now written correctly - `TagType` and `FileType` are no longer taken by reference in any method ### Removed - `ErrorKind::BadExtension` [Unreleased]: https://github.com/Serial-ATA/lofty-rs/compare/41e4b1a...main [0.5.3]: https://github.com/Serial-ATA/lofty-rs/compare/6bfe845...41e4b1a [0.5.2]: https://github.com/Serial-ATA/lofty-rs/compare/d00be2c...6bfe845 [0.5.1]: https://github.com/Serial-ATA/lofty-rs/compare/a1463f3...d00be2c [0.5.0]: https://github.com/Serial-ATA/lofty-rs/compare/64f0eff...a1463f3