Commit graph

251 commits

Author SHA1 Message Date
Serial
cab578de74 MP4: Add a test for handling invalid atom types in Ilst 2023-10-17 14:12:11 -04:00
Serial
aa50837ecc Tests: Fix old Id3v2Tag tests 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
aea857cec2 Tests/Fuzz: Fix arguments to Picture::from_flac_bytes 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
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
9fdd6b610a ID3v2: Add tests for OWNE and RVA2 frame parsing 2023-07-20 12:48:06 -04:00
Serial
7b98078317 ID3v2: Support PRIV frames 2023-07-20 12:48:06 -04:00
Serial
9a98739b27 ID3v2: Support ETCO frames 2023-07-20 12:48:06 -04:00
Serial
425fb77816 probe: Support ParseOptions::max_junk_bytes in Probe::guess_file_type 2023-07-08 12:57:40 -04:00
Frieder Hannenheim
f3841a37eb Cargo fix & format 2023-07-04 20:52:10 -04:00
Frieder Hannenheim
f191df4e53 Fix test 2023-07-04 20:52:10 -04:00
Frieder Hannenheim
d4a67d0235 Add test (not working yet) 2023-07-04 20:52:10 -04:00
Serial
fb0838ba3b ID3v2: Add a test for #214 2023-07-03 16:59:33 -04:00
Serial
045874829f Tests: Add missing Musepack SV5 test 2023-06-06 10:34:37 -04:00
Serial
62190b8f9f musepack: Support SV4-SV6 property reading 2023-06-06 10:34:37 -04:00
Serial
d89250eef7 musepack: Support SV7 property reading 2023-06-06 10:34:37 -04:00
Serial
8c854d54a1 musepack: Add SV8 properties test 2023-06-06 10:34:37 -04:00
Serial
fc1186bc5a musepack: Support MPC stream version 8 2023-06-06 10:34:37 -04:00
Serial
8d696e8704 ID3v2: Convert remaining types to UpperCamelCase 2023-04-28 02:17:19 -04:00
Serial
cb01e82d07 ID3v2: Rename ID3v2Tag to Id3v2Tag 2023-04-28 02:17:19 -04:00
Serial
a6b7823d73 ID3v2: Stop eagerly allocating frame content 2023-04-23 19:21:08 -04:00
Serial
55bcd467eb ID3v2: Validate size before and after reading additional flag data 2023-04-23 15:40:41 -04:00
Serial
cf2488d5d5 MPEG: Fix subtraction by zero panic regression
Caught by `mpegfile_read_from` fuzz target, in the event that the extended header has a size >= the total tag size.

The regression was introduced in 080742d392.
2023-04-23 15:15:24 -04:00
Serial
f136610045
ID3v2: Add test for UTF-16 SYLT en/decoding 2023-04-21 22:51:59 -04:00
Serial
48df6ccae4 mpeg: Switch MPEGFile/MPEGProperties to UpperCamelCase 2023-04-21 20:35:21 -04:00
Serial
ce8c26f2b8 tag: Switch TagType variants to UpperCamelCase 2023-04-21 20:35:21 -04:00
Serial
8920a39f93 file: Switch FileType variants to UpperCamelCase 2023-04-21 20:35:21 -04:00
Serial
738784b1e9 ID3v2: Support audio-text accessibility (ATXT) frame 2023-04-16 13:16:12 -04:00
Serial
e441a36c4f Tests: Fix tests for new APIs 2023-04-14 02:44:21 -04:00
Uwe Klotz
e3fa808d96 wav: Fix issue #174 and add regression test 2023-04-06 21:20:44 -04:00
Serial
18933087d5 Tags: Make method names consistent 2023-03-18 13:48:21 -04:00
Serial
7ac4ab4cbd Clippy: Apply lints across projects 2023-03-13 20:25:35 -04:00
Serial
24b2d7d24d Tests: Fix incorrect atom size in non_full_meta_atom asset 2023-03-13 20:14:49 -04:00
Keita Kita
94f8aac840 ID3v2: Change default number from 1 to 0 for track and disk 2023-02-28 08:43:56 -05:00
Keita Kita
32ddd3b65e ID3v2: Merge number pair of track and disk while saving tag 2023-02-28 08:43:56 -05:00
Uwe Klotz
b07adbed33 Use Seek::rewind() in tests 2023-02-02 16:38:28 -05:00
Uwe Klotz
53eb2184b8 id3v2: Do not require clients to use Cow in public API 2023-01-07 12:56:50 -05:00
Uwe Klotz
738d47fd4f Reduce memory allocations for id3v2::FrameID 2023-01-07 12:56:50 -05:00
Serial
16a2419351 ID3v2: Support duplicate tags
Previously, if we were reading a file and encountered an ID3v2 tag after having already read one, we would overwrite the last one, losing all of its information. Now we preserve all of the information, overwriting frames as necessary.
2022-12-27 15:24:32 -05:00
Serial
4c5538bba0 Accessor: Make text getters return Cow<str> to allow for editing
This is an unfortunate compromise that needed to be made to make it possible to change the null separators in ID3v2.4 to slashes prior to returning the value.
2022-12-12 14:00:26 -05:00
Serial
d971615952 ID3v2: Properly handle solidus character (U+002F) in text frames
V2 and V3 allow for the separation of multiple values with the solidus (/) character, while in V4 the separator is null (0). This was not accounted for previously, and would break valid V4 strings ("Foo / Bar" would be split into "Foo " and " Bar").

closes #82
2022-12-12 14:00:26 -05:00
Serial
7573f60a0c TaggedFile: Split methods out into TaggedFileExt trait 2022-12-10 12:18:34 -05:00
Alex
02f1314005
Add support for AAC (#71) 2022-10-14 09:06:27 -04:00
Serial
afe78368c2
iff: Separate wav and aiff into their own modules 2022-10-14 08:08:12 -04:00
Serial
b2da52196a
ID3v2: Export TextEncoding in crate root 2022-10-14 08:01:00 -04:00
Serial
2ff86e6e00
ID3v2: Prevent read only tag bypass with ID3v2Tag::write_to 2022-10-13 19:37:59 -04:00
Alex
ba6ef4f400
Probe: Add minimal ParseOptions (#70) 2022-09-24 02:34:22 -04:00
Serial
1b546700d5
MPEG: Change remaining references to mp3 to mpeg 2022-08-10 14:14:21 -04:00
Serial
f3a7e4d5f1
Vorbis Comments: Don't rely on the case of METADATA_BLOCK_PICTURE
closes: #60
2022-08-03 08:33:39 -04:00