mirror of
https://github.com/Serial-ATA/lofty-rs
synced 2024-11-10 14:44:22 +00:00
4.7 KiB
4.7 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
TagItem::{into_key, into_value, consume}
- MP4:
Mp4Codec::MP3
- MP4:
mp4::AudioObjectType
- This new type is used in
mp4::Mp4Properties
, accessible withMp4Properties::audio_object_type
. This provides additional information for the type of audio being dealt with.
- This new type is used in
Changed
- MP4: Sample rates are now retrieved from the audio specific config (if possible).
If the information is invalid or unavailable, the existing value from the
mp4a
box will be used instead. - Vorbis Comments: Support non-PNG/JPEG images in
PictureInformation::from_picture
- The method still only supports PNG and JPEG, but rather than error when it encounters an unknown image, it will return
PictureInformation::default
- The method still only supports PNG and JPEG, but rather than error when it encounters an unknown image, it will return
lofty::read_from
will now wrap theFile
in aBufReader
Fixed
- MP4: Non-full
meta
atoms are now properly handled.-
It is possible for these to be a regular atom (no version or flags). This information was assumed to be present and would get skipped, which would affect the reading of subsequent atoms.
This behavior has been noticed by:
-
- MP4: Properly search for
soun
atom- The search wasn't adding read bytes correctly, but tests passed due to the atom being immediately available. It would attempt to read until it reached an EOF if it managed to make it through multiple iterations.
- FLAC: Support files with an ID3v2 tag
- This will be read only just like APE, but will allow such files to be read
0.5.3 - 2022-03-03
Fixed
- OGG: Segment tables are written correctly with data spanning multiple pages (issue)
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 behaviordoc_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 inMp3Properties
- 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 correspondingmp4::AdvisoryRating
enum
Changed
- Added
#[non_exhaustive]
toMimeType
- Added
#[non_exhaustive]
toPictureType
- Added
#[non_exhaustive]
toMp4Codec
- 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 requiresInto<TaggedFile>
- MP4: Empty atoms are discarded
- MP4: Variable-size integers are shrunk when writing
Fixed
- MP4: Panic in
Mp4File::read_from
(commit) - WAV/AIFF: Chunk reading now makes use of fallible allocation, preventing OOM
- ID3v2: Text is properly encoded when writing
- ID3v2:
MVNM
andMVIN
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) - MP4:
rate
andrtng
now map to the correctItemKey
- MP4: Integer pairs are now written correctly
TagType
andFileType
are no longer taken by reference in any method
Removed
ErrorKind::BadExtension