Commit graph

237 commits

Author SHA1 Message Date
Serial
c606e07c62 changelog: Add entry for ID3v2 TIPL fix 2023-12-26 22:28:35 -05:00
Serial
d9f59e177b changelog: Add entry for removed None variants
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2023-12-18 12:36:45 -05:00
Serial
b89ca2a30d changelog: Add entries for ID3v2 TIPL change 2023-12-18 12:31:36 -05:00
Serial
60db8d218c ID3v2: Stop erroring on empty frames 2023-12-14 12:16:03 -05:00
Serial
90ec1e20f7 changelog: Update with MP4 changes 2023-12-05 14:32:33 -05:00
Serial
25785701bd MP4: Check if audio streams are DRM protected
Credit to `Lukáš Lalinský` for finding the location of the undocumented `drms` atom.
Source: <https://mail.kde.org/pipermail/taglib-devel/2011-March/001886.html>
2023-12-03 16:22:33 -05:00
Serial
558d7cc2f7 ID3v1: Rename GENRES[14] to "R&B" 2023-12-03 15:18:08 -05:00
Serial
f5b5dea583
0.17.1
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2023-11-26 13:31:01 -05:00
Serial
a08a7c84c1 MP4: Skip over invalid ilst atoms by default
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2023-11-20 12:20:29 -05:00
Serial
d7199f1b71
0.17.0
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2023-11-15 11:57:48 -05:00
sublipri
f1afc3efda ID3v2: Add genres method to Id3v2Tag 2023-11-04 21:57:03 -04:00
Serial
23c334e1de ID3v2: Properly handle multi-value UTF-16 encoded frames 2023-10-27 10:47:06 -04:00
sublipri
486cba1f04 ID3v2: Trim trailing nulls in some frames' content 2023-10-23 19:56:33 -04:00
Serial
776c7dadcb changelog: Update entries with PR link 2023-10-23 12:02:01 -04:00
Serial
c848e54d1f Probe: Support builder pattern for set_file_type() 2023-10-23 12:02:01 -04:00
Serial
ab828fbe15 ParseOptions: Add allocation_limit() 2023-10-23 12:02:01 -04:00
Serial
d51a151407 VorbisComments: Check ItemKey::Unknown for spec compliance in Tag conversion 2023-10-17 19:25:16 -04:00
Serial
272ba84027 ID3v1: Stop erroring on inputs smaller than 128 bytes 2023-10-17 18:16:51 -04:00
Serial
a01c114dfe MP4: Remove duplicate track/disc methods on Ilst
These came awhile before the `Accessor` methods, and managed to stick around for almost a year and a half after the fact.
2023-10-17 14:31:35 -04:00
Serial
eff0d0d9e6 MP4: Attempt to detect invalid atom identifiers
This follows the checks of TagLib: <b40b834b1b/taglib/mp4/mp4atom.cpp (L89)>.
2023-10-17 14:12:11 -04:00
Serial
b87afe4ee8
0.16.1 2023-10-15 11:41:17 -04:00
Serial
5d6160f80d 0.16.0 2023-10-01 11:23:17 -04:00
Serial
9554295e51 ID3v2: Add Id3v2Tag::get_texts 2023-10-01 11:00:05 -04:00
Serial
be6eb07c30 ID3v2: Stop using &str for frame IDs 2023-10-01 11:00:05 -04:00
Serial
4767f5da08 ID3v2: Don't expect text frames to be terminated 2023-10-01 10:19:18 -04:00
Serial
9ae927ceb0 FLAC: Don't error by default on invalid picture types
FLAC picture blocks have `u32::MAX` possible picture types, but only 20 are actually defined. In the [spec] it states, "Others are reserved and should not be used."

We used to only allow a picture type of up to 255 to be in sync with ID3v2's APIC, where this model comes from. Now any picture type can be specified and it will just be clamped to 255, so long as `ParsingMode::Strict` is not being used.
2023-09-30 13:50:05 -04:00
Serial
15d9ca812c OGG: Support reading COVERART fields 2023-09-30 13:50:05 -04:00
Serial
553d16fa88 APE: Fix property reading on old stream versions
This also makes property reading take `ParsingMode` into account.
2023-07-28 13:14:56 -04:00
Serial
6cab8aa088 WavPack: Stop overwriting custom sample rates
When a custom sample rate (or multiplier) was encountered, it would accidentally be overwritten with 0, causing incorrect duration and bitrate values.

This was due to us reading the metadata sub blocks first (when necessary) and then immediately overwriting the sample rate with the value from the block header (which is 0 in the presence of a custom sample rate).
2023-07-27 16:45:04 -04:00
Serial
5eb032a3d4 FLAC: Do not error on multiple VorbisComments when not strict
This is not allowed [by spec](https://xiph.org/flac/format.html#def_VORBIS_COMMENT), but is still possible to encounter in the wild. Now we will just tag whichever tag happens to be latest in the stream and use it, they **will not be merged** like other formats (such as ID3v2 in MP3) where multiple tags are valid.
2023-07-27 05:18:42 -04:00
Serial
e622a671a7 MP4: Merge existing atoms in Ilst::insert
Now, when inserting an atom that already exists in a tag, the data is taken from the provided atom and merged with the existing value in the tag. This should ensure that the value that already exists in the tag will remain the dominant one.
2023-07-25 17:11:36 -04:00
Serial
1a8ea4da77 changelog: Add entries for MP4 changes 2023-07-25 17:11:36 -04:00
Serial
3fe1de57cd changelog: Add entries for Id3v2Tag and FrameId changes 2023-07-21 02:52:49 -04:00
Serial
18d6efb4f2 changelog: Add entries for new supported ID3v2 frames 2023-07-20 12:48:06 -04:00
Serial
aa741e11a4 ID3v2: Remove frames that are meant to appear once
The spec defines multiple frames that are only meant to appear in a tag once. They are the following: "MCDI", "ETCO", "MLLT", "SYTC", "RVRB", "PCNT", "RBUF", "POSS", "OWNE", "SEEK", and "ASPI".

We now check for their presence in `Id3v2::insert` to prevent multiple appearing in a tag.
2023-07-20 12:48:06 -04:00
Serial
3bfd28745a 0.15.0 2023-07-11 18:52:37 -04:00
Serial
cc338a3bc5 ID3v2: Add Id3v2Tag::remove_user_text 2023-07-10 21:33:29 -04:00
Serial
58cad46d8d changelog: Add entry for ID3v2 TXXX getter and setter 2023-07-10 21:33:29 -04:00
Serial
c3c01787d6 AIFF: Expose the compression type for AIFC 2023-07-10 18:18:05 -04:00
Serial
c337182ee3 changelog: Add entry for WavPack multichannel fixes 2023-07-09 23:55:11 -04:00
Serial
9e8c0a9244 changelog: Add entry for ParseOptions::max_junk_bytes 2023-07-08 12:57:40 -04:00
Serial
27ce6e1f49 changelog: Update for OGG changes 2023-07-05 13:18:21 -04:00
Serial
d711c752e7
changelog: Add entry for #214 2023-07-04 20:57:26 -04:00
Serial
ac3f0effbf
changelog: Update for #212 and #214 2023-07-03 20:29:21 -04:00
Serial
d4af6535ba APE: Properly convert track/disk number pairs when writing
This also changes the default track/disk number to `DEFAULT_NUMBER_IN_PAIR`.

closes #159
2023-07-03 20:07:06 -04:00
Serial
bbfaa27085
0.14.0 2023-06-08 14:35:28 -04:00
Serial
1fb0aaacc5 changelog: Add entry for Musepack support 2023-06-06 10:34:37 -04:00
Serial
3e72761970
ID3v2: Remove unused id3::util::synchsafe::unsynch_content 2023-06-04 23:21:22 -04:00
Serial
ea0e16ce7f changelog: Add entry for allocation limit change 2023-06-04 13:07:30 -04:00
Serial
6e555d1cb6 changelog: Add entry for ParsingMode::BestAttempt 2023-06-03 13:36:02 -04:00