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
21a4996226
Clippy: Fix unnecessary_lazy_evaluations
2022-12-10 12:27:27 -05:00
Serial
6df1a462b9
Misc: Switch enum Default
impls to derives
2022-12-10 12:25:20 -05:00
Serial
42761e6bad
TaggedFile: Add temporary fix for save_to
breakage due to tag order
...
Depending on the order of the tags in a `TaggedFile`, since we write the tags independently of each other, they could step on each other's toes and leave the file in position where it cannot be probed. This wouldn't break the file, nor cause partial writes of tags, however there is a chance not *all* of the tags stored in the `TaggedFile` would be written.
2022-12-10 12:18:34 -05:00
Serial
c5bddba0cf
file: Add BoundTaggedFile
...
closes #73
2022-12-10 12:18:34 -05:00
Serial
7573f60a0c
TaggedFile: Split methods out into TaggedFileExt
trait
2022-12-10 12:18:34 -05:00
Serial
81e52ce347
lofty_attr: Expose LoftyFile
derive through main crate
2022-12-10 10:54:58 -05:00
Serial
ce4e2b1715
ogg_pager: Document Packets::{paginate, write_to}
2022-12-07 01:01:12 -05:00
Serial
56e1ec6b02
OGG: Remove unused code
2022-12-07 01:01:12 -05:00
Serial
62c2b72ad3
OGG: Only read necessary number of packets for format
2022-12-07 01:01:12 -05:00
Serial
2cc96f618b
OGG/Opus: Fix property reading
2022-12-07 01:01:12 -05:00
Serial
365b5c1ce3
Vorbis Comments: Fix vorbis_comments_re_read
test
2022-12-07 01:01:12 -05:00
Serial
4256bb254b
OGG: Make use of packets when writing
2022-12-07 01:01:12 -05:00
Serial
1a866c0c32
Clippy: Apply new nightly lints
2022-11-24 15:12:56 -05:00
Serial
8051fafbc8
OGG: Read entire packets instead of pages
...
This makes the handling of OGG files a lot more spec-compliant, and simpler overall.
2022-11-24 14:24:57 -05:00
Serial
a08088ddf8
FileResolver: Fix link to Probe
in docs
2022-11-24 14:24:57 -05:00
Serial
742eaa680f
Ilst: Add AtomData::Bool
for flag atoms
2022-11-09 14:14:17 -05:00
Serial
e4c0ea5579
TaggedFile: Rename take
method to remove
2022-11-09 14:12:30 -05:00
Serial
544aa7a411
TagExt: Add TagExt::contains
2022-11-05 09:54:37 -04:00
Serial
4515bf3ae2
AACProperties: Specify possible MpegVersion
variants
2022-10-28 22:18:29 -04:00
Serial
ec20ea7681
ItemKey: Fix wrong Comment
key in AIFF_TEXT_MAP
2022-10-20 23:29:00 -04:00
Serial
a50bfe911f
ItemKey: Use spaces for alignment in gen_map!
2022-10-20 23:26:46 -04:00
Serial
0039c86182
docs: Make a slightly better comment for *Properties::duration
2022-10-15 10:27:21 -04:00
Serial
c675a5eb05
docs: Stop putting doc comments below attributes
2022-10-15 10:23:35 -04:00
Serial
e579aff672
TaggedFile: Unignore some doc tests
2022-10-15 10:14:41 -04:00
hummuseater44
6415c7e67c
Fixed Capitalization On AtomData::UTF16
( #72 )
2022-10-14 22:02:39 -04:00
Ben Atkinson
49623cb570
ID3v2: populate popularimeter tag from frame value ( #64 )
...
Co-authored-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2022-10-14 09:23:33 -04:00
Alex
02f1314005
Add support for AAC ( #71 )
2022-10-14 09:06:27 -04:00
Serial
78723a7dd0
lofty_attr: Make it even harder to bypass the internal write module check
2022-10-14 08:22:53 -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
be6662ea90
VorbisComments: Make use of new supported formats list
2022-10-14 07:53:37 -04:00
Serial
fcd9cee50f
Error: Add ErrorKind::SizeMismatch
2022-10-13 19:49:32 -04:00
Serial
2ff86e6e00
ID3v2: Prevent read only tag bypass with ID3v2Tag::write_to
2022-10-13 19:37:59 -04:00
Serial
2780bf2607
docs: Split supported formats out into its own file
2022-10-11 19:51:49 -04:00
Serial
efab7ca276
lofty_attr: Add tag
attribute macro to generate some docs
2022-10-11 19:47:54 -04:00
Serial
f3d9176a48
Clippy: Satisfy uninlined_format_args
2022-10-11 04:05:27 -04:00
Serial
238b40c486
MP4: Remove trak
module
2022-10-11 03:51:13 -04:00
Serial
510079c94e
MP4: Cleanup return
2022-10-11 03:47:12 -04:00
Serial
0819b83f32
FLAC: Decouple write handling from OGG formats
2022-10-04 00:49:30 -04:00
Serial
3a4b4f243e
lofty_attr: Add supported_formats attribute for tags
2022-10-04 00:34:20 -04:00
Serial
82a498f670
lofty_attr: Infer FileType::Custom
when using non-internal names
2022-10-01 18:49:17 -04:00
Serial
f1ab92733a
Resolve: Move panic into lookup_resolver
2022-09-30 07:09:58 -04:00
Serial
0d4b907e31
Misc: Add debug logging via log
crate
2022-09-30 07:05:33 -04:00
Serial
ac420960de
FileType: Remove feature dependent returns
2022-09-29 18:20:57 -04:00
Serial
8b8f355d89
MPEG: Remove write module
2022-09-29 18:11:24 -04:00
Serial
0a628df62c
ID3v1: Cleanup tag stripping
2022-09-29 15:52:05 -04:00
Serial
3b58f16996
lofty_attr: Generate internal write modules
2022-09-24 05:25:42 -04:00
Serial
5cd1dfc99c
lofty_attr: Remove #[lofty(always_present)]
2022-09-24 03:25:46 -04:00
Alex
ba6ef4f400
Probe: Add minimal ParseOptions ( #70 )
2022-09-24 02:34:22 -04:00
Serial
08082436e2
ID3v2: Use Option<T>
for optional extra flag data
2022-09-14 21:31:29 -04:00
Serial
899f4e4664
Misc: Add decode_err!
macro to cleanup FileDecodingError
creation
2022-09-11 23:03:32 -04:00
Serial
ddffb169f7
MPEG: Fix unclear comments in BITRATES constant
2022-09-09 01:20:38 -04:00
Serial
3fa73f5065
FileProperties: Add new
method
2022-09-09 01:13:14 -04:00
Serial
14a8548e4c
docs: Remove formats table from lib.rs
2022-09-09 01:10:23 -04:00
Serial
80f21fa61d
docs: Fix links to resolve::register_custom_resolver
2022-09-09 00:59:36 -04:00
Leonid Parfentev
b347ee0fd5
MP3: Improve validation of frame headers ( #67 )
2022-09-06 17:25:58 -04:00
Serial
c9c8a5f9f3
VorbisComments: Add get_all
...
closes : #66
2022-09-04 13:42:31 -04:00
Serial
859d084dbf
ID3v2: Handle tag-wide unsynchronisation flag
2022-09-02 23:37:03 -04:00
Serial
80f29cafef
WAV: Restrict visibility of some functions
2022-08-22 22:37:45 -04:00
Serial
4eb31023a3
fmt: Fix imports
2022-08-22 22:29:01 -04:00
Serial
9e82df3893
ID3v2: Extract out util::text_utils
...
This is used in multiple other places, makes sense to just make these utils global.
2022-08-22 22:26:42 -04:00
Serial
f25ed9b6c7
ID3v2: Simply parse_popularimeter
2022-08-21 12:29:11 -04:00
Serial
1b546700d5
MPEG: Change remaining references to mp3
to mpeg
2022-08-10 14:14:21 -04:00
Jack Purvis
dbb93fbc05
Fix typo in InitialKey
key ( #61 )
2022-08-03 17:41:15 -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
81a8a616c1
Clippy: Revert assertions_on_result_states
2022-08-02 21:58:13 -04:00
Serial
a08b47bf31
Resolve: Remove remove_custom_resolver
2022-08-02 21:48:50 -04:00
Serial
390512bda3
MP4: Add Atom::push_data
2022-07-30 19:47:47 -04:00
Serial
c4fa8f99d8
MP4: Return all values in Atom::data
2022-07-30 19:41:13 -04:00
Serial
ec4fb07042
ID3v2: Expose {synch_u32, unsynch_u32}
2022-07-26 21:55:58 -04:00
Serial
efedf0f443
Resolve: FileResolver::guess
docs
2022-07-26 21:09:52 -04:00
Serial
f54481026e
lofty_attr: Use full path for TagType
2022-07-24 16:36:23 -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
85ad435898
ID3v2: Update ID3v2Tag
docs
2022-07-22 11:55:29 -04:00
Serial
edc9f6ac14
Revert "Clippy: Fix unnecessary_lazy_evaluations
"
...
This reverts commit f5153b9318
.
2022-07-21 16:31:40 -04:00
Serial
f5153b9318
Clippy: Fix unnecessary_lazy_evaluations
2022-07-21 16:23:03 -04:00
Serial
8d8158e105
ID3v2: Don't allow empty strings in Accessor::set_*
2022-07-21 16:15:43 -04:00
Serial
079885eefe
ID3v2: Properly handle TXXX/WXXX frames in Tag
-> ID3v2Tag
conversion
2022-07-21 16:11:41 -04:00
Serial
97f081fb48
Tags: Support ReplayGain keys
...
ID3v2: Properly store user defined frames after `Tag` conversion
2022-07-21 15:33:57 -04:00
Serial
69436e5c0a
Misc: Add tests and extension detection for MP1 and MP2
2022-07-18 16:04:21 -04:00
Serial
903531e07f
Tag: Add missing return
2022-07-17 13:58:27 -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
5e35896dff
Misc: Add err!
macro
2022-07-12 14:46:30 -04:00
Serial
c833e30103
APE: Stop trusting the lengths of APE tag items
2022-07-12 14:19:02 -04:00
Serial
5c5c95418c
MP4: Fix subtraction
2022-07-11 23:09:06 -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
9c35120aeb
Tag: Remove items when Accessor::set_*
is provided an empty string
2022-07-11 15:11:33 -04:00
Serial
464e78e222
IFF: Subtract header from file length
2022-07-10 18:35:07 -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
ed37d932bd
Misc: Add WavPack to supported formats
2022-07-10 16:42:48 -04:00
Serial
3a11c2b04c
MP4: Cleanup docs
2022-07-06 23:46:13 -04:00
Serial
0245b18498
Probe: Add examples to docs
2022-07-05 23:26:53 -04:00
Serial
0375a085e2
Probe: Hide paths in examples
2022-07-05 22:51:02 -04:00
Serial
e245155f99
MP4: Add test for empty ilst
2022-07-05 22:38:55 -04:00
Serial
e1c10bee66
MP4: Support property reading for files with FLAC audio
2022-07-05 13:14:09 -04:00
Serial
22bd6a7513
Tags: Add {VorbisComments, Tag}{set_picture, remove_picture}
2022-07-04 15:37:25 -04:00
Serial
b13e9d4b6c
Misc: Add future TODO for TagExt
2022-07-04 15:05:25 -04:00
Serial
c3ef4188bd
Revert "Clippy: Remove needless_borrow
allow"
...
This reverts commit f3dea13d7a
.
2022-07-03 17:44:16 -04:00
Serial
39477efe17
Clippy: fix explicit_auto_deref
2022-07-03 17:43:10 -04:00
Serial
22b84cb2be
Docs: Add examples to FileType
and TaggedFile
methods
2022-07-03 17:37:04 -04:00
Serial
f3dea13d7a
Clippy: Remove needless_borrow
allow
2022-06-29 23:06:01 -04:00
Serial
2f3400d1f2
Clippy: Remove unneeded allow
2022-06-29 23:03:31 -04:00
Serial
f4ed05ed55
AIFF: Add zero-sized text chunks test
2022-06-29 22:56:24 -04:00
Serial
f8b011bbba
WAV: Properly capitalize RIFFInfoList
2022-06-26 11:51:52 -04:00
Serial
5a30964228
AIFF: Properly capitalize AIFFTextChunks
2022-06-26 11:49:46 -04:00
Serial
a3e7a81c2e
ID3v1: Properly capitalize ID3v1Tag
2022-06-26 11:46:47 -04:00
Serial
e3132d4123
ID3v2: Properly capitalize ID3v2Tag
2022-06-26 11:44:27 -04:00
Serial
fe7f3b1d8b
ID3v2: Fix doc links
2022-06-26 11:41:02 -04:00
Serial
bb74a9fdf4
ID3v2: Properly capitalize ID3v2Version
2022-06-26 11:39:12 -04:00
Serial
a4e62d674c
ID3v2: Properly capitalize Id3v2TagFlags
2022-06-26 11:38:17 -04:00
Serial
624c441b59
ID3v2: Properly capitalize the error variants
2022-06-26 11:36:21 -04:00
Serial
efff0eb306
ID3v2: Support decoding UTF-16 T/WXXX frames with missing content BOM
...
closes #53
2022-06-25 21:21:47 -04:00
Serial
1d5d397dfa
Properties: Make bitrates reflect those of ffprobe
...
closes #54
2022-06-22 10:58:44 -04:00
Serial
f0ea177d94
AIFF: Fixed division by zero panic during property reading
...
closes #56
2022-06-21 15:31:41 -04:00
Serial
03276db157
Tags: Implement new accessor methods
2022-06-20 11:17:10 -04:00
Serial
ced003dc0a
Accessor: Improve accessor_trait!
macro for future expansion
2022-06-20 11:13:58 -04:00
Serial
eddd906ac2
ID3v2: Join artists with "/" during Tag
-> Id3v2Tag
conversion
2022-06-20 00:01:19 -04:00
Serial
5cce108346
Tag: Fix Tag::get_binary
conversion
2022-06-19 11:15:24 -04:00
Serial
d67db38d75
Tag: Rename Tag::get_texts
to Tag::get_strings
2022-06-19 11:13:29 -04:00
Serial
d4873e0878
Clippy: allow derive_partial_eq_without_eq
2022-06-19 11:09:31 -04:00
Serial
fd6655b65c
Misc: allow unused_qualifications
2022-06-19 11:00:42 -04:00
Serial
28fe204058
Accessor: Add {set_, remove_}track
2022-06-10 10:32:15 -04:00
Serial
829b3e0e95
Clippy: misc
2022-06-10 08:35:26 -04:00
Serial
fa2a263a5c
Clippy: derive_partial_eq_without_eq
2022-06-10 08:26:29 -04:00
Serial
54aee9c996
Docs: Update supported FileType
s
2022-06-10 08:21:29 -04:00
Serial
4420f92a9f
Tag: Properly capitalize TagType
variants
2022-06-07 20:00:05 -04:00
Serial
2c90093aa2
ID3v2: Insert multi-value frames separately during Tag
conversion
2022-06-07 19:26:14 -04:00
Serial
117ca51fc0
Properties: Start using ceiling division for bitrate calculation
2022-06-02 21:32:11 -04:00
Serial
6f3d569c21
WavPack: Implement property reading
2022-05-30 14:55:20 -04:00
Serial
508185c48c
WavPack: Support writing tags
2022-05-30 08:45:08 -04:00
Serial
74779369cf
WavPack: Start basic implementation
2022-05-29 22:14:40 -04:00
Serial
953e45f984
MP3: Cleanup
2022-05-18 10:56:09 -04:00
Serial
5022188b69
MP3: Continue frame search when invalid version/layer encountered
...
Closes #49
2022-05-16 13:53:37 -04:00
Serial
9c021659fc
MP3: Fix hang ( #52 )
2022-05-16 10:45:40 -04:00
Serial
5e354e9cda
AIFF: Fix AIFC verification
2022-05-15 09:50:38 -04:00
Serial
3c271236b2
MP3: Improve reverse frame sync search
2022-05-15 09:20:44 -04:00
Serial
b5478d1f1d
MP4: Support atoms with multiple values
2022-05-13 17:06:55 -04:00
Serial
3788a436af
MP3: Fix infinite loop
2022-05-10 19:15:15 -04:00
Serial
5b9b97784a
MP3: Fix duration estimation when Xing headers don't have necessary flags
2022-05-08 19:19:28 -04:00
Serial
d8ede0e60b
APE: Allow empty tag items
2022-05-08 11:21:20 -04:00
Serial
d874078610
Cleanup docs
2022-05-08 11:01:20 -04:00
Serial
f0c2252eec
Add tests for zero-size files
2022-05-07 12:13:35 -04:00
Serial
fc6b145093
ID3v2: Attempt to decode invalid COMM
languages
2022-05-07 10:24:25 -04:00
Serial
fe0462bf8a
ID3v2: Attempt to read invalid v2 frame IDs in v3 tags
2022-05-06 20:57:14 -04:00
Serial
d52076ea9a
ID3v2: Discard empty frames rather than error
2022-05-05 17:59:23 -04:00
Serial
38de51f47d
Vorbis Comments: Read vendor strings with invalid mixed encodings
2022-05-04 21:11:14 -04:00
Serial
77eec77897
FLAC: Fix property reading of zero-length files
2022-05-04 20:54:56 -04:00
Serial
22664734cf
ID3v2: Fix reading of zero size tags
2022-05-03 16:47:24 -04:00
Serial
b69d7c082f
MP4: Fix mdat
search
2022-04-30 12:58:30 -04:00
Serial
caf043a3a2
MP4: Fallback to bitrate calculation from mdat
when necessary
2022-04-29 21:12:49 -04:00
Serial
679cac6173
MP4: Fix hang when reading invalid padding
2022-04-29 20:35:40 -04:00
Serial
b1ef1f7adc
MP3: Properly validate the contents of Xing/LAME/VBRI headers
2022-04-28 17:09:08 -04:00
Alisson Lauffer
cb15ef7c1b
Recognize image/jpg
as MimeType::Jpeg
2022-04-27 18:24:48 -03:00
Serial
89ebe2ed17
Fix panic reading MP3 files with no MPEG frames
2022-04-24 16:56:13 -04:00
Serial
87315321ef
Cleanup
2022-04-13 13:28:48 -04:00
Serial
c86d71ad35
MP3/ID3v2: Fix reading of ID3v2 tags with an extended header
2022-04-09 01:58:25 -04:00
Serial
6ac0fe8f54
APE: Fix inconsistent error message
2022-04-08 22:09:13 -04:00
Serial
55389ef539
Fix doc comment
2022-04-05 18:45:44 -04:00
Serial
7ac73e40db
Attempt to get PictureInformation
during Tag
-> VorbisComments
conversion
2022-04-04 20:49:09 -04:00
Serial
065c70b176
Rename VorbisComments::remove_key
, make it return an iterator
2022-04-04 20:46:22 -04:00
Serial
afd1a6d8ef
Rename VorbisComments::{get_item, insert_item}
to VorbisComments::{get, insert}
2022-04-04 20:43:19 -04:00
Serial
6cfc10d3fe
Allow user provided PictureInformation
in VorbisComments::insert_picture
2022-04-04 20:32:11 -04:00
Serial
c989629ac1
Rename TaggedFile::remove_tag
to TaggedFile::take
2022-04-03 17:22:18 -04:00
Serial
20e1ecf62d
Implement AudioFile
for TaggedFile
2022-04-03 17:18:11 -04:00
Serial
7455f08b41
ID3v2: Stop writing a BOM for TextEncoding::UTF16BE
2022-04-01 16:54:49 -04:00
Serial
6c29852737
Add Tag::take_strings
2022-03-31 16:20:49 -04:00
Serial
cb9dd65f63
Add ItemValue::{into_string, into_binary}
2022-03-31 16:13:35 -04:00
Serial
a0e7d5519c
Add missing doc comment
2022-03-31 16:10:03 -04:00
Serial
d06ff53a5e
Cleanup
2022-03-28 19:20:33 -04:00
Serial
86a24b2032
MP4: Rename AdvisoryRating::None
2022-03-28 19:18:35 -04:00
Serial
e2d0978ce1
Allow removing ID3v2 tags from FLAC and APE
2022-03-27 14:12:32 -04:00
Serial
b41cd32677
Fix a feature issue; cleanup
2022-03-26 12:52:26 -04:00
Serial
559b5a4e34
MP4: Read the Audio Specific Config's channel config
2022-03-25 20:27:50 -04:00
Serial
c3c8e01bf4
Support the ID3v2 POPM frame
2022-03-20 12:05:38 -04:00
Serial
87d9db767d
Add missing Apple ID3v2 frame IDs to verification
2022-03-20 10:43:19 -04:00
Serial
bd680be66a
Support writing a CRC in the ID3v2 extended header
2022-03-20 00:00:23 -04:00
Serial
42990c6ca1
Remove an old forgotten feature
2022-03-19 20:52:41 -04:00
Serial
12b919871d
Add TagExt::clear
2022-03-18 15:22:40 -04:00
Serial
4b51453ce7
Update format table in lib.rs
2022-03-18 15:14:52 -04:00
Serial
a388d166ea
Fix visibility issues
2022-03-18 15:10:06 -04:00
Serial
301d457cd3
Give FLAC its own module
2022-03-18 15:06:42 -04:00
Serial
fd63099978
Wrap files in a BufReader
in read_from
2022-03-18 14:47:00 -04:00
Serial
26b0b013a7
Add more Probe
tests
2022-03-18 13:54:55 -04:00
Serial
c6d1ef505d
Support FLAC files with an ID3v2 tag
2022-03-16 16:59:55 -04:00
Serial
45182b6e3d
Fix some ItemKey
macro formatting
2022-03-12 13:07:35 -05:00
Serial
93a85b39d9
MP4: Add AudioObjectType
and Mp4Codec::MP3
2022-03-12 12:58:48 -05:00
Serial
483b3881a2
Support non-PNG/JPEG images in PictureInformation::from_picture
2022-03-12 11:35:03 -05:00
Serial
74622d6796
Add some possible TODOs
2022-03-09 21:51:14 -05:00
Serial
d530fc3133
MP4: Fix reading of sample rates for object types > 31
2022-03-09 21:38:27 -05:00
Serial
768fc8d875
Support the ALS codec for MP4; Fix MP4 property reading
2022-03-08 23:08:04 -05:00
Serial
fb0b6e0c1f
Add TagItem
methods to consume and return fields
2022-03-07 20:46:19 -05:00