1
0
mirror of synced 2026-05-22 14:43:19 +00:00

565 Commits

Author SHA1 Message Date
Borewit b16866e666 Add support for MP4 fragments
Add support to decode `moof`, `traf`, `tfhd`, and `trak` boxes
2025-06-26 20:52:44 +02:00
Borewit f16f584b0b Fix code style issues 2025-06-26 20:24:05 +02:00
wizcheu 48f21a4698 Support both 2 and 3 digit milliseconds in LRC timestamp parsing
The LRC parser now handles timestamps with either 2-digit centiseconds
(e.g., [00:45.52]) or 3-digit milliseconds (e.g., [00:45.520]) by
updating the regex pattern and conversion logic to properly parse
both formats into milliseconds.
2025-06-14 11:12:06 +02:00
Borewit ab5fcbf273 Be able to auto-detect MPEG frames, starting at slightly incorrect offset
Update file-type to 21.0.0
2025-05-23 14:49:05 +02:00
Borewit 5f67a6d3d5 Add missing MIME-type video/matroska 2025-05-15 20:34:09 +02:00
Jigz 6dc0d8fa19 Update type descriptions 2025-04-14 21:35:42 +02:00
Jigz 9b060708e1 Fix lint failures 2025-04-14 21:35:42 +02:00
Jigz 88df50fa2d Fix format 2025-04-14 21:35:42 +02:00
Jigz bb1fd459e0 Add start time of each chapter 2025-04-14 21:35:42 +02:00
Borewit 35e1e51bfa Workaround for TypeScript, importing Node function parseStream with module-resolution set to bundler 2025-04-11 15:53:05 +02:00
Borewit 948ef5ce7c Export errors 2025-04-11 15:51:47 +02:00
Borewit 5e93e8e1d8 Move supported MIME-types declaration to parser implementations 2025-04-10 18:24:45 +02:00
Borewit 7c1a675b5e Update lib/apev2/APEv2Parser.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-02 19:55:38 +02:00
Borewit db239009a2 Improve error handling in case the file is not supported
Changes:
- Avoid out of range error, parsing a very small file
- Export errors: `CouldNotDetermineFileTypeError` and `UnsupportedFileTypeError`
- Include the file path in the error message, in case the file path is known
2025-04-02 19:55:38 +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 7fc74efc5b simplify parser loader 2025-04-01 20:01:38 +02:00
Justinas Delinda 4acd2c40ce fix lint warning 2025-04-01 19:57:20 +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 8c540bdd0d Workaround for TypeScript bundler node-resolution
Add stub to fool TypeScript compiler, loading the wrong entry points for the typings.

For calling the runtime problems, it throws an error.
2025-03-10 20:03:13 +01:00
Borewit ad6ac15cff Remove CommonJS entry point
`loadMusicMetadata()` no longer available. `load-esm` can be used instead.
2025-02-17 16:49:12 +01:00
Borewit 4322df92d8 Fix tokenizer closure 2025-01-26 18:28:17 +01:00
Borewit ca306bfc1e Fix size in 'stst' box and handle sample description entry 2025-01-24 21:52:09 +01:00
Borewit a29bcc2172 Remove unused file 2025-01-21 12:54:23 +01:00
Borewit 75096ebf41 Minor code style fix 2025-01-20 20:32:01 +01:00
Borewit 93cd361d6e Fix promise handling in ASF parser 2025-01-13 15:35:55 +01:00
Borewit 97e09eab2c Drop AMR support 2025-01-13 15:25:08 +01:00
Borewit 4f87d8f155 Properly close web-stream-tokenizer
Add unit tests for web-stream
2025-01-04 20:53:18 +01:00
Borewit 4c588a1367 Fix handling reading AMR audio file from stream
Properly handle `EndOfStreamError`, in case the length of the stream is unknown (not provided).
Fix passing correct description in AMR unit test.
2025-01-04 20:47:59 +01:00
Borewit cff652760a Update dependency strtok3 to version 10.0.0 2024-12-01 12:20:06 +01:00
Borewit 01ad22bc5e Utilize strtok3 random access reading 2024-11-28 19:16:13 +01:00
Jiří f8d1e9bb12 * Fix parsing of GEOB tags in ID3v2 frame. 2024-11-11 20:30:33 +01:00
Jiří 3fa038f403 * Fix parsing of GEOB tags in ID3v2 frame. 2024-11-11 20:30:33 +01:00
Borewit f12c588ad1 Add support for LRC Lyrics 2024-11-10 16:58:57 +01:00
Borewit 0a39bd6234 Update to Biome 1.9.4 2024-11-10 15:30:52 +01:00
Borewit d06111add7 Include numberOfSamples for CBR encoded MP3 2024-11-10 15:25:23 +01:00
Borewit 4c63681bdd Borewit/music-metadata#782 Support Adaptive Multi-Rate (AMR) audio codec 2024-09-08 17:29:17 +02:00
Borewit 4456defc99 Dynamic import parsers 2024-09-05 20:25:18 +02:00
Borewit f04f3ed411 Fix bug which can occur when processing an MP4 file, with an atom using an extended header size 2024-09-05 19:50:36 +02:00
Borewit 6cfd1c7f79 Add loadMusicMetadata() typing for CommonJS (hack) 2024-08-30 15:28:09 +02:00
Borewit 6d8ebf195c Add CommonJS Backward compatibility entry points 2024-08-29 20:53:46 +02:00
Borewit 8fe9ac2057 Implement own custom Error using ADT style implementation 2024-08-29 17:48:28 +02:00
Borewit 04fd5ee0ab Correct comment description parseBuffer 2024-08-29 16:29:06 +02:00
Borewit 1a713b7997 Add `option.mkvUseIndex to use index to skip Matroska cluster elements 2024-08-15 18:24:42 +02:00
Borewit 1fe4049308 Parse EBML (Matroska, webm) using async notification 2024-08-15 17:48:22 +02:00
Borewit b5b84ff31e Implement hack to speed up Matroska parsing
Stop reading until we receive a container element
2024-08-15 17:48:22 +02:00
Borewit b080e8ade0 Write all Matroska DTD in hexadecimal notation 2024-08-15 14:25:22 +02:00
Borewit 19820a7804 Separate EBML from Matroska 2024-08-14 18:13:53 +02:00
Borewit 3937085154 Enable TypeScript options strict & verbatimModuleSyntax 2024-08-12 08:54:43 +02:00
Borewit 551ccafdb7 Fix id3v2.3 & id3v2.4 W-Frames
Resolves #2206
2024-08-09 17:34:55 +02:00