Commit graph

670 commits

Author SHA1 Message Date
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
Serial
e58355af74
Remove unnecessary clone 2022-03-07 19:16:12 -05:00
Serial
d86e007fe7
Handle non-full meta atoms 2022-03-06 13:17:16 -05:00
Serial
0920cb2cda
Add a test for issue #37 2022-03-05 11:55:41 -05:00
Serial
1771985467
Missing files 2022-03-04 09:08:13 -05:00
Serial
b6221c18b2
Remove types module 2022-03-04 09:07:17 -05:00
Serial
41e4b1a883
Bump ogg_pager 2022-03-03 17:04:34 -05:00
Serial
6bfe8453a0
Add Ilst::{atoms, retain}, relocate ApeTag 2022-02-25 20:38:58 -05:00
Serial
c029a688e1
Update changelog 2022-02-24 16:07:26 -05:00
Serial
689e5fb28b
Fix ID3v2 picture writing after Tag conversion 2022-02-24 16:05:32 -05:00
Serial
d10c7de04b
Actually write the footer flag to the tag 2022-02-23 17:13:48 -05:00
Serial
de8bc33f22
Utilize the channel mapping family to verify Opus channel counts 2022-02-21 13:10:42 -05:00
Serial
be4e2a9866
Utilize free atoms when writing; Fix meta atom writing 2022-02-20 18:00:00 -05:00
Serial
2b2b6d2532
Add some more lints 2022-02-20 17:46:58 -05:00
Serial
03a8ee8e2a
Remove some unused attributes 2022-02-20 09:10:29 -05:00
Serial
0092137b2f
Verify that the encoding is valid in ID3v2.2 2022-02-20 08:59:52 -05:00
Serial
dba7fbaa8c
Add missing proprietary Apple ID3v2 frames 2022-02-19 20:06:46 -05:00
Serial
dde40b78db
Fix MP4 integer pair writing 2022-02-19 19:48:19 -05:00
Serial
99d4bdc9c2
Don't allow writing an ID3v2 footer in WAV/AIFF 2022-02-19 10:42:18 -05:00
Serial
e01d875e05
Remove unwraps; Stop taking references to Copy types 2022-02-19 10:14:14 -05:00
Serial
55cc5e5264
fmt 2022-02-19 09:41:36 -05:00
Serial
e66ab4587d
Finalize Accessor and TagExt documentation 2022-02-19 09:39:09 -05:00
Serial
74b4374172
Don't write 3 byte integers 2022-02-19 08:44:34 -05:00
Serial
9150c6c547
Shrink variable-size integers when writing 2022-02-19 01:03:26 -05:00
Serial
69b4e2307f
Discard empty atoms 2022-02-19 00:32:16 -05:00
Serial
610778b8c2
Fix some macro formatting 2022-02-18 23:39:50 -05:00
Serial
a5c66c5d36
Fix popularimeter/parental advisory mixup 2022-02-18 23:33:20 -05:00
Serial
4c0b7c2273
Add rtng atom support 2022-02-18 08:50:39 -05:00
Serial
c70e8ee454
Expand struct definitions in doc comments 2022-02-18 08:03:46 -05:00
Serial
a1e5a0f670
Add mp4::constants for data type codes 2022-02-18 07:57:26 -05:00
Serial
a158d4684e
Fix doc comment 2022-02-17 19:07:38 -05:00
Serial
03b7384f8b
Remove ErrorKind::BadExtension 2022-02-17 19:00:38 -05:00
Serial
19b46c6a96
Add a special case for plID atom 2022-02-17 18:53:51 -05:00
Serial
a31f372559
Support writing an ID3v2 footer 2022-02-16 17:28:47 -05:00
Serial
bed38e59c0
Actually encode text when writing ID3v2 tags 2022-02-16 17:25:47 -05:00
Serial
59e034dee9
Make AudioFile a supertrait 2022-02-16 16:33:07 -05:00
Serial
bca87bcece
Continued cleanup 2022-02-15 18:26:29 -05:00
Serial
10bbb495c0
Implement full MPEG frame header in Mp3Properties 2022-02-14 22:09:56 -05:00
Serial
f9be2c8b8c
Don't error on missing Xing/VBRI header 2022-02-14 21:24:27 -05:00
Serial
6bb0427c84
Make all property structs non-exhaustive 2022-02-14 21:19:05 -05:00
Serial
2ccb38a97d
Make PictureType and Mp4Codec non-exhaustive 2022-02-13 20:32:55 -05:00
Serial
38a286cc6e
Clarify ID3v2 being read only in APE 2022-02-13 20:14:24 -05:00
Serial
c8da9c674c
Reorder TaggedFile impl 2022-02-13 20:08:26 -05:00
Serial
d73173fb84
Add extra check to tag_reader example; Reorganize test assets 2022-02-13 13:15:27 -05:00
Serial
3cb1cf7aed
Make MimeType non-exhaustive 2022-02-13 12:14:05 -05:00
Serial
b3e71729da
Continued cleanup 2022-02-13 12:11:06 -05:00
Serial
8fa0f67afb Cleanup writing of OGG formats 2022-02-12 20:36:23 -05:00
Serial
91e5d5984b Switch to cfg-if for rustfmt support 2022-02-12 14:33:00 -05:00
Serial
8b39695a61 Add more lints 2022-02-12 14:12:55 -05:00
Serial
a21d0380de Cleanup 2022-02-12 02:52:43 -05:00
Serial
2763fccffa Continue to make use of fallible allocation 2022-02-08 20:56:11 -05:00
Serial
c473177a8b Cleanup pictures module 2022-02-08 20:06:05 -05:00
Serial
6570dcaeaf
Begin fallible allocation; Fix WAV/AIFF OOM 2022-02-07 11:25:59 -05:00
Serial
9e18616a68
Fix panic in Mp4File::read_from 2022-02-07 10:03:28 -05:00
Serial
d13f01d215
Cleanup; Make use of doc_cfg 2022-02-04 00:59:20 -05:00
Serial
a179cfe736
Start work on TagIO trait
This is the start of making Lofty more general purpose, allowing for the creation of custom tags.

This also makes `TagType::remove_from*` fallible, which makes much more sense.
2022-02-02 22:10:04 -05:00
Serial
c6a02c6b73
Add some helpful comments 2022-02-02 19:26:02 -05:00
Serial
c1725de93d
Add Speex support 2022-01-31 18:19:11 -05:00
Serial
08b2dd9209
Add missing AIFF extensions 2022-01-31 13:26:02 -05:00
Serial
3c397705c0 Fix feature issues 2022-01-28 15:29:34 -05:00
Serial
394f4b3c43 Cleanup imports 2022-01-28 12:28:52 -05:00
Serial
cb7abdb7af Overhaul LoftyError 2022-01-27 15:53:41 -05:00
Serial
090a00616e Add tag writing benchmark 2022-01-26 23:39:30 -05:00
Serial
43feafedb9 Switch to once_cell 2022-01-26 14:18:38 -05:00
Serial
f697e94fe6 Update ogg_pager 2022-01-26 11:53:20 -05:00
Serial
a25680f8e2
Add ItemKey::EncodedBy mapping for Ilst 2022-01-25 15:57:09 -05:00
Serial
4eb168a8ea
Cleanup 2022-01-25 14:42:32 -05:00
Alex
15daf36c0d
Remove old allow attribute 2022-01-24 19:30:55 -05:00
Alex
e0ea0eb67a
Merge pull request #33 from sagudev/wave-depth
Fix `WavProperties` reading
2022-01-24 13:57:55 -05:00
sagu
a7155f31a9
Update src/iff/wav/properties.rs
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2022-01-24 19:24:35 +01:00
Serial
d9174697d3 Fix MP4 audio bitrate 2022-01-24 11:05:12 -05:00
sagu
6325665ab2
Merge branch 'main' into wave-depth 2022-01-24 16:35:24 +01:00
Alex
b4d56ab841
Merge pull request #31 from sagudev/main 2022-01-24 09:11:45 -05:00
sagudev
bd896287b6 bit-depth for ALAC and getter for wav 2022-01-24 06:35:15 +01:00
sagu
504ac31cda
Apply suggestions from code review
Co-authored-by: Alex <69764315+Serial-ATA@users.noreply.github.com>
2022-01-24 06:00:02 +01:00
Serial
81bce69d18 Cleanup 2022-01-23 14:11:16 -05:00
sagudev
e0f075a912 Add testing against hound 2022-01-23 13:37:13 +01:00
sagudev
c8c84e6660 hound testing 2022-01-23 12:32:51 +01:00
sagudev
81efcb0271 bit_depth for iff and ape 2022-01-23 07:35:24 +01:00
sagudev
9deb7f27f0 fix flac bit depth 2022-01-22 21:28:09 +01:00
sagudev
29378f53a5 bit_depth prototype 2022-01-22 19:54:42 +01:00
Alex
d034782a27
Fix test assertion 2022-01-22 11:01:27 -05:00
localthomas
b9c469173a negative multiply made more readable 2022-01-21 18:15:05 +01:00
localthomas
a326788819 implemented clippy suggestions 2022-01-21 17:42:01 +01:00
localthomas
e1a8e08a3f return type of guess_inner is now std::io::Result 2022-01-21 17:34:49 +01:00
localthomas
134d91d61a refactor after code review 2022-01-21 17:31:14 +01:00
localthomas
47a28402db
added frame sync search for MP3 reading
The first MP3 frame behind metadata blocks is found by searching for frame sync bits.
This skips junk bytes between any metadata blocks and the first MP3 frame.
2022-01-21 14:52:32 +01:00
localthomas
0e8ad5759c
added searching for frame sync bits when file type probing
When a file contains an ID3 block, the following data might be an MP3 frame.
The frame might be prepended by junk bytes, which are skipped with this commit.
2022-01-21 13:55:28 +01:00
Serial
c27264f50b
Verify ID3 Frame contents prior to writing 2022-01-13 14:42:34 -05:00
Serial
cefc383123 Fix some doc comments 2022-01-09 09:57:43 -05:00
Serial
42688daee8 Fix feature issues 2022-01-08 11:22:38 -05:00
Serial
a82621dfe7 Cleanup ID3 find functions 2022-01-08 11:06:11 -05:00
Serial
1824c086e4 Cleanup id3::v2 2022-01-08 08:45:27 -05:00
Serial
f42dfb50bf Add ItemKey mappings for new AIFF chunks 2022-01-08 07:42:28 -05:00
Serial
3f0d6d8b00 Update ogg_pager 2022-01-07 13:02:48 -05:00
Serial
5389efa386 Add real world ID3v2 tests for all versions 2022-01-06 21:06:02 -05:00
Serial
8bfca44fb1 Add GeneralEncapsulatedObject tests 2022-01-06 18:15:47 -05:00
Serial
e640eb0d42 Add SynchronizedText tests 2022-01-06 18:00:33 -05:00
Serial
a49a655f55 Add unstable rustfmt options 2022-01-05 13:26:56 -05:00
Serial
cc6d5a9be8 Fix doc comment 2022-01-05 12:54:20 -05:00
Serial
7942a5bd84 Add tests for dump_to 2022-01-05 12:52:29 -05:00
Serial
94e5ed635f Add Tag::dump_to 2022-01-05 12:50:54 -05:00
Serial
9ffa1b4e0d Fix AIFF COMT writing 2022-01-05 12:12:30 -05:00
Serial
ae20700915 Fix AIFF chunk precedence and writing 2022-01-04 22:06:27 -05:00
Serial
6e61f07538 Cleanup chunk reading 2022-01-04 21:38:52 -05:00
Serial
76e788243f Read AIFF COMT chunks 2022-01-04 15:03:24 -05:00
Serial
d49a06888f fmt 2022-01-04 13:07:35 -05:00
Serial
7a036f3ff9 Cleanup AIFF 2022-01-04 13:06:14 -05:00
Serial
8952834bee Add Tag::get_items for specific ItemValues 2022-01-04 13:02:02 -05:00
Serial
a5039e4198 Read AIFF ANNO chunks 2022-01-03 21:15:48 -05:00
Serial
d7872c671e Allow multi-item insertion for Tag, add Tag::take 2022-01-03 21:13:51 -05:00
Serial
77971ef9b0 fmt 2022-01-03 08:52:51 -05:00
Serial
a8e0edc16d Fix OOM in Picture::from_flac_bytes 2022-01-03 08:48:39 -05:00
Serial
010b60b889 Fix MP3 panic, add fuzz targets 2022-01-02 20:53:26 -05:00
Serial
6670ea9cd5 Fix panic 2022-01-02 20:35:29 -05:00
Serial
612a8b062e Preserve track/disc numbers when converting Ilst 2022-01-02 17:12:16 -05:00
Serial
aa1c306f76 Add accessors for ilst int pairs, convert gnre when reading 2022-01-02 16:08:12 -05:00
Serial
075e0e692f Add FileType::primary_tag_type 2021-12-31 14:34:54 -05:00
Serial
b42b423c50 Fix FLAC writing 2021-12-31 09:13:48 -05:00
Serial
bec96a139b Don't allow writing empty items in Vorbis Comments 2021-12-31 02:11:53 -05:00
Serial
dc501c1b62 Merge remote-tracking branch 'origin/main' 2021-12-30 23:20:20 -05:00
Serial
d312f48406 Fix Tag -> Id3v2Tag conversion 2021-12-30 23:20:08 -05:00
Alex
5808d44aa9
Clippy 2021-12-29 22:31:03 -05:00
Alex
27057e5bac
Fix FLAC max size 2021-12-29 22:26:36 -05:00
Serial
6491aadab2 Remove Mp3File::read_properties 2021-12-29 16:57:27 -05:00
Serial
af37013e54 Improve speed of MP3 property reading
This also adds Mp3File::read_properties, which will eventually be added to all files.
2021-12-29 16:36:37 -05:00
Serial
b805af3a0c Add Id3v2Tag::{unsync_text, comments} 2021-12-29 15:20:00 -05:00
Serial
76bfc60c97 fmt 2021-12-24 13:17:48 -05:00
Serial
17f771d8a8 Add some QOL methods 2021-12-24 13:16:27 -05:00
Serial
8021ca924c Finalize docs 2021-12-23 10:00:54 -05:00
Serial
c29b0012ed Fix METADATA_BLOCK_PICTURE parsing/writing 2021-12-22 17:21:15 -05:00
Serial
f7ab03ce47 Fix privacy issue 2021-12-22 10:06:22 -05:00
Serial
8f2f7ba484 Restructure project 2021-12-22 09:49:43 -05:00
Serial
e61f63e63b Finish resolving feature issues 2021-12-21 20:54:16 -05:00
Serial
a7d9deaa14 Make property reading optional 2021-12-21 20:20:24 -05:00
Serial
e5d2c4dc1f Resolve feature issues 2021-12-21 17:28:18 -05:00
Serial
ea0f3007e8 Add tag_writer example 2021-12-20 10:56:32 -05:00
Serial
2273e4608f Add Id3v2Tag::genre 2021-12-20 09:54:01 -05:00
Serial
555a28d5b2 Fix ID3v2 text decoding; Clippy 2021-12-20 09:46:44 -05:00
Serial
9e8a04826b Make tags Clone 2021-12-19 11:32:20 -05:00
Serial
76ee2a55af Do a better job recognizing picture magic signatures 2021-12-19 11:32:02 -05:00
Serial
64362615cf Add simplified getters/setters and tag reader example 2021-12-12 12:47:26 -05:00
Serial
2a0da87074 Support ID3v2 unsynchronisation, add extra ID3v2 tests 2021-12-11 12:24:10 -05:00
Serial
ca0ee7d6b8 Cleanup 2021-12-10 18:43:34 -05:00
Serial
2b4bf99b75 Fix ID3v2 -> Tag conversion, fix docs 2021-12-07 16:35:09 -05:00
Serial
379042cd10 More work on docs 2021-12-06 20:04:22 -05:00
Serial
12451b2df9 Continue working on docs 2021-12-06 07:18:07 -05:00
Serial
175ff1de0b Clippy 2021-12-05 18:11:13 -05:00
Serial
45fd0c7ed9 Start documentation 2021-12-05 18:05:14 -05:00
Serial
733710f8ca Overhaul Probe 2021-12-05 17:02:22 -05:00
Serial
afdfc09873 Reorganize file tests 2021-12-01 21:00:12 -05:00
Serial
c72857c3d7 Add tag conversion tests 2021-11-28 12:55:11 -05:00
Serial
5638326ff2 Add tests for reading individual tag formats 2021-11-27 13:28:40 -05:00
Serial
f7bb543f36 Fix docs 2021-11-26 15:33:28 -05:00
Serial
60e1579bb2 Add overall bitrate, create file property tests 2021-11-26 15:17:02 -05:00
Serial
72641e2f25 Add missing picture preservation 2021-11-26 07:08:55 -05:00
Serial
20a596b80b Preserve pictures in Tag -> Id3v2Tag 2021-11-26 06:56:19 -05:00
Serial
75767fa99e Fix Frame equality and documentation 2021-11-26 06:49:15 -05:00
Serial
db1c8726c2 Remove ItemValue::UInt 2021-11-26 06:17:32 -05:00
Serial
49b49a5254 Make the original version accessible for Id3v2Tag 2021-11-26 05:56:29 -05:00
Serial
a47e3fc1e3 Create LanguageFrames in Tag -> Id3v2Tag 2021-11-24 18:09:45 -05:00
Serial
c0d130512b Remove references to pictures module 2021-11-24 17:09:12 -05:00
Serial
8b8e8eedbb Remove pictures module 2021-11-24 17:03:53 -05:00
Serial
4d7d1d43bd Fix ID3v2 restrictions docs 2021-11-24 16:56:31 -05:00
Serial
41ddc51bd4 Simplify structure, start improving documentation 2021-11-24 16:51:35 -05:00
Serial
39aec03a1e fmt 2021-11-24 15:34:12 -05:00