Commit graph

521 commits

Author SHA1 Message Date
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
Serial
99f1c5cf8d Add rough ItemValue::UInt 2021-11-24 15:32:32 -05:00
Serial
eba7efc013 Add tests for Picture -> bytes methods 2021-11-23 19:29:07 -05:00
Serial
a8a6b27ff9 Add tests for format specific Picture parsers 2021-11-23 18:54:57 -05:00
Serial
1113e711ba Add Picture::from_reader, remove Picture::new 2021-11-23 12:41:57 -05:00
Serial
37806ec612 Start documenting pictures.rs 2021-11-23 11:26:08 -05:00
Serial
c527716a8e fmt 2021-11-22 19:28:08 -05:00
Serial
9878e89b33 Add PictureInformation tests 2021-11-22 17:14:02 -05:00
Serial
bae894ccef Add PictureInformation parsing for PNG and JPEG, remove PictureInformation from Picture 2021-11-22 08:31:54 -05:00
Serial
34b6cd9179 Write APE tag's read_only flag 2021-11-22 06:26:22 -05:00
Serial
b6ec17671e fmt 2021-11-22 05:14:29 -05:00
Serial
ee6584d776 Further cleanup chunk reading 2021-11-22 04:33:58 -05:00
Serial
667d0e3bbf Cleanup chunk reading 2021-11-22 04:24:07 -05:00
Serial
4a5bfe4637 Remove TextEncoding from Picture 2021-11-21 16:30:03 -05:00
Serial
bc0c246dbf Add format specific tag structs
This allows for the use of format-specific elements, such as ID3v2 frame headers
2021-11-21 15:18:19 -05:00
Serial
e84731c375 Add format specific audio property structs 2021-10-01 19:30:51 -04:00
Serial
11d4d55dc8 Add Tag::remove_from, get_string, and get_binary 2021-10-01 17:59:53 -04:00
Serial
c2b76462ff Add ID3v2 writing 2021-09-26 22:36:20 -04:00
Serial
8bf22a0115 Fix ID3v2.2 reading, cleanup MPEG header reading 2021-09-19 14:48:35 -04:00
Serial
47f67e019a Break up logic::id3::v1, improve doc comments 2021-09-18 12:22:24 -04:00
Serial
2a88cdf42a Restructure logic::id3 2021-09-18 11:38:26 -04:00
Serial
cb2cb599e9 Add an as_bytes method for GeneralEncapsulatedObject, SynchronizedText, and TagRestrictions 2021-09-18 11:17:25 -04:00
Serial
7c730a27fa Add function for synchsafe integers 2021-09-18 10:47:28 -04:00
Serial
65b51def6d Remove TagFlags::extended_header, fix doc comments 2021-09-18 10:45:42 -04:00
Serial
cec3fd2451 Preserve read only items when using checked insertion 2021-09-13 18:53:18 -04:00
Serial
556aaea287 Leave GEOB/SYLT parsing up to the user, fix docs 2021-09-13 18:35:20 -04:00
Serial
ffba428c98 Fix freeform reading, remove old probe function 2021-09-13 17:39:32 -04:00
Serial
58354679c5 Move TagItem structs out of types::tag 2021-09-13 17:08:16 -04:00
Serial
12fc701e1d No longer require version specification for TagType::Id3v2 2021-09-13 16:55:32 -04:00
Serial
adb8db9dde Add mutable getter methods for all file tags 2021-09-07 01:46:42 -04:00
Serial
4394d9bf8f Remove all allow dead_code 2021-09-07 01:14:36 -04:00
Serial
2e9392196c Add MP4 ilst writing 2021-09-07 01:09:16 -04:00
Serial
07f9724e4e Cleanup tests, fix RIFF INFO reading 2021-09-06 10:41:24 -04:00
Serial
6edee49207 Remove thiserror 2021-09-05 19:22:29 -04:00
Serial
daf24ed2cc Add APE tag writing 2021-09-05 18:48:51 -04:00
Serial
469077598d More derives on public types 2021-09-05 18:44:53 -04:00
Serial
b38cd09ad6 Fix file signature reading 2021-09-05 18:43:48 -04:00
Serial
4e625f7e80 Add ID3v1 writing 2021-09-05 18:41:53 -04:00
Serial
92475b74cf Make file struct tag fields feature dependent 2021-09-05 15:09:13 -04:00
Serial
9c599f2aa9 Cleanup 2021-09-05 14:58:51 -04:00
Serial
7aa96ad0bb Add back RIFF INFO writing 2021-09-05 14:15:15 -04:00
Serial
3eeb08f50a Restructure iff module, cleanup 2021-09-04 21:18:11 -04:00
Serial
4dc0a824ca Add back FLAC writing, restructure ogg module 2021-09-04 20:55:01 -04:00
Serial
4dc0ea8d13 Add AIFF text chunk writing 2021-09-03 16:30:10 -04:00
Serial
351684caec Add TaggedFile::tag and TaggedFile::tag_mut for fetching specific TagTypes 2021-09-03 16:08:39 -04:00
Serial
fd1984b844 Add back OGG Opus/Vorbis writing 2021-09-03 15:37:37 -04:00
Serial
bf703e474d Remove old dependencies 2021-09-02 20:12:14 -04:00
Serial
77278111a1 Update test assets, remove old tests 2021-09-02 20:07:44 -04:00
Serial
cb785ddf95 Add MP4 property reading 2021-09-02 20:01:40 -04:00
Serial
fafda6243d Start work to parse mp4 atoms 2021-09-01 17:23:50 -04:00
Serial
fa97d27eb1 Preserve vendor string on VorbisFile/OpusFile -> TaggedFile conversion 2021-08-28 20:34:12 -04:00
Serial
575d7af692 Put ID3v2 tag restrictions behind a feature, cleanup 2021-08-28 20:11:37 -04:00
Serial
98ab6d4bce fmt 2021-08-24 23:38:56 -04:00
Serial
2c3a041807 Clippy 2021-08-24 23:35:28 -04:00
Serial
b6aa1595e5 Add AiffText keys 2021-08-24 23:30:15 -04:00
Serial
706a61383d Switch from Into to From 2021-08-24 23:10:11 -04:00
Serial
92cb9d51ba Add ID3v2 reading 2021-08-24 22:54:06 -04:00
Serial
0bd0929716 Reimplement read only for APEv2 2021-08-24 22:50:12 -04:00
Serial
fcc63ce0b4 Fix APEv2 reading 2021-08-24 22:46:16 -04:00
Serial
3c0f5e19be Add Debug to more structs 2021-08-24 22:45:37 -04:00
Serial
1d5896ed27 Add flags to Tag 2021-08-24 22:00:33 -04:00
Serial
0c41b3e15e Add ID3v2 tag flags and restrictions 2021-08-24 21:56:46 -04:00
Serial
c5a1af5ccd Move TextEncoding out of picture.rs 2021-08-24 21:53:48 -04:00
Serial
d6466388ac Update synchronized text error, clippy + fmt 2021-08-24 21:47:46 -04:00
Serial
7fd326b327 Update error.rs 2021-08-24 21:44:46 -04:00
Serial
ebc85cd207 Document AudioFile trait 2021-08-24 21:43:24 -04:00
Serial
449ed3b7db Clippy 2021-08-24 21:42:34 -04:00
Serial
1413afd4ff Document ID3v2 issues and workarounds 2021-08-23 23:28:49 -04:00
Serial
d3f6bda1d0 Add support for item flags, add Tag::find 2021-08-23 23:28:00 -04:00
Serial
fc843dd943 Update error.rs 2021-08-23 23:25:06 -04:00
Serial
96c907874a Allow storing an Id3v2Frame in an ItemKey 2021-08-23 23:24:25 -04:00
Serial
1d6fdb3600 Add Id3v2Frame enum, remove old files 2021-08-23 23:23:29 -04:00
Serial
5995115943 Add GEOB frame parsing, separate SYLT information to a separate struct 2021-08-23 23:21:38 -04:00
Serial
c2e0c223e7 Cleanup 2021-08-23 23:20:06 -04:00
Serial
984cbb83e5 Base64 encode FLAC pictures 2021-08-23 05:34:50 -04:00
Serial
91f3d841ab Add de/encoding for ID3v2 synchronized text 2021-08-23 01:43:12 -04:00
Serial
40692dbdd7 Add Tag::insert_item_unchecked 2021-08-22 21:48:52 -04:00
Serial
302db92ad8 Finish tag key mappings 2021-08-22 21:00:19 -04:00
Serial
40a7538804 Document and expose ID3v2 key upgrade functions 2021-08-22 20:38:10 -04:00
Serial
c3a0c28751 Add functions to upgrade ID3v2.2/3 to 2.4 2021-08-22 19:02:28 -04:00
Serial
b8ee9457b1 Update tables 2021-08-19 18:48:41 -04:00
Serial
97253ef487 Fix extensions 2021-08-19 18:26:58 -04:00
Serial
cdc6a33298 Fix visibility and getter methods 2021-08-19 18:14:23 -04:00
Serial
57b35b268d Update docs 2021-08-19 18:02:24 -04:00
Serial
dab1fcb01b Add getters/setters for common tag items 2021-08-19 18:01:53 -04:00
Serial
e893670f35 Add property and file type getters for TaggedFile 2021-08-19 17:59:24 -04:00
Serial
8bd2fbfa65 Add TaggedFile methods to cover the majority of use cases 2021-08-19 16:19:51 -04:00
Serial
711702b504 Add Tag::re_map 2021-08-19 15:21:39 -04:00
Serial
7b7e949b38 Restructure 2021-08-19 15:16:00 -04:00
Serial
4d4341feaf Correct Probe methods 2021-08-19 15:07:40 -04:00
Serial
b856cd1e9c Update id3 module 2021-08-19 14:29:09 -04:00
Serial
f5f6345cfd Finish ID3v2 picture parsing 2021-08-19 14:26:56 -04:00
Serial
888640cb10 Fix some feature issues 2021-08-18 22:13:59 -04:00
Serial
60846d23dc Rename features 2021-08-18 21:58:27 -04:00
Serial
06bf9b0862 Rename error variant 2021-08-18 21:27:31 -04:00
Serial
471dc2f638 Add Tag::new, Tag::iter, and Tag::retain. Add tag mappings for all ID3v2 versions 2021-08-18 21:26:06 -04:00
Serial
0a455f2dec Remove old comment 2021-08-18 18:59:23 -04:00
Serial
3ea1684cdb Allow mapping a key to an ItemKey 2021-08-18 18:58:08 -04:00
Serial
a822c7cdd0 Start work for ID3 2021-08-18 18:49:33 -04:00
Serial
419f8457a3 Start work to expose all tags 2021-08-02 17:25:31 -04:00
Serial
b4ef26904f Actually read pictures correctly 2021-08-01 22:55:37 -04:00
Serial
3563713701 Fix comment and ID3v2 skip read 2021-08-01 15:45:13 -04:00
Serial
4c5d827bf3 Fix doc comments again 2021-07-31 23:16:32 -04:00
Serial
68b584067d Fix doc comments 2021-07-31 23:15:40 -04:00
Serial
fb96411031 Add back FLAC tag removal 2021-07-31 22:40:33 -04:00
Serial
b64091d649 Add APE property reading, remove ape as a dependency 2021-07-31 21:33:52 -04:00
Serial
a739dcd28e Add test for MP4 property reading 2021-07-30 15:13:32 -04:00
Serial
93d0431134 Add MPEG property reading 2021-07-29 21:07:08 -04:00
Serial
40c73050ee Clippy 2021-07-28 19:10:59 -04:00
Serial
efd4239c5a Rebase and update changes 2021-07-28 18:53:50 -04:00
Serial
1c1b7f5916 RiffTag return default on error 2021-07-19 21:10:36 -04:00
Serial
134bef896a Update mp4ameta 2021-07-19 21:01:00 -04:00
Serial
29abe33324 Add credit 2021-07-19 20:34:12 -04:00
Serial
66b5bbd081 Add Tag::remove_from 2021-07-19 20:32:36 -04:00
Serial
9dfb740737 Fix errors 2021-07-19 14:21:38 -04:00
Serial
d2a6e35537 Don't error out on an empty tag 2021-07-19 13:30:24 -04:00
Serial
c8f6a0ebc2 Switch to new derive proc macro 2021-07-19 12:51:08 -04:00
Serial
9f50b48764 Temporarily use rust-ape fork
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 22:53:34 -04:00
Serial
0173d9e3e2 Add ability to get/remove custom keys
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 21:03:20 -04:00
Serial
aae6200ced Add AiffTag to docs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 20:34:34 -04:00
Serial
65b5f131aa Add AudioTagEdit::tag_type
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 20:24:12 -04:00
Serial
c673c7fcbb Add missing title methods to Album
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 19:59:56 -04:00
Serial
a9b78c7aa0 Start using UniCase for OGG formats
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 14:54:54 -04:00
Serial
03a3122c36 Wrong encoder key in APE method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:50:27 -04:00
Serial
dfd1495146 Make APE keys case insensitive as the spec isn't normally followed
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:49:31 -04:00
Serial
8eb8b12f32 Add encoder methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:31:56 -04:00
Serial
72e361a097 Remove user-provided Cows for Picture::new
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:16:22 -04:00
Serial
9fe7f6dbef Fix comment
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:32:24 -04:00
Serial
1cfdb611a6 Use get_set_methods in RiffTag
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:26:42 -04:00
Serial
e1b7dce2cb Start using new get_set_methods macro
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:15:33 -04:00
Serial
547d5412c0 Move methods out of OggInnerTag
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:48:47 -04:00
Serial
89af607e2c Get rid of remove_disc method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:42:05 -04:00
Serial
1fe26739a1 Missing references
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:32:12 -04:00
Serial
244cff1fee More sensible cover methods for Album
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:31:06 -04:00
Serial
ac91cbfd63 Add methods to set and remove all pictures, remove pointless panic
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 13:10:49 -04:00
Serial
e6eb8d8d40 AIFF read sanity check
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 12:40:44 -04:00
Serial
3e2d9abcae Add lyricist and composer methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 12:11:16 -04:00
Serial
edd315467f Separate date and year methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:57:54 -04:00
Serial
10ca5c0295 Create AudioTagEdit methods with macros, remove useless methods, rename unclear methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:45:37 -04:00
Serial
4cdc4a7589 Change bpm to return u16 because of mp4ameta
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:08:24 -04:00
Serial
7fe21b0315 Add lyrics and bpm methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:46:18 -04:00
Serial
b4d8c3657d Add genre methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:07:59 -04:00
Serial
9878b5172f Add back RiffTag::date
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:01:24 -04:00
Serial
12b97fa44f Fix aiff writing
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 20:10:28 -04:00
Serial
08ec8fca3a Clippy
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 19:35:47 -04:00
Serial
cb725e882d Add copyright methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 19:16:38 -04:00
Serial
f9c2321ba1 Remove pointless Vec
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 18:06:00 -04:00
Serial
7dd852d7b7 Fix mistake
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 22:48:05 -04:00
Serial
f46cd1b301 OggTag cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 22:46:02 -04:00
Serial
09c248c6c9 Reorder derives
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 21:36:06 -04:00