1
0
mirror of synced 2026-08-06 19:46:54 +00:00
Commit Graph

81 Commits

Author SHA1 Message Date
Borewit c619ac4a5a Replace text-coded with @exodus/bytes for text encoding and decoding 2026-02-21 16:13:00 +01:00
ma225tq 7c57bdcbdf refactor(MetadataCollector): add common types for SingularArtistId & PluralArtistId 2026-02-08 14:15:46 +01:00
ma225tq 86b5d9b7c7 refactor(MetaDataCollector): extract artist/albumartist handling into helper functions 2026-02-08 14:15:46 +01:00
ma225tq cd43849970 feat(MetadataCollector): add common.albumartists array support
Add albumartists field following the same pattern as artists:
  - Multiple TPE2 frames or null-separated values now populate common.albumartists array (like TPE1 does for common.artists)
  - Cross-population between albumartist/albumartists fields
2026-02-08 14:15:46 +01:00
Borewit 64d2148d11 id3v2: harden frame parsing and fix edge cases
- Correctly handle missing null terminators in text fields
- Avoid reading text encoding for frames that do not define it
- Decode URL link frames according to ID3v2 specification
- Improve robustness of POPM and GEOB frame parsing
2026-01-06 13:39:38 +01:00
Borewit fd8b32b309 Improve findZero:
- eliminates all OOB reads.
- makes the “not found” behavior explicit and consistent.
2026-01-06 13:39:38 +01:00
Borewit abbe09323d Improve MP3 parsing code
Favor Uint8Array.subarray, over passing offset and length
2026-01-06 13:39:38 +01:00
Borewit 65ec1c8fbd Move header parsing to FrameHeader.ts file, to allow re-using
Replace passing offset, and utilize `Uint8Array.subarray` instead.
2026-01-06 13:39:38 +01:00
Gérald LEBAN 44f262f011 Add support for vorbis unsynced lyrics (#2489)
Extract unsynced vorbis lyrics
---------
Co-authored-by: Borewit <Borewit@users.noreply.github.com>
2025-11-09 14:55:57 +01:00
Borewit 5445cbb816 Support variable length PCNT and POPM numeric values.
Add `common.playCounter`
2025-09-15 20:36:21 +02:00
Borewit bcae011214 Favor subarray over slice, reusing instead of copying data 2025-09-15 20:28:29 +02:00
Borewit 95c35ff566 Update Biome to 2.2.0 2025-08-19 12:28:41 +02:00
Borewit 06d83b2e7a Fix missing uint8array-extras dependency 2025-08-19 12:09:40 +02:00
Borewit 763f72854c Replace @kayahr/text-encoding with @borewit/text-codec 2025-08-13 21:48:37 +01:00
Borewit a5bc776e6d Remove uint8array-extras dependency
Remove `uint8array-extras` dependency in favour of having the same TextEncoder everywhere.
2025-08-13 09:58:54 +01:00
Borewit a9094e9829 Indicate on every media file if it contains an audio and/or video stream.
Introduces: `format.hasAudio` and `format.hasVideo`
2025-06-30 17:33:09 +02:00
Borewit f16f584b0b Fix code style issues 2025-06-26 20:24:05 +02:00
Justinas Delinda 1894acb748 Refactor commonTags structure to use defaultTagInfo for consistency and improve readability 2025-04-01 20:03:49 +02:00
Justinas Delinda 7ff2786318 Refactor constructors to use explicit property assignments 2025-04-01 19:57:20 +02:00
Justinas Delinda 9d2d2a7c69 Refactor enums to mapped objects 2025-04-01 19:57:20 +02:00
Borewit a29bcc2172 Remove unused file 2025-01-21 12:54:23 +01:00
Borewit 01ad22bc5e Utilize strtok3 random access reading 2024-11-28 19:16:13 +01:00
Borewit f12c588ad1 Add support for LRC Lyrics 2024-11-10 16:58:57 +01:00
Borewit 4456defc99 Dynamic import parsers 2024-09-05 20:25:18 +02:00
Borewit 8fe9ac2057 Implement own custom Error using ADT style implementation 2024-08-29 17:48:28 +02:00
Borewit 3937085154 Enable TypeScript options strict & verbatimModuleSyntax 2024-08-12 08:54:43 +02:00
Borewit 89ff43a053 Migrate eslint to biome, fix lint errors 2024-08-08 19:15:49 +02:00
Borewit c7fd893a22 Add support for ID3v2 SYLT frame
Improve and extend generic comment mapping
2024-07-20 15:32:17 +02:00
Borewit d6c275509d Remove remaining Buffer usages.
Add lint rule to prevent global Buffer usage.
2024-07-12 12:01:12 +02:00
Borewit 573c505a84 Prevent subpath imports, for Angular compatibility 2024-07-09 21:26:38 +02:00
Bjorn Stromberg eb0f8e61b8 feat: convert most Buffer usage to Uint8Array (#2103)
Convert most Buffer usage to Uint8Array and `uint8array-extras` to fill functionality gaps
* Update `token-types` to version 6.0.0
* Update `strtok3`  to version 7.1.0
* Update `file-type` to version 19.1.0
* Update dependency diagram to desired Node.js free via primary entry point

Co-authored-by: Borewit <Borewit@users.noreply.github.com>
2024-07-08 19:53:02 +02:00
certuna 216ef33cad Update GenericTagTypes.ts 2023-11-01 12:05:06 +01:00
certuna 3b257766c4 Update GenericTagTypes.ts 2023-11-01 12:05:06 +01:00
Borewit e08ee039d4 Merge pull request #1291 from Borewit/aiff-text-chunks
Add AIFF text chunk support, resulting in AIFF metadata & mapping
2022-09-18 13:31:03 +02:00
Borewit d17547d7e4 Add AIFF text chunk support, resulting in AIFF metadata & mapping 2022-09-18 13:23:48 +02:00
Borewit 0687a0a824 Simplify handling FourCC 2022-09-18 13:19:31 +02:00
Borewit 7cdebd1ca6 Migrate from CommonJS to ES Modules 2022-02-27 15:27:40 +01:00
Borewit 65ba6661fa Normalize import debug towards ES module compatibility 2022-02-27 13:28:45 +01:00
Borewit 011cfb0a98 Minor code improvements in MPEG parser, replacing Buffer with Uint8Array 2022-02-27 12:40:25 +01:00
Borewit 02d07928a1 Merge pull request #1037 from Borewit/fix-issue-1028
Ensure Node.js `Buffer` class is used to decode strings from `Uint8Aray`
2022-02-24 22:51:20 +01:00
Borewit e089a474bd Ensure Node.js Buffer class is used to decode strings from Uint8Array 2022-02-24 22:46:59 +01:00
Borewit 9fd5593e45 Utilize Node.js, fs API module, FileHandle object 2022-02-24 22:04:15 +01:00
Borewit 40bdf32040 Fix comment formatting 2022-01-29 19:20:53 +01:00
Borewit 19366b896c Fix lint code style issues
Parse TypeScript files recursive.
Fix duplicate interface declarations.
2022-01-29 19:02:24 +01:00
Borewit be2222c0e7 Handle invalid (odd octet length) UTF-16 string
Register a warning instead of a fatal error.

Resolves Borewit/music-metadata#979
2022-01-17 15:58:51 +01:00
Borewit 48f9571c21 Map tag ID3v2.2 TBP to common.bpm
Also ensures `common.bpm` is a numeric value.
2022-01-12 22:13:17 +01:00
Borewit 5ae7f3817d Minor source code improvements 2021-12-10 17:50:09 +01:00
Borewit 71fb350606 Remove redundant space 2021-08-30 21:40:08 +02:00
Borewit 72223a39f0 Abstraction from Buffer to Uint8Array in randomRead & parseBuffer 2021-07-23 11:11:58 +02:00
Borewit 973e90978c Use Uint8Array instead of Buffer where reasonable possible 2021-07-22 15:34:01 +02:00