Commit graph

232 commits

Author SHA1 Message Date
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
Serial
0805e6683b
MP3: Rename MP3File to MPEGFile 2022-07-24 16:28:28 -04:00
Serial
da45191187
ID3v2: Change LanguageFrame.lang's type to [u8; 3] 2022-07-24 16:21:18 -04:00
Serial
790e175b30
TaggedFile: Stop taking references to TagType 2022-07-24 16:14:42 -04:00
Alex
f48014fda8
Implement custom file resolvers (#40) 2022-07-24 16:08:46 -04:00
Serial
69436e5c0a
Misc: Add tests and extension detection for MP1 and MP2 2022-07-18 16:04:21 -04:00
Serial
2089e3deab
WavPack: Add fuzz tests (already fixed) 2022-07-12 21:23:37 -04:00
Serial
7f71053e52
OGG: Add length validation to Vorbis Comments reading 2022-07-12 21:17:18 -04:00
Serial
19cef0400e
FLAC: Return early when encountering invalid zero-sized blocks 2022-07-12 21:01:12 -04:00
Serial
c833e30103
APE: Stop trusting the lengths of APE tag items 2022-07-12 14:19:02 -04:00
Serial
542f7dabc7
MP4: Better handle invalid atom sizes 2022-07-11 23:01:17 -04:00
Serial
d298199a07
Vorbis Comments: Add zero-sized test 2022-07-11 17:04:40 -04:00
Serial
2f62ff9b60
PictureInformation: Fix potential overflowing addition in from_png 2022-07-11 16:57:03 -04:00
Serial
f99a587391
PictureInformation: Fix potential overflowing subtraction in from_jpeg 2022-07-11 16:52:52 -04:00
Serial
1f432b9b36
Tests: Add TODOs for other fuzz tests 2022-07-10 18:35:45 -04:00
Serial
10b8462e7a
WAV: Stop relying on file's provided size (Fix OOM) 2022-07-10 18:30:12 -04:00
Serial
8a70a77387
AIFF: Stop relying on file's provided size (Fix OOM) 2022-07-10 18:16:31 -04:00
Serial
8ee268b188
Tests: Add empty fuzz tests 2022-07-10 17:15:31 -04:00
Serial
fa7920638a
Test: Verify we can read zero-sized files with properties=false 2022-07-05 22:40:15 -04:00
Serial
e245155f99
MP4: Add test for empty ilst 2022-07-05 22:38:55 -04:00