Commit graph

263 commits

Author SHA1 Message Date
Serial
0b2d82b2c6 probe: Make module public, remove re-exports 2024-04-14 13:16:10 -04:00
Serial
eceb55044b picture: Make module public, remove re-exports 2024-04-14 13:16:10 -04:00
Serial
cf778c1f58 tag: Remove global re-exports of tag items 2024-04-14 13:16:10 -04:00
Serial
464f459e99 misc: Remove root file re-exports 2024-04-14 13:16:10 -04:00
Serial
65851a4f93 misc: Move {Parse,Write,Global}Options to new module 2024-04-14 13:16:10 -04:00
Serial
df0be9e53e misc: Introduce prelude 2024-04-14 13:16:10 -04:00
Serial
586f4add11 WriteOptions: Use default() instead of new() 2024-04-03 12:52:07 -04:00
Serial
f4611ca357 misc: Introduce WriteOptions
This allows the caller to tweak how Lofty writes their tags in various ways.

As this is just a dumping ground for all sorts of format-specific settings, this is best used as an application global config that gets set once.

In its current state, it will only respect `uppercase_id3v2_chunk` and `preferred_padding` (for some formats).

`respect_read_only` and `remove_others` are defined for later use.

closes #228
2024-04-03 12:52:07 -04:00
Serial
09a425e94c ID3v2: Fix overflow with large RVA2 peak
closes #295
2024-04-03 12:45:42 -04:00
Serial
ec80ae828c Tests/Benches: Fixup for new Picture::new_unchecked signature
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2023-12-18 12:36:45 -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
sublipri
f45d1d3676 ID3v2: Add test for frames with null terminators 2023-10-23 19:56:33 -04:00
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