1
0
mirror of synced 2026-08-06 11:36:59 +00:00
Commit Graph

681 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
Borewit 952ceae807 Fix miscalculation Ogg/Vorbis, duration miscalculation
Fix miscalculation occurring when Ogg/Vorbis files when the duration option is not explicitly enabled. In that case, the parser performs a partial read of the file and reports the duration based only on the processed portion, resulting in an incomplete value.

Resolves #2518
2026-02-16 19:30:57 +01:00
ma225tq d1916dea39 test: add test for multiple album artists in FLAC files 2026-02-08 14:15:46 +01:00
ma225tq 6027f894c2 test: add multiple album artists (TPE2) test
Verifies that albumartists array is populated from null-separated TPE2 frame values.
2026-02-08 14:15:46 +01:00
glebrock a3c53f00c8 #2574: update docs for grouping field to include reference to GP1 frame, update to consistently use strictEqual() in test 2026-02-02 20:18:17 +01:00
glebrock e191ae87e8 #2574: add support for correctly populating the 'metadata.common.grouping' field for a file with an Tunes IDv2.2 tag with the 'GP1' frame 2026-02-02 20:18:17 +01:00
Borewit 4909b6fe12 fix(id3v2): prevent crash when no tag frames present
Fix TypeError: Cannot read properties of undefined (reading 'filter') by defaulting missing frame/tag collections to empty arrays/objects.

- Add MP3 sample without tags + regression test
- Update related TS configs and dependencies/lockfile
2026-01-28 19:54:25 +01:00
Borewit 8c822709d3 Add ID3v2 chapter support 2026-01-24 19:48:05 +01:00
Borewit b13fab0e7b Depend on win-guid for Windows GUID conversion 2026-01-14 18:04:39 +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 af6caa7738 Improve MP4 bitrate calculation
Avoid using bitrate using `mdat` box, which could contain multiple streams
2025-11-23 12:25:29 +01:00
Borewit 1944b80e8c Fix bitrate calculation over multiple mdat boxes 2025-11-19 21:50:04 +01:00
Borewit 9f5f545136 Fix Ogg/Opus duration calculation.
Duration calculation requires to parse the entire Ogg/Opus file.
2025-11-15 19:24:15 +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 65e6146668 Add support Apple’s QuickTime File Format 2025-11-09 14:14:54 +01:00
Borewit 5445cbb816 Support variable length PCNT and POPM numeric values.
Add `common.playCounter`
2025-09-15 20:36:21 +02:00
Borewit 180b6641d7 Update Biome to 2.2.4 2025-09-15 17:32:59 +02:00
Borewit ff13f3e03c Map Vorbis.ENCODER and Vorbis VORBIS_COMMENT vendor to common.tool 2025-09-15 17:25:37 +02:00
Borewit 95c35ff566 Update Biome to 2.2.0 2025-08-19 12:28:41 +02:00
Borewit 763f72854c Replace @kayahr/text-encoding with @borewit/text-codec 2025-08-13 21:48:37 +01:00
Borewit d3bfd7ae4e Use @kayahr/text-encoding for decoding
To avoid problems with unsupported character sets.
2025-08-12 20:39:42 +01:00
Borewit fa1ae31926 Skip streaming radio tests in Bun 2025-07-22 01:05:00 +02:00
Borewit 2849deb89e CI: Improve structure Ogg unit tests
- Move an Ogg/Vorbis test to the correct description.
- Move some Ogg files, to the `ogg` subfolder
2025-07-20 13:32:23 +02:00
Borewit eb17a5ce65 Fix peek Ogg radio streams 2025-07-19 22:14:35 +02:00
Borewit 3b688f1546 Use strtok3.parseBlob()
Instead of streaming Blob, uses `Blob.slice()`.
2025-07-17 00:26:37 +02:00
Borewit 121078b757 Add support for Ogg/FLAC 2025-07-03 22:17:42 +02:00
Borewit 1824cc1394 Implement handling multiple Ogg sub streams 2025-07-01 12:34:25 +02: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 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
Borewit 37d3275875 Remove unused empty file 2025-06-22 12:55:58 +02:00
Borewit 8e30127e92 Add original timestamps to FLAC LRC lyrics test cases
Add first appearance of milliseconds timestamp to unit tests
2025-06-14 11:12:06 +02:00
wizcheu b741378ba4 Add additional FLAC LRC lyrics sync text assertions
Expand test coverage by adding assertions for syncText entries at indices 4 and 7, verifying both timestamp and text content for Japanese lyrics parsing.
2025-06-14 11:12:06 +02:00
wizcheu 715cc50bfc Modifier the sample flac audio file with Lyrics tag value, for example:
[00:00.920]歪んだ憂いが飛び交う中で失い失い
[00:06.240]膝をつく道化
[00:08.210]あの蝶は自由になれたかな
[00:11.420]情熱は孤独と燃える
[00:24.395]昨日の自分に興味なんかない
[00:27.744]白黒返す言葉裏表
[00:31.437]常識とか言う偏見を編み込み
[00:34.820]明暗を分かつマジョリティ
2025-06-14 11:12:06 +02:00
Borewit 93be659d8b Re-enable unit tests test web steam 2025-05-21 10:50:41 +02:00
Borewit dffc712523 Unit tests: Read file directly as Blob 2025-05-19 16:43:59 +02:00
Jigz 9b060708e1 Fix lint failures 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 5e93e8e1d8 Move supported MIME-types declaration to parser implementations 2025-04-10 18:24:45 +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 7ff2786318 Refactor constructors to use explicit property assignments 2025-04-01 19:57:20 +02:00
Borewit ece6d00ef1 Add unit tests for default WHATWG ReadableStream stream 2025-03-08 19:03:59 +01:00
Borewit 98a78ae389 Improve web-stream tests 2025-02-17 21:27:51 +01:00
Borewit c51ada92c1 Update strtok3 to version 10.2.0. 2025-01-31 13:48:16 +01:00
Borewit ca306bfc1e Fix size in 'stst' box and handle sample description entry 2025-01-24 21:52:09 +01:00
Borewit e972df0ad2 Fix providing skip unit test callback method 2025-01-21 12:03:13 +01:00
Borewit a49a1da981 Set Mocha test timeout global 2025-01-18 15:53:49 +01:00
Borewit 97e09eab2c Drop AMR support 2025-01-13 15:25:08 +01:00
Borewit addcbef51c Skip web-stream for some expensive tests 2025-01-13 15:04:51 +01:00