@dragon708/docmind-markdown 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/music-metadata/LICENSE.txt +3 -3
- package/node_modules/music-metadata/README.md +246 -690
- package/node_modules/music-metadata/lib/ParserFactory.d.ts +31 -27
- package/node_modules/music-metadata/lib/ParserFactory.js +219 -108
- package/node_modules/music-metadata/lib/aiff/AiffParser.d.ts +2 -2
- package/node_modules/music-metadata/lib/aiff/AiffParser.js +38 -34
- package/node_modules/music-metadata/lib/aiff/AiffTagMap.d.ts +1 -1
- package/node_modules/music-metadata/lib/aiff/AiffTagMap.js +7 -2
- package/node_modules/music-metadata/lib/aiff/AiffToken.d.ts +6 -32
- package/node_modules/music-metadata/lib/aiff/AiffToken.js +17 -27
- package/node_modules/music-metadata/lib/apev2/APEv2Parser.d.ts +8 -24
- package/node_modules/music-metadata/lib/apev2/APEv2Parser.js +66 -78
- package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.d.ts +1 -1
- package/node_modules/music-metadata/lib/apev2/APEv2TagMapper.js +8 -4
- package/node_modules/music-metadata/lib/apev2/APEv2Token.d.ts +11 -10
- package/node_modules/music-metadata/lib/apev2/APEv2Token.js +27 -16
- package/node_modules/music-metadata/lib/asf/AsfObject.d.ts +53 -59
- package/node_modules/music-metadata/lib/asf/AsfObject.js +131 -97
- package/node_modules/music-metadata/lib/asf/AsfParser.d.ts +1 -1
- package/node_modules/music-metadata/lib/asf/AsfParser.js +43 -42
- package/node_modules/music-metadata/lib/asf/AsfTagMapper.d.ts +2 -2
- package/node_modules/music-metadata/lib/asf/AsfTagMapper.js +10 -6
- package/node_modules/music-metadata/lib/asf/AsfUtil.d.ts +13 -4
- package/node_modules/music-metadata/lib/asf/AsfUtil.js +36 -30
- package/node_modules/music-metadata/lib/asf/GUID.d.ts +84 -0
- package/node_modules/music-metadata/lib/asf/GUID.js +121 -0
- package/node_modules/music-metadata/lib/common/BasicParser.d.ts +9 -9
- package/node_modules/music-metadata/lib/common/BasicParser.js +7 -2
- package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.d.ts +3 -3
- package/node_modules/music-metadata/lib/common/CaseInsensitiveTagMap.js +7 -2
- package/node_modules/music-metadata/lib/common/CombinedTagMapper.d.ts +5 -5
- package/node_modules/music-metadata/lib/common/CombinedTagMapper.js +28 -24
- package/node_modules/music-metadata/lib/common/FourCC.d.ts +1 -1
- package/node_modules/music-metadata/lib/common/FourCC.js +11 -10
- package/node_modules/music-metadata/lib/common/GenericTagMapper.d.ts +13 -13
- package/node_modules/music-metadata/lib/common/GenericTagMapper.js +12 -7
- package/node_modules/music-metadata/lib/common/GenericTagTypes.d.ts +6 -7
- package/node_modules/music-metadata/lib/common/GenericTagTypes.js +85 -86
- package/node_modules/music-metadata/lib/common/MetadataCollector.d.ts +10 -20
- package/node_modules/music-metadata/lib/common/MetadataCollector.js +69 -100
- package/node_modules/music-metadata/lib/common/RandomFileReader.d.ts +22 -0
- package/node_modules/music-metadata/lib/common/RandomFileReader.js +34 -0
- package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.d.ts +18 -0
- package/node_modules/music-metadata/lib/common/RandomUint8ArrayReader.js +25 -0
- package/node_modules/music-metadata/lib/common/Util.d.ts +12 -11
- package/node_modules/music-metadata/lib/common/Util.js +53 -47
- package/node_modules/music-metadata/lib/core.d.ts +15 -42
- package/node_modules/music-metadata/lib/core.js +38 -74
- package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.d.ts +1 -16
- package/node_modules/music-metadata/lib/dsdiff/DsdiffParser.js +44 -55
- package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.d.ts +3 -3
- package/node_modules/music-metadata/lib/dsdiff/DsdiffToken.js +7 -4
- package/node_modules/music-metadata/lib/dsf/DsfChunk.d.ts +10 -11
- package/node_modules/music-metadata/lib/dsf/DsfChunk.js +19 -15
- package/node_modules/music-metadata/lib/dsf/DsfParser.d.ts +1 -16
- package/node_modules/music-metadata/lib/dsf/DsfParser.js +20 -21
- package/node_modules/music-metadata/lib/flac/FlacParser.d.ts +15 -16
- package/node_modules/music-metadata/lib/flac/FlacParser.js +119 -69
- package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.d.ts +3 -7
- package/node_modules/music-metadata/lib/id3v1/ID3v1Parser.js +36 -39
- package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.d.ts +1 -1
- package/node_modules/music-metadata/lib/id3v1/ID3v1TagMap.js +7 -2
- package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.d.ts +2 -2
- package/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js +19 -15
- package/node_modules/music-metadata/lib/id3v2/FrameParser.d.ts +3 -64
- package/node_modules/music-metadata/lib/id3v2/FrameParser.js +103 -244
- package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.d.ts +2 -2
- package/node_modules/music-metadata/lib/id3v2/ID3v22TagMapper.js +16 -6
- package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.d.ts +5 -5
- package/node_modules/music-metadata/lib/id3v2/ID3v24TagMapper.js +35 -36
- package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.d.ts +6 -11
- package/node_modules/music-metadata/lib/id3v2/ID3v2Parser.js +104 -91
- package/node_modules/music-metadata/lib/id3v2/ID3v2Token.d.ts +29 -67
- package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +36 -76
- package/node_modules/music-metadata/lib/iff/index.d.ts +1 -1
- package/node_modules/music-metadata/lib/iff/index.js +7 -4
- package/node_modules/music-metadata/lib/index.d.ts +31 -8
- package/node_modules/music-metadata/lib/index.js +53 -32
- package/node_modules/music-metadata/lib/lyrics3/Lyrics3.d.ts +2 -2
- package/node_modules/music-metadata/lib/lyrics3/Lyrics3.js +13 -13
- package/node_modules/music-metadata/lib/matroska/MatroskaDtd.d.ts +2 -2
- package/node_modules/music-metadata/lib/matroska/MatroskaDtd.js +242 -246
- package/node_modules/music-metadata/lib/matroska/MatroskaParser.d.ts +24 -6
- package/node_modules/music-metadata/lib/matroska/MatroskaParser.js +218 -124
- package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.d.ts +1 -1
- package/node_modules/music-metadata/lib/matroska/MatroskaTagMapper.js +7 -3
- package/node_modules/music-metadata/lib/matroska/types.d.ts +76 -43
- package/node_modules/music-metadata/lib/matroska/types.js +33 -27
- package/node_modules/music-metadata/lib/mp4/Atom.d.ts +7 -7
- package/node_modules/music-metadata/lib/mp4/Atom.js +22 -15
- package/node_modules/music-metadata/lib/mp4/AtomToken.d.ts +18 -110
- package/node_modules/music-metadata/lib/mp4/AtomToken.js +66 -184
- package/node_modules/music-metadata/lib/mp4/MP4Parser.d.ts +4 -6
- package/node_modules/music-metadata/lib/mp4/MP4Parser.js +128 -255
- package/node_modules/music-metadata/lib/mp4/MP4TagMapper.d.ts +4 -4
- package/node_modules/music-metadata/lib/mp4/MP4TagMapper.js +12 -8
- package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.d.ts +5 -5
- package/node_modules/music-metadata/lib/mpeg/ExtendedLameHeader.js +10 -7
- package/node_modules/music-metadata/lib/mpeg/MpegParser.d.ts +4 -17
- package/node_modules/music-metadata/lib/mpeg/MpegParser.js +131 -176
- package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.d.ts +14 -16
- package/node_modules/music-metadata/lib/mpeg/ReplayGainDataFormat.js +19 -14
- package/node_modules/music-metadata/lib/mpeg/XingTag.d.ts +7 -6
- package/node_modules/music-metadata/lib/mpeg/XingTag.js +18 -14
- package/node_modules/music-metadata/lib/musepack/index.d.ts +5 -0
- package/node_modules/music-metadata/lib/musepack/index.js +32 -0
- package/node_modules/music-metadata/lib/musepack/sv7/BitReader.d.ts +2 -2
- package/node_modules/music-metadata/lib/musepack/sv7/BitReader.js +24 -16
- package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv7/MpcSv7Parser.js +15 -16
- package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv7/StreamVersion7.js +7 -5
- package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.d.ts +1 -1
- package/node_modules/music-metadata/lib/musepack/sv8/MpcSv8Parser.js +17 -18
- package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.d.ts +3 -5
- package/node_modules/music-metadata/lib/musepack/sv8/StreamVersion8.js +12 -14
- package/node_modules/music-metadata/lib/ogg/{OggToken.d.ts → Ogg.d.ts} +6 -17
- package/node_modules/music-metadata/lib/ogg/Ogg.js +2 -0
- package/node_modules/music-metadata/lib/ogg/OggParser.d.ts +12 -16
- package/node_modules/music-metadata/lib/ogg/OggParser.js +102 -101
- package/node_modules/music-metadata/lib/ogg/opus/Opus.d.ts +2 -17
- package/node_modules/music-metadata/lib/ogg/opus/Opus.js +14 -13
- package/node_modules/music-metadata/lib/ogg/opus/OpusParser.d.ts +25 -0
- package/node_modules/music-metadata/lib/ogg/opus/{OpusStream.js → OpusParser.js} +18 -18
- package/node_modules/music-metadata/lib/ogg/speex/Speex.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/speex/Speex.js +19 -16
- package/node_modules/music-metadata/lib/ogg/speex/SpeexParser.d.ts +22 -0
- package/node_modules/music-metadata/lib/ogg/speex/{SpeexStream.js → SpeexParser.js} +13 -9
- package/node_modules/music-metadata/lib/ogg/theora/Theora.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/theora/Theora.js +11 -8
- package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.d.ts +28 -0
- package/node_modules/music-metadata/lib/ogg/theora/TheoraParser.js +44 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.d.ts +7 -6
- package/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js +29 -34
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.d.ts +1 -1
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisDecoder.js +9 -6
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.d.ts +36 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js +128 -0
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.d.ts +3 -3
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisTagMapper.js +9 -5
- package/node_modules/music-metadata/lib/riff/RiffChunk.d.ts +5 -5
- package/node_modules/music-metadata/lib/riff/RiffChunk.js +9 -5
- package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.d.ts +2 -2
- package/node_modules/music-metadata/lib/riff/RiffInfoTagMap.js +25 -20
- package/node_modules/music-metadata/lib/type.d.ts +52 -121
- package/node_modules/music-metadata/lib/type.js +6 -2
- package/node_modules/music-metadata/lib/wav/BwfChunk.d.ts +1 -1
- package/node_modules/music-metadata/lib/wav/BwfChunk.js +11 -8
- package/node_modules/music-metadata/lib/wav/WaveChunk.d.ts +20 -50
- package/node_modules/music-metadata/lib/wav/WaveChunk.js +32 -45
- package/node_modules/music-metadata/lib/wav/WaveParser.d.ts +2 -2
- package/node_modules/music-metadata/lib/wav/WaveParser.js +39 -46
- package/node_modules/music-metadata/lib/wavpack/WavPackParser.d.ts +2 -18
- package/node_modules/music-metadata/lib/wavpack/WavPackParser.js +32 -42
- package/node_modules/music-metadata/lib/wavpack/WavPackToken.d.ts +18 -14
- package/node_modules/music-metadata/lib/wavpack/WavPackToken.js +30 -24
- package/node_modules/music-metadata/package.json +74 -81
- package/package.json +1 -5
- package/node_modules/@borewit/text-codec/LICENSE.txt +0 -9
- package/node_modules/@borewit/text-codec/README.md +0 -87
- package/node_modules/@borewit/text-codec/lib/index.d.ts +0 -6
- package/node_modules/@borewit/text-codec/lib/index.js +0 -380
- package/node_modules/@borewit/text-codec/package.json +0 -70
- package/node_modules/music-metadata/lib/ParseError.d.ts +0 -87
- package/node_modules/music-metadata/lib/ParseError.js +0 -38
- package/node_modules/music-metadata/lib/aiff/AiffLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/aiff/AiffLoader.js +0 -8
- package/node_modules/music-metadata/lib/apev2/Apev2Loader.d.ts +0 -2
- package/node_modules/music-metadata/lib/apev2/Apev2Loader.js +0 -8
- package/node_modules/music-metadata/lib/asf/AsfGuid.d.ts +0 -83
- package/node_modules/music-metadata/lib/asf/AsfGuid.js +0 -109
- package/node_modules/music-metadata/lib/asf/AsfLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/asf/AsfLoader.js +0 -8
- package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/dsdiff/DsdiffLoader.js +0 -8
- package/node_modules/music-metadata/lib/dsf/DsfLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/dsf/DsfLoader.js +0 -8
- package/node_modules/music-metadata/lib/ebml/EbmlIterator.d.ts +0 -67
- package/node_modules/music-metadata/lib/ebml/EbmlIterator.js +0 -218
- package/node_modules/music-metadata/lib/ebml/types.d.ts +0 -37
- package/node_modules/music-metadata/lib/ebml/types.js +0 -8
- package/node_modules/music-metadata/lib/flac/FlacLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/flac/FlacLoader.js +0 -8
- package/node_modules/music-metadata/lib/flac/FlacToken.d.ts +0 -45
- package/node_modules/music-metadata/lib/flac/FlacToken.js +0 -63
- package/node_modules/music-metadata/lib/id3v2/FrameHeader.d.ts +0 -31
- package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +0 -73
- package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.d.ts +0 -11
- package/node_modules/music-metadata/lib/id3v2/ID3v2ChapterToken.js +0 -17
- package/node_modules/music-metadata/lib/lrc/LyricsParser.d.ts +0 -9
- package/node_modules/music-metadata/lib/lrc/LyricsParser.js +0 -45
- package/node_modules/music-metadata/lib/matroska/MatroskaLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/matroska/MatroskaLoader.js +0 -8
- package/node_modules/music-metadata/lib/mp4/Mp4Loader.d.ts +0 -2
- package/node_modules/music-metadata/lib/mp4/Mp4Loader.js +0 -8
- package/node_modules/music-metadata/lib/mpeg/MpegLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/mpeg/MpegLoader.js +0 -8
- package/node_modules/music-metadata/lib/musepack/MusepackConentError.d.ts +0 -15
- package/node_modules/music-metadata/lib/musepack/MusepackConentError.js +0 -3
- package/node_modules/music-metadata/lib/musepack/MusepackLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/musepack/MusepackLoader.js +0 -8
- package/node_modules/music-metadata/lib/musepack/MusepackParser.d.ts +0 -4
- package/node_modules/music-metadata/lib/musepack/MusepackParser.js +0 -30
- package/node_modules/music-metadata/lib/ogg/OggLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/ogg/OggLoader.js +0 -8
- package/node_modules/music-metadata/lib/ogg/OggToken.js +0 -41
- package/node_modules/music-metadata/lib/ogg/flac/FlacStream.d.ts +0 -29
- package/node_modules/music-metadata/lib/ogg/flac/FlacStream.js +0 -74
- package/node_modules/music-metadata/lib/ogg/opus/OpusStream.d.ts +0 -24
- package/node_modules/music-metadata/lib/ogg/speex/SpeexStream.d.ts +0 -20
- package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.d.ts +0 -25
- package/node_modules/music-metadata/lib/ogg/theora/TheoraStream.js +0 -39
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.d.ts +0 -53
- package/node_modules/music-metadata/lib/ogg/vorbis/VorbisStream.js +0 -136
- package/node_modules/music-metadata/lib/wav/WaveLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/wav/WaveLoader.js +0 -8
- package/node_modules/music-metadata/lib/wavpack/WavPackLoader.d.ts +0 -2
- package/node_modules/music-metadata/lib/wavpack/WavPackLoader.js +0 -8
- package/node_modules/music-metadata/node_modules/file-type/core.d.ts +0 -253
- package/node_modules/music-metadata/node_modules/file-type/core.js +0 -2899
- package/node_modules/music-metadata/node_modules/file-type/index.d.ts +0 -98
- package/node_modules/music-metadata/node_modules/file-type/index.js +0 -163
- package/node_modules/music-metadata/node_modules/file-type/license +0 -9
- package/node_modules/music-metadata/node_modules/file-type/package.json +0 -290
- package/node_modules/music-metadata/node_modules/file-type/readme.md +0 -667
- package/node_modules/music-metadata/node_modules/file-type/supported.js +0 -360
- package/node_modules/music-metadata/node_modules/file-type/util.js +0 -60
- package/node_modules/music-metadata/node_modules/strtok3/LICENSE.txt +0 -21
- package/node_modules/music-metadata/node_modules/strtok3/README.md +0 -399
- package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.d.ts +0 -76
- package/node_modules/music-metadata/node_modules/strtok3/lib/AbstractTokenizer.js +0 -111
- package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/BlobTokenizer.js +0 -53
- package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/BufferTokenizer.js +0 -52
- package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.d.ts +0 -37
- package/node_modules/music-metadata/node_modules/strtok3/lib/FileTokenizer.js +0 -61
- package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +0 -34
- package/node_modules/music-metadata/node_modules/strtok3/lib/ReadStreamTokenizer.js +0 -107
- package/node_modules/music-metadata/node_modules/strtok3/lib/core.d.ts +0 -40
- package/node_modules/music-metadata/node_modules/strtok3/lib/core.js +0 -62
- package/node_modules/music-metadata/node_modules/strtok3/lib/index.d.ts +0 -16
- package/node_modules/music-metadata/node_modules/strtok3/lib/index.js +0 -22
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +0 -54
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/AbstractStreamReader.js +0 -71
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.d.ts +0 -6
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Deferred.js +0 -10
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.d.ts +0 -10
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/Errors.js +0 -16
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.d.ts +0 -29
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/StreamReader.js +0 -83
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +0 -14
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamByobReader.js +0 -27
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +0 -19
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +0 -62
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +0 -14
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReader.js +0 -13
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +0 -5
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +0 -19
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.d.ts +0 -6
- package/node_modules/music-metadata/node_modules/strtok3/lib/stream/index.js +0 -5
- package/node_modules/music-metadata/node_modules/strtok3/lib/types.d.ts +0 -139
- package/node_modules/music-metadata/node_modules/strtok3/lib/types.js +0 -1
- package/node_modules/music-metadata/node_modules/strtok3/package.json +0 -94
- package/node_modules/music-metadata/node_modules/token-types/LICENSE.txt +0 -9
- package/node_modules/music-metadata/node_modules/token-types/README.md +0 -120
- package/node_modules/music-metadata/node_modules/token-types/lib/index.d.ts +0 -135
- package/node_modules/music-metadata/node_modules/token-types/lib/index.js +0 -401
- package/node_modules/music-metadata/node_modules/token-types/package.json +0 -81
- package/node_modules/sprintf-js/.npmignore +0 -1
- package/node_modules/sprintf-js/LICENSE +0 -24
- package/node_modules/sprintf-js/README.md +0 -88
- package/node_modules/sprintf-js/bower.json +0 -14
- package/node_modules/sprintf-js/demo/angular.html +0 -20
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js +0 -4
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +0 -1
- package/node_modules/sprintf-js/dist/angular-sprintf.min.map +0 -1
- package/node_modules/sprintf-js/dist/sprintf.min.js +0 -4
- package/node_modules/sprintf-js/dist/sprintf.min.js.map +0 -1
- package/node_modules/sprintf-js/dist/sprintf.min.map +0 -1
- package/node_modules/sprintf-js/gruntfile.js +0 -36
- package/node_modules/sprintf-js/package.json +0 -22
- package/node_modules/sprintf-js/src/angular-sprintf.js +0 -18
- package/node_modules/sprintf-js/src/sprintf.js +0 -208
- package/node_modules/sprintf-js/test/test.js +0 -82
- package/node_modules/uint8array-extras/index.d.ts +0 -331
- package/node_modules/uint8array-extras/index.js +0 -318
- package/node_modules/uint8array-extras/license +0 -9
- package/node_modules/uint8array-extras/package.json +0 -54
- package/node_modules/uint8array-extras/readme.md +0 -318
- package/node_modules/win-guid/LICENSE.txt +0 -9
- package/node_modules/win-guid/README.md +0 -113
- package/node_modules/win-guid/lib/guid.d.ts +0 -20
- package/node_modules/win-guid/lib/guid.js +0 -107
- package/node_modules/win-guid/package.json +0 -55
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/LICENSE +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/README.md +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/index.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append/constant.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/append.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/count.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/help.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/constant.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/false.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store/true.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/store.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/subparsers.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action/version.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/action_container.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argparse.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/error.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/exclusive.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument/group.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/argument_parser.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/const.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/added_formatters.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/help/formatter.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/namespace.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/lib/utils.js +0 -0
- /package/node_modules/{argparse → mammoth/node_modules/argparse}/package.json +0 -0
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
11
|
-
prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
|
|
12
|
-
stackTraceLimit: number;
|
|
13
|
-
};
|
|
14
|
-
export declare class OggContentError extends OggContentError_base {
|
|
1
|
+
import { IGetToken } from 'strtok3/lib/core';
|
|
2
|
+
import { BasicParser } from '../common/BasicParser';
|
|
3
|
+
import * as Ogg from './Ogg';
|
|
4
|
+
export declare class SegmentTable implements IGetToken<Ogg.ISegmentTable> {
|
|
5
|
+
private static sum;
|
|
6
|
+
len: number;
|
|
7
|
+
constructor(header: Ogg.IPageHeader);
|
|
8
|
+
get(buf: any, off: any): Ogg.ISegmentTable;
|
|
15
9
|
}
|
|
16
10
|
/**
|
|
17
11
|
* Parser for Ogg logical bitstream framing
|
|
18
12
|
*/
|
|
19
13
|
export declare class OggParser extends BasicParser {
|
|
20
|
-
private
|
|
14
|
+
private static Header;
|
|
15
|
+
private header;
|
|
16
|
+
private pageNumber;
|
|
17
|
+
private pageConsumer;
|
|
21
18
|
/**
|
|
22
19
|
* Parse page
|
|
23
20
|
* @returns {Promise<void>}
|
|
24
21
|
*/
|
|
25
22
|
parse(): Promise<void>;
|
|
26
23
|
}
|
|
27
|
-
export {};
|
|
@@ -1,125 +1,126 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const debug =
|
|
15
|
-
class
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.streamSerial = streamSerial;
|
|
21
|
-
this.options = options;
|
|
22
|
-
}
|
|
23
|
-
async parsePage(tokenizer, header) {
|
|
24
|
-
this.pageNumber = header.pageSequenceNo;
|
|
25
|
-
debug('serial=%s page#=%s, Ogg.id=%s', header.streamSerialNumber, header.pageSequenceNo, header.capturePattern);
|
|
26
|
-
const segmentTable = await tokenizer.readToken(new SegmentTable(header));
|
|
27
|
-
debug('totalPageSize=%s', segmentTable.totalPageSize);
|
|
28
|
-
const pageData = await tokenizer.readToken(new Token.Uint8ArrayType(segmentTable.totalPageSize));
|
|
29
|
-
debug('firstPage=%s, lastPage=%s, continued=%s', header.headerType.firstPage, header.headerType.lastPage, header.headerType.continued);
|
|
30
|
-
if (header.headerType.firstPage) {
|
|
31
|
-
this.metadata.setFormat('container', 'Ogg');
|
|
32
|
-
const idData = pageData.subarray(0, 7); // Copy this portion
|
|
33
|
-
const asciiId = Array.from(idData)
|
|
34
|
-
.filter(b => b >= 32 && b <= 126) // Keep only printable ASCII
|
|
35
|
-
.map(b => String.fromCharCode(b))
|
|
36
|
-
.join('');
|
|
37
|
-
switch (asciiId) {
|
|
38
|
-
case 'vorbis': // Ogg/Vorbis
|
|
39
|
-
debug(`Set Ogg stream serial ${header.streamSerialNumber}, codec=Vorbis`);
|
|
40
|
-
this.pageConsumer = new VorbisStream(this.metadata, this.options);
|
|
41
|
-
break;
|
|
42
|
-
case 'OpusHea': // Ogg/Opus
|
|
43
|
-
debug('Set page consumer to Ogg/Opus');
|
|
44
|
-
this.pageConsumer = new OpusStream(this.metadata, this.options, tokenizer);
|
|
45
|
-
break;
|
|
46
|
-
case 'Speex ': // Ogg/Speex
|
|
47
|
-
debug('Set page consumer to Ogg/Speex');
|
|
48
|
-
this.pageConsumer = new SpeexStream(this.metadata, this.options, tokenizer);
|
|
49
|
-
break;
|
|
50
|
-
case 'fishead':
|
|
51
|
-
case 'theora': // Ogg/Theora
|
|
52
|
-
debug('Set page consumer to Ogg/Theora');
|
|
53
|
-
this.pageConsumer = new TheoraStream(this.metadata, this.options, tokenizer);
|
|
54
|
-
break;
|
|
55
|
-
case 'FLAC': // Ogg/Theora
|
|
56
|
-
debug('Set page consumer to Vorbis');
|
|
57
|
-
this.pageConsumer = new FlacStream(this.metadata, this.options, tokenizer);
|
|
58
|
-
break;
|
|
59
|
-
default:
|
|
60
|
-
throw new OggContentError(`Ogg codec not recognized (id=${asciiId}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (header.headerType.lastPage) {
|
|
64
|
-
this.closed = true;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OggParser = exports.SegmentTable = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
5
|
+
const core_1 = require("strtok3/lib/core");
|
|
6
|
+
const debug_1 = require("debug");
|
|
7
|
+
const util = require("../common/Util");
|
|
8
|
+
const FourCC_1 = require("../common/FourCC");
|
|
9
|
+
const BasicParser_1 = require("../common/BasicParser");
|
|
10
|
+
const VorbisParser_1 = require("./vorbis/VorbisParser");
|
|
11
|
+
const OpusParser_1 = require("./opus/OpusParser");
|
|
12
|
+
const SpeexParser_1 = require("./speex/SpeexParser");
|
|
13
|
+
const TheoraParser_1 = require("./theora/TheoraParser");
|
|
14
|
+
const debug = (0, debug_1.default)('music-metadata:parser:ogg');
|
|
15
|
+
class SegmentTable {
|
|
16
|
+
static sum(buf, off, len) {
|
|
17
|
+
let s = 0;
|
|
18
|
+
for (let i = off; i < off + len; ++i) {
|
|
19
|
+
s += buf[i];
|
|
65
20
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
21
|
+
return s;
|
|
22
|
+
}
|
|
23
|
+
constructor(header) {
|
|
24
|
+
this.len = header.page_segments;
|
|
25
|
+
}
|
|
26
|
+
get(buf, off) {
|
|
27
|
+
return {
|
|
28
|
+
totalPageSize: SegmentTable.sum(buf, off, this.len)
|
|
29
|
+
};
|
|
71
30
|
}
|
|
72
31
|
}
|
|
32
|
+
exports.SegmentTable = SegmentTable;
|
|
73
33
|
/**
|
|
74
34
|
* Parser for Ogg logical bitstream framing
|
|
75
35
|
*/
|
|
76
|
-
|
|
77
|
-
constructor() {
|
|
78
|
-
super(...arguments);
|
|
79
|
-
this.streams = new Map();
|
|
80
|
-
}
|
|
36
|
+
class OggParser extends BasicParser_1.BasicParser {
|
|
81
37
|
/**
|
|
82
38
|
* Parse page
|
|
83
39
|
* @returns {Promise<void>}
|
|
84
40
|
*/
|
|
85
41
|
async parse() {
|
|
86
|
-
|
|
87
|
-
let enfOfStream = false;
|
|
88
|
-
let header;
|
|
42
|
+
debug('pos=%s, parsePage()', this.tokenizer.position);
|
|
89
43
|
try {
|
|
44
|
+
let header;
|
|
90
45
|
do {
|
|
91
|
-
header = await this.tokenizer.readToken(
|
|
46
|
+
header = await this.tokenizer.readToken(OggParser.Header);
|
|
92
47
|
if (header.capturePattern !== 'OggS')
|
|
93
|
-
throw new
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
48
|
+
throw new Error('Invalid Ogg capture pattern');
|
|
49
|
+
this.metadata.setFormat('container', 'Ogg');
|
|
50
|
+
this.header = header;
|
|
51
|
+
this.pageNumber = header.pageSequenceNo;
|
|
52
|
+
debug('page#=%s, Ogg.id=%s', header.pageSequenceNo, header.capturePattern);
|
|
53
|
+
const segmentTable = await this.tokenizer.readToken(new SegmentTable(header));
|
|
54
|
+
debug('totalPageSize=%s', segmentTable.totalPageSize);
|
|
55
|
+
const pageData = await this.tokenizer.readToken(new Token.Uint8ArrayType(segmentTable.totalPageSize));
|
|
56
|
+
debug('firstPage=%s, lastPage=%s, continued=%s', header.headerType.firstPage, header.headerType.lastPage, header.headerType.continued);
|
|
57
|
+
if (header.headerType.firstPage) {
|
|
58
|
+
const id = new Token.StringType(7, 'ascii').get(Buffer.from(pageData), 0);
|
|
59
|
+
switch (id) {
|
|
60
|
+
case '\x01vorbis': // Ogg/Vorbis
|
|
61
|
+
debug('Set page consumer to Ogg/Vorbis');
|
|
62
|
+
this.pageConsumer = new VorbisParser_1.VorbisParser(this.metadata, this.options);
|
|
63
|
+
break;
|
|
64
|
+
case 'OpusHea': // Ogg/Opus
|
|
65
|
+
debug('Set page consumer to Ogg/Opus');
|
|
66
|
+
this.pageConsumer = new OpusParser_1.OpusParser(this.metadata, this.options, this.tokenizer);
|
|
67
|
+
break;
|
|
68
|
+
case 'Speex ': // Ogg/Speex
|
|
69
|
+
debug('Set page consumer to Ogg/Speex');
|
|
70
|
+
this.pageConsumer = new SpeexParser_1.SpeexParser(this.metadata, this.options, this.tokenizer);
|
|
71
|
+
break;
|
|
72
|
+
case 'fishead':
|
|
73
|
+
case '\x00theora': // Ogg/Theora
|
|
74
|
+
debug('Set page consumer to Ogg/Theora');
|
|
75
|
+
this.pageConsumer = new TheoraParser_1.TheoraParser(this.metadata, this.options, this.tokenizer);
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
throw new Error('gg audio-codec not recognized (id=' + id + ')');
|
|
79
|
+
}
|
|
103
80
|
}
|
|
104
|
-
|
|
81
|
+
this.pageConsumer.parsePage(header, pageData);
|
|
82
|
+
} while (!header.headerType.lastPage);
|
|
105
83
|
}
|
|
106
84
|
catch (err) {
|
|
107
|
-
if (err instanceof EndOfStreamError) {
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
if (err instanceof core_1.EndOfStreamError) {
|
|
86
|
+
this.metadata.addWarning('Last OGG-page is not marked with last-page flag');
|
|
87
|
+
debug(`End-of-stream`);
|
|
88
|
+
this.metadata.addWarning('Last OGG-page is not marked with last-page flag');
|
|
89
|
+
if (this.header) {
|
|
90
|
+
this.pageConsumer.calculateDuration(this.header);
|
|
91
|
+
}
|
|
110
92
|
}
|
|
111
|
-
else if (err
|
|
112
|
-
this.
|
|
93
|
+
else if (err.message.startsWith('FourCC')) {
|
|
94
|
+
if (this.pageNumber > 0) {
|
|
95
|
+
// ignore this error: work-around if last OGG-page is not marked with last-page flag
|
|
96
|
+
this.metadata.addWarning('Invalid FourCC ID, maybe last OGG-page is not marked with last-page flag');
|
|
97
|
+
this.pageConsumer.flush();
|
|
98
|
+
}
|
|
113
99
|
}
|
|
114
|
-
else
|
|
100
|
+
else {
|
|
115
101
|
throw err;
|
|
116
|
-
}
|
|
117
|
-
for (const stream of this.streams.values()) {
|
|
118
|
-
if (!stream.closed) {
|
|
119
|
-
this.metadata.addWarning(`End-of-stream reached before reaching last page in Ogg stream serial=${stream.streamSerial}`);
|
|
120
|
-
await stream.pageConsumer?.flush();
|
|
121
102
|
}
|
|
122
|
-
stream.pageConsumer?.calculateDuration(enfOfStream);
|
|
123
103
|
}
|
|
124
104
|
}
|
|
125
105
|
}
|
|
106
|
+
OggParser.Header = {
|
|
107
|
+
len: 27,
|
|
108
|
+
get: (buf, off) => {
|
|
109
|
+
return {
|
|
110
|
+
capturePattern: FourCC_1.FourCcToken.get(buf, off),
|
|
111
|
+
version: Token.UINT8.get(buf, off + 4),
|
|
112
|
+
headerType: {
|
|
113
|
+
continued: util.getBit(buf, off + 5, 0),
|
|
114
|
+
firstPage: util.getBit(buf, off + 5, 1),
|
|
115
|
+
lastPage: util.getBit(buf, off + 5, 2)
|
|
116
|
+
},
|
|
117
|
+
// packet_flag: buf.readUInt8(off + 5),
|
|
118
|
+
absoluteGranulePosition: Number(Token.UINT64_LE.get(buf, off + 6)),
|
|
119
|
+
streamSerialNumber: Token.UINT32_LE.get(buf, off + 14),
|
|
120
|
+
pageSequenceNo: Token.UINT32_LE.get(buf, off + 18),
|
|
121
|
+
pageChecksum: Token.UINT32_LE.get(buf, off + 22),
|
|
122
|
+
page_segments: Token.UINT8.get(buf, off + 26)
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
exports.OggParser = OggParser;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { IGetToken } from 'strtok3/lib/core';
|
|
2
2
|
/**
|
|
3
3
|
* Opus ID Header interface
|
|
4
4
|
* Ref: https://wiki.xiph.org/OggOpus#ID_Header
|
|
@@ -37,20 +37,6 @@ export interface IIdHeader {
|
|
|
37
37
|
*/
|
|
38
38
|
channelMapping: number;
|
|
39
39
|
}
|
|
40
|
-
declare const OpusContentError_base: {
|
|
41
|
-
new (message: string): {
|
|
42
|
-
readonly fileType: string;
|
|
43
|
-
toString(): string;
|
|
44
|
-
name: "UnexpectedFileContentError";
|
|
45
|
-
message: string;
|
|
46
|
-
stack?: string;
|
|
47
|
-
};
|
|
48
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
49
|
-
prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
|
|
50
|
-
stackTraceLimit: number;
|
|
51
|
-
};
|
|
52
|
-
export declare class OpusContentError extends OpusContentError_base {
|
|
53
|
-
}
|
|
54
40
|
/**
|
|
55
41
|
* Opus ID Header parser
|
|
56
42
|
* Ref: https://wiki.xiph.org/OggOpus#ID_Header
|
|
@@ -58,6 +44,5 @@ export declare class OpusContentError extends OpusContentError_base {
|
|
|
58
44
|
export declare class IdHeader implements IGetToken<IIdHeader> {
|
|
59
45
|
len: number;
|
|
60
46
|
constructor(len: number);
|
|
61
|
-
get(buf:
|
|
47
|
+
get(buf: any, off: any): IIdHeader;
|
|
62
48
|
}
|
|
63
|
-
export {};
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IdHeader = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
5
5
|
/**
|
|
6
6
|
* Opus ID Header parser
|
|
7
7
|
* Ref: https://wiki.xiph.org/OggOpus#ID_Header
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
class IdHeader {
|
|
10
10
|
constructor(len) {
|
|
11
|
+
this.len = len;
|
|
11
12
|
if (len < 19) {
|
|
12
|
-
throw new
|
|
13
|
+
throw new Error("ID-header-page 0 should be at least 19 bytes long");
|
|
13
14
|
}
|
|
14
|
-
this.len = len;
|
|
15
15
|
}
|
|
16
16
|
get(buf, off) {
|
|
17
17
|
return {
|
|
18
18
|
magicSignature: new Token.StringType(8, 'ascii').get(buf, off + 0),
|
|
19
|
-
version:
|
|
20
|
-
channelCount:
|
|
21
|
-
preSkip:
|
|
22
|
-
inputSampleRate:
|
|
23
|
-
outputGain:
|
|
24
|
-
channelMapping:
|
|
19
|
+
version: buf.readUInt8(off + 8),
|
|
20
|
+
channelCount: buf.readUInt8(off + 9),
|
|
21
|
+
preSkip: buf.readInt16LE(off + 10),
|
|
22
|
+
inputSampleRate: buf.readInt32LE(off + 12),
|
|
23
|
+
outputGain: buf.readInt16LE(off + 16),
|
|
24
|
+
channelMapping: buf.readUInt8(off + 18)
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
exports.IdHeader = IdHeader;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ITokenizer } from 'strtok3/lib/core';
|
|
3
|
+
import { IPageHeader } from '../Ogg';
|
|
4
|
+
import { VorbisParser } from '../vorbis/VorbisParser';
|
|
5
|
+
import { IOptions } from '../../type';
|
|
6
|
+
import { INativeMetadataCollector } from '../../common/MetadataCollector';
|
|
7
|
+
/**
|
|
8
|
+
* Opus parser
|
|
9
|
+
* Internet Engineering Task Force (IETF) - RFC 6716
|
|
10
|
+
* Used by OggParser
|
|
11
|
+
*/
|
|
12
|
+
export declare class OpusParser extends VorbisParser {
|
|
13
|
+
private tokenizer;
|
|
14
|
+
private idHeader;
|
|
15
|
+
private lastPos;
|
|
16
|
+
constructor(metadata: INativeMetadataCollector, options: IOptions, tokenizer: ITokenizer);
|
|
17
|
+
/**
|
|
18
|
+
* Parse first Opus Ogg page
|
|
19
|
+
* @param {IPageHeader} header
|
|
20
|
+
* @param {Buffer} pageData
|
|
21
|
+
*/
|
|
22
|
+
protected parseFirstPage(header: IPageHeader, pageData: Buffer): void;
|
|
23
|
+
protected parseFullPage(pageData: Buffer): void;
|
|
24
|
+
calculateDuration(header: IPageHeader): void;
|
|
25
|
+
}
|
|
@@ -1,50 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpusParser = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
5
|
+
const VorbisParser_1 = require("../vorbis/VorbisParser");
|
|
6
|
+
const Opus = require("./Opus");
|
|
5
7
|
/**
|
|
6
8
|
* Opus parser
|
|
7
9
|
* Internet Engineering Task Force (IETF) - RFC 6716
|
|
8
|
-
* Used by
|
|
10
|
+
* Used by OggParser
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
class OpusParser extends VorbisParser_1.VorbisParser {
|
|
11
13
|
constructor(metadata, options, tokenizer) {
|
|
12
14
|
super(metadata, options);
|
|
13
|
-
this.idHeader = null;
|
|
14
|
-
this.lastPos = -1;
|
|
15
15
|
this.tokenizer = tokenizer;
|
|
16
|
-
this.
|
|
16
|
+
this.lastPos = -1;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Parse first Opus Ogg page
|
|
20
20
|
* @param {IPageHeader} header
|
|
21
|
-
* @param {
|
|
21
|
+
* @param {Buffer} pageData
|
|
22
22
|
*/
|
|
23
|
-
parseFirstPage(
|
|
23
|
+
parseFirstPage(header, pageData) {
|
|
24
24
|
this.metadata.setFormat('codec', 'Opus');
|
|
25
25
|
// Parse Opus ID Header
|
|
26
26
|
this.idHeader = new Opus.IdHeader(pageData.length).get(pageData, 0);
|
|
27
27
|
if (this.idHeader.magicSignature !== "OpusHead")
|
|
28
|
-
throw new
|
|
28
|
+
throw new Error("Illegal ogg/Opus magic-signature");
|
|
29
29
|
this.metadata.setFormat('sampleRate', this.idHeader.inputSampleRate);
|
|
30
30
|
this.metadata.setFormat('numberOfChannels', this.idHeader.channelCount);
|
|
31
|
-
this.metadata.setAudioOnly();
|
|
32
31
|
}
|
|
33
|
-
|
|
32
|
+
parseFullPage(pageData) {
|
|
34
33
|
const magicSignature = new Token.StringType(8, 'ascii').get(pageData, 0);
|
|
35
34
|
switch (magicSignature) {
|
|
36
35
|
case 'OpusTags':
|
|
37
|
-
|
|
36
|
+
this.parseUserCommentList(pageData, 8);
|
|
38
37
|
this.lastPos = this.tokenizer.position - pageData.length;
|
|
39
38
|
break;
|
|
40
39
|
default:
|
|
41
40
|
break;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
calculateDuration(
|
|
45
|
-
if (this.
|
|
43
|
+
calculateDuration(header) {
|
|
44
|
+
if (this.metadata.format.sampleRate && header.absoluteGranulePosition >= 0) {
|
|
46
45
|
// Calculate duration
|
|
47
|
-
const pos_48bit =
|
|
46
|
+
const pos_48bit = header.absoluteGranulePosition - this.idHeader.preSkip;
|
|
48
47
|
this.metadata.setFormat('numberOfSamples', pos_48bit);
|
|
49
48
|
this.metadata.setFormat('duration', pos_48bit / 48000);
|
|
50
49
|
if (this.lastPos !== -1 && this.tokenizer.fileInfo.size && this.metadata.format.duration) {
|
|
@@ -54,3 +53,4 @@ export class OpusStream extends VorbisStream {
|
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
}
|
|
56
|
+
exports.OpusParser = OpusParser;
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Header = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
5
|
+
const util = require("../../common/Util");
|
|
3
6
|
/**
|
|
4
7
|
* Speex Header Packet
|
|
5
8
|
* Ref: https://www.speex.org/docs/manual/speex-manual/node8.html#SECTION00830000000000000000
|
|
6
9
|
*/
|
|
7
|
-
|
|
10
|
+
exports.Header = {
|
|
8
11
|
len: 80,
|
|
9
12
|
get: (buf, off) => {
|
|
10
13
|
return {
|
|
11
14
|
speex: new Token.StringType(8, 'ascii').get(buf, off + 0),
|
|
12
15
|
version: util.trimRightNull(new Token.StringType(20, 'ascii').get(buf, off + 8)),
|
|
13
|
-
version_id:
|
|
14
|
-
header_size:
|
|
15
|
-
rate:
|
|
16
|
-
mode:
|
|
17
|
-
mode_bitstream_version:
|
|
18
|
-
nb_channels:
|
|
19
|
-
bitrate:
|
|
20
|
-
frame_size:
|
|
21
|
-
vbr:
|
|
22
|
-
frames_per_packet:
|
|
23
|
-
extra_headers:
|
|
24
|
-
reserved1:
|
|
25
|
-
reserved2:
|
|
16
|
+
version_id: buf.readInt32LE(off + 28),
|
|
17
|
+
header_size: buf.readInt32LE(off + 32),
|
|
18
|
+
rate: buf.readInt32LE(off + 36),
|
|
19
|
+
mode: buf.readInt32LE(off + 40),
|
|
20
|
+
mode_bitstream_version: buf.readInt32LE(off + 44),
|
|
21
|
+
nb_channels: buf.readInt32LE(off + 48),
|
|
22
|
+
bitrate: buf.readInt32LE(off + 52),
|
|
23
|
+
frame_size: buf.readInt32LE(off + 56),
|
|
24
|
+
vbr: buf.readInt32LE(off + 60),
|
|
25
|
+
frames_per_packet: buf.readInt32LE(off + 64),
|
|
26
|
+
extra_headers: buf.readInt32LE(off + 68),
|
|
27
|
+
reserved1: buf.readInt32LE(off + 72),
|
|
28
|
+
reserved2: buf.readInt32LE(off + 76)
|
|
26
29
|
};
|
|
27
30
|
}
|
|
28
31
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ITokenizer } from 'strtok3/lib/core';
|
|
3
|
+
import { IPageHeader } from '../Ogg';
|
|
4
|
+
import { VorbisParser } from '../vorbis/VorbisParser';
|
|
5
|
+
import { IOptions } from '../../type';
|
|
6
|
+
import { INativeMetadataCollector } from '../../common/MetadataCollector';
|
|
7
|
+
/**
|
|
8
|
+
* Speex, RFC 5574
|
|
9
|
+
* Ref:
|
|
10
|
+
* - https://www.speex.org/docs/manual/speex-manual/
|
|
11
|
+
* - https://tools.ietf.org/html/rfc5574
|
|
12
|
+
*/
|
|
13
|
+
export declare class SpeexParser extends VorbisParser {
|
|
14
|
+
private tokenizer;
|
|
15
|
+
constructor(metadata: INativeMetadataCollector, options: IOptions, tokenizer: ITokenizer);
|
|
16
|
+
/**
|
|
17
|
+
* Parse first Speex Ogg page
|
|
18
|
+
* @param {IPageHeader} header
|
|
19
|
+
* @param {Buffer} pageData
|
|
20
|
+
*/
|
|
21
|
+
protected parseFirstPage(header: IPageHeader, pageData: Buffer): void;
|
|
22
|
+
}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpeexParser = void 0;
|
|
4
|
+
const debug_1 = require("debug");
|
|
5
|
+
const VorbisParser_1 = require("../vorbis/VorbisParser");
|
|
6
|
+
const Speex = require("./Speex");
|
|
7
|
+
const debug = (0, debug_1.default)('music-metadata:parser:ogg:speex');
|
|
5
8
|
/**
|
|
6
9
|
* Speex, RFC 5574
|
|
7
10
|
* Ref:
|
|
8
11
|
* - https://www.speex.org/docs/manual/speex-manual/
|
|
9
12
|
* - https://tools.ietf.org/html/rfc5574
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
constructor(metadata, options,
|
|
14
|
+
class SpeexParser extends VorbisParser_1.VorbisParser {
|
|
15
|
+
constructor(metadata, options, tokenizer) {
|
|
13
16
|
super(metadata, options);
|
|
17
|
+
this.tokenizer = tokenizer;
|
|
14
18
|
}
|
|
15
19
|
/**
|
|
16
20
|
* Parse first Speex Ogg page
|
|
17
21
|
* @param {IPageHeader} header
|
|
18
|
-
* @param {
|
|
22
|
+
* @param {Buffer} pageData
|
|
19
23
|
*/
|
|
20
|
-
parseFirstPage(
|
|
24
|
+
parseFirstPage(header, pageData) {
|
|
21
25
|
debug('First Ogg/Speex page');
|
|
22
26
|
const speexHeader = Speex.Header.get(pageData, 0);
|
|
23
27
|
this.metadata.setFormat('codec', `Speex ${speexHeader.version}`);
|
|
@@ -26,6 +30,6 @@ export class SpeexStream extends VorbisStream {
|
|
|
26
30
|
if (speexHeader.bitrate !== -1) {
|
|
27
31
|
this.metadata.setFormat('bitrate', speexHeader.bitrate);
|
|
28
32
|
}
|
|
29
|
-
this.metadata.setAudioOnly();
|
|
30
33
|
}
|
|
31
34
|
}
|
|
35
|
+
exports.SpeexParser = SpeexParser;
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IdentificationHeader = void 0;
|
|
4
|
+
const Token = require("token-types");
|
|
2
5
|
/**
|
|
3
6
|
* 6.2 Identification Header
|
|
4
7
|
* Ref: https://theora.org/doc/Theora.pdf: 6.2 Identification Header Decode
|
|
5
8
|
*/
|
|
6
|
-
|
|
9
|
+
exports.IdentificationHeader = {
|
|
7
10
|
len: 42,
|
|
8
11
|
get: (buf, off) => {
|
|
9
12
|
return {
|
|
10
13
|
id: new Token.StringType(7, 'ascii').get(buf, off),
|
|
11
|
-
vmaj:
|
|
12
|
-
vmin:
|
|
13
|
-
vrev:
|
|
14
|
-
vmbw:
|
|
15
|
-
vmbh:
|
|
14
|
+
vmaj: buf.readUInt8(off + 7),
|
|
15
|
+
vmin: buf.readUInt8(off + 8),
|
|
16
|
+
vrev: buf.readUInt8(off + 9),
|
|
17
|
+
vmbw: buf.readUInt16BE(off + 10),
|
|
18
|
+
vmbh: buf.readUInt16BE(off + 17),
|
|
16
19
|
nombr: Token.UINT24_BE.get(buf, off + 37),
|
|
17
|
-
nqual:
|
|
20
|
+
nqual: buf.readUInt8(off + 40)
|
|
18
21
|
};
|
|
19
22
|
}
|
|
20
23
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ITokenizer } from 'strtok3/lib/core';
|
|
3
|
+
import { IOptions } from '../../type';
|
|
4
|
+
import { INativeMetadataCollector } from '../../common/MetadataCollector';
|
|
5
|
+
import * as Ogg from '../Ogg';
|
|
6
|
+
/**
|
|
7
|
+
* Ref:
|
|
8
|
+
* - https://theora.org/doc/Theora.pdf
|
|
9
|
+
*/
|
|
10
|
+
export declare class TheoraParser implements Ogg.IPageConsumer {
|
|
11
|
+
private metadata;
|
|
12
|
+
private tokenizer;
|
|
13
|
+
constructor(metadata: INativeMetadataCollector, options: IOptions, tokenizer: ITokenizer);
|
|
14
|
+
/**
|
|
15
|
+
* Vorbis 1 parser
|
|
16
|
+
* @param header Ogg Page Header
|
|
17
|
+
* @param pageData Page data
|
|
18
|
+
*/
|
|
19
|
+
parsePage(header: Ogg.IPageHeader, pageData: Buffer): void;
|
|
20
|
+
flush(): void;
|
|
21
|
+
calculateDuration(header: Ogg.IPageHeader): void;
|
|
22
|
+
/**
|
|
23
|
+
* Parse first Theora Ogg page. the initial identification header packet
|
|
24
|
+
* @param {IPageHeader} header
|
|
25
|
+
* @param {Buffer} pageData
|
|
26
|
+
*/
|
|
27
|
+
protected parseFirstPage(header: Ogg.IPageHeader, pageData: Buffer): void;
|
|
28
|
+
}
|