Commit graph

1328 commits

Author SHA1 Message Date
Serial
7b98078317 ID3v2: Support PRIV frames 2023-07-20 12:48:06 -04:00
Serial
cd3a795956 ID3v2: Add missing From impls for FrameValue 2023-07-20 12:48:06 -04:00
Serial
9a98739b27 ID3v2: Support ETCO frames 2023-07-20 12:48:06 -04:00
Serial
0462ce7122 ID3v2: Support OWNE 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
08a0bdf540 ID3v2: Support RVA2 frames 2023-07-20 12:48:06 -04:00
Serial
3bfd28745a 0.15.0 2023-07-11 18:52:37 -04:00
Serial
3c6198bbf9 misc: Update dependencies 2023-07-11 18:52:37 -04:00
Serial
8d9c06393d lofty_attr: 0.9.0 2023-07-11 18:52:37 -04:00
Serial
c0db2db25c lofty_attr: Update dependencies 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
eb368917a9 ID3v2: Add simplified getters and setters for TXXX frames 2023-07-10 21:33:29 -04:00
Serial
7eecbbfbec Clippy: Fix needless_pass_by_value and nonminimal_bool 2023-07-10 18:18:05 -04:00
Serial
c3c01787d6 AIFF: Expose the compression type for AIFC 2023-07-10 18:18:05 -04:00
Serial
36a3561497 Clippy: Fix cast_lossless 2023-07-09 23:55:11 -04:00
Serial
c337182ee3 changelog: Add entry for WavPack multichannel fixes 2023-07-09 23:55:11 -04:00
Serial
d817a82a3a WavPack: Add support for channel mask reading 2023-07-09 23:55:11 -04:00
Serial
30b88c9e7b WavPack: Fix multichannel detection
This also fixes metadata sub block reading as a result.
2023-07-09 23:55:11 -04:00
Serial
d3bc85864a picture: Add examples to MimeType methods 2023-07-08 14:51:06 -04:00
Serial
32e34dc087 VorbisComments: Add examples to methods 2023-07-08 14:51:06 -04:00
Serial
3c0df4ca09 error: Add examples to LoftyError and FileEncodingError docs 2023-07-08 14:51:06 -04:00
Serial
502ea491f1 ID3v2: Add examples to upgrade functions 2023-07-08 14:51:06 -04:00
Serial
9e8c0a9244 changelog: Add entry for ParseOptions::max_junk_bytes 2023-07-08 12:57:40 -04:00
Serial
425fb77816 probe: Support ParseOptions::max_junk_bytes in Probe::guess_file_type 2023-07-08 12:57:40 -04:00
Serial
510f00b244 probe: Add ParseOptions::max_junk_bytes
This allows us to sift through junk bytes to find what we need.

Discovered through discussion #219.
2023-07-08 12:57:40 -04:00
Serial
1dda6d1f69 Clippy: Fix let_and_return 2023-07-05 13:18:21 -04:00
Serial
27ce6e1f49 changelog: Update for OGG changes 2023-07-05 13:18:21 -04:00
Serial
7ab9183f52 OGG: Reorder write functions 2023-07-05 13:18:21 -04:00
Serial
de62c688dd OGG: Fix clippy::trivially_copy_pass_by_ref 2023-07-05 13:18:21 -04:00
Serial
317fbb6e01 OGG: Stop silently discarding fields that are too large
Previously when writing `VorbisComments`, any field larger than `u32::MAX` would just be ignored. Now `TooMuchData` is thrown.
2023-07-05 13:18:21 -04:00
Serial
5ec7063db7 OGG: Fix reading error handling 2023-07-05 13:18:21 -04:00
Serial
273451ee4a OGG: Move VorbisComments picture creation to new function 2023-07-05 13:18:21 -04:00
Serial
983866c87f OGG: Remove unnecessary seek when writing 2023-07-05 13:18:21 -04:00
Serial
ea2cd93cda OGG: Log warnings when ignored errors occur 2023-07-05 13:18:21 -04:00
Serial
79b241d140 OGG: Stop creating an intermediary String for fields
`read_comments` would previously read the entire field into memory, create a string, split the string into `key` and `value`, do byte comparisons on both, then allocate another two strings.

Now, the String creation is saved until all validation is done. In the case of `Picture`s, no strings are created at all (in `read_comments`, anyway).
2023-07-05 13:18:21 -04:00
Serial
ee146eecbd OGG: Log a warning when a VorbisComments field has no separator 2023-07-05 13:18:21 -04:00
Serial
d3e04ff98a OGG: Stop requiring VorbisComments to be passed to read_comments 2023-07-05 13:18:21 -04:00
Serial
d711c752e7
changelog: Add entry for #214 2023-07-04 20:57:26 -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
Frieder Hannenheim
5115e432f0 Actually enable writing KeyValue frames 2023-07-04 20:52:10 -04:00
Frieder Hannenheim
07a2c3ad0d Implement matching TMCL to KeyValueFrame and rename FrameValue 2023-07-04 20:52:10 -04:00
Frieder Hannenheim
bbb4d5faa7 Update src/id3/v2/items/key_value_frame.rs
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2023-07-04 20:52:10 -04:00
Frieder Hannenheim
17c5f3711e Update src/id3/v2/frame/mod.rs
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2023-07-04 20:52:10 -04:00
Frieder Hannenheim
5e9dfb88b3 Update src/id3/v2/items/key_value_frame.rs
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2023-07-04 20:52:10 -04:00
Frieder Hannenheim
d9b4382f2b Update src/id3/v2/write/frame.rs
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2023-07-04 20:52:10 -04:00
Frieder Hannenheim
eb848678c2 fix formatting and clippy errors 2023-07-04 20:52:10 -04:00
Frieder Hannenheim
6a673dd057 - format changes
- change doc comments on KeyValueFrame
2023-07-04 20:52:10 -04:00