music-metadata 7.11.7 → 7.11.8

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.
Files changed (152) hide show
  1. package/README.md +433 -432
  2. package/lib/ParserFactory.d.ts +48 -49
  3. package/lib/ParserFactory.js +251 -251
  4. package/lib/aiff/AiffParser.d.ts +14 -15
  5. package/lib/aiff/AiffParser.js +84 -85
  6. package/lib/aiff/AiffToken.d.ts +22 -22
  7. package/lib/aiff/AiffToken.js +43 -43
  8. package/lib/apev2/APEv2Parser.d.ts +30 -30
  9. package/lib/apev2/APEv2Parser.js +161 -162
  10. package/lib/apev2/APEv2TagMapper.d.ts +4 -4
  11. package/lib/apev2/APEv2TagMapper.js +86 -86
  12. package/lib/apev2/APEv2Token.d.ts +100 -100
  13. package/lib/apev2/APEv2Token.js +126 -126
  14. package/lib/asf/AsfObject.d.ts +319 -319
  15. package/lib/asf/AsfObject.js +384 -384
  16. package/lib/asf/AsfParser.d.ts +17 -17
  17. package/lib/asf/AsfParser.js +135 -135
  18. package/lib/asf/AsfTagMapper.d.ts +7 -7
  19. package/lib/asf/AsfTagMapper.js +95 -95
  20. package/lib/asf/AsfUtil.d.ts +13 -13
  21. package/lib/asf/AsfUtil.js +40 -40
  22. package/lib/asf/GUID.d.ts +84 -86
  23. package/lib/asf/GUID.js +121 -123
  24. package/lib/common/BasicParser.d.ts +17 -17
  25. package/lib/common/BasicParser.js +18 -18
  26. package/lib/common/CaseInsensitiveTagMap.d.ts +10 -10
  27. package/lib/common/CaseInsensitiveTagMap.js +21 -21
  28. package/lib/common/CombinedTagMapper.d.ts +19 -19
  29. package/lib/common/CombinedTagMapper.js +51 -51
  30. package/lib/common/FourCC.d.ts +6 -6
  31. package/lib/common/FourCC.js +28 -28
  32. package/lib/common/GenericTagMapper.d.ts +51 -51
  33. package/lib/common/GenericTagMapper.js +55 -55
  34. package/lib/common/GenericTagTypes.d.ts +33 -33
  35. package/lib/common/GenericTagTypes.js +131 -131
  36. package/lib/common/MetadataCollector.d.ts +76 -76
  37. package/lib/common/MetadataCollector.js +275 -275
  38. package/lib/common/RandomFileReader.d.ts +20 -20
  39. package/lib/common/RandomFileReader.js +37 -37
  40. package/lib/common/RandomUint8ArrayReader.d.ts +18 -18
  41. package/lib/common/RandomUint8ArrayReader.js +25 -25
  42. package/lib/common/Util.d.ts +58 -58
  43. package/lib/common/Util.js +157 -162
  44. package/lib/core.d.ts +48 -48
  45. package/lib/core.js +90 -90
  46. package/lib/dsdiff/DsdiffParser.d.ts +14 -14
  47. package/lib/dsdiff/DsdiffParser.js +143 -143
  48. package/lib/dsdiff/DsdiffToken.d.ts +9 -9
  49. package/lib/dsdiff/DsdiffToken.js +21 -21
  50. package/lib/dsf/DsfChunk.d.ts +86 -86
  51. package/lib/dsf/DsfChunk.js +54 -54
  52. package/lib/dsf/DsfParser.d.ts +9 -9
  53. package/lib/dsf/DsfParser.js +56 -56
  54. package/lib/flac/FlacParser.d.ts +28 -28
  55. package/lib/flac/FlacParser.js +175 -175
  56. package/lib/id3v1/ID3v1Parser.d.ts +13 -13
  57. package/lib/id3v1/ID3v1Parser.js +134 -134
  58. package/lib/id3v1/ID3v1TagMap.d.ts +4 -4
  59. package/lib/id3v1/ID3v1TagMap.js +22 -22
  60. package/lib/id3v2/AbstractID3Parser.d.ts +17 -17
  61. package/lib/id3v2/AbstractID3Parser.js +60 -60
  62. package/lib/id3v2/FrameParser.d.ts +32 -32
  63. package/lib/id3v2/FrameParser.js +329 -329
  64. package/lib/id3v2/ID3v22TagMapper.d.ts +9 -9
  65. package/lib/id3v2/ID3v22TagMapper.js +55 -55
  66. package/lib/id3v2/ID3v24TagMapper.d.ts +14 -14
  67. package/lib/id3v2/ID3v24TagMapper.js +193 -193
  68. package/lib/id3v2/ID3v2Parser.d.ts +29 -29
  69. package/lib/id3v2/ID3v2Parser.js +184 -194
  70. package/lib/id3v2/ID3v2Token.d.ts +73 -73
  71. package/lib/id3v2/ID3v2Token.js +106 -106
  72. package/lib/iff/index.d.ts +33 -33
  73. package/lib/iff/index.js +19 -19
  74. package/lib/index.d.ts +45 -45
  75. package/lib/index.js +74 -74
  76. package/lib/lyrics3/Lyrics3.d.ts +3 -3
  77. package/lib/lyrics3/Lyrics3.js +17 -17
  78. package/lib/matroska/MatroskaDtd.d.ts +8 -8
  79. package/lib/matroska/MatroskaDtd.js +279 -279
  80. package/lib/matroska/MatroskaParser.d.ts +37 -37
  81. package/lib/matroska/MatroskaParser.js +235 -235
  82. package/lib/matroska/MatroskaTagMapper.d.ts +4 -4
  83. package/lib/matroska/MatroskaTagMapper.js +35 -35
  84. package/lib/matroska/types.d.ts +175 -175
  85. package/lib/matroska/types.js +33 -32
  86. package/lib/mp4/Atom.d.ts +16 -16
  87. package/lib/mp4/Atom.js +70 -70
  88. package/lib/mp4/AtomToken.d.ts +395 -395
  89. package/lib/mp4/AtomToken.js +406 -406
  90. package/lib/mp4/MP4Parser.d.ts +30 -30
  91. package/lib/mp4/MP4Parser.js +511 -511
  92. package/lib/mp4/MP4TagMapper.d.ts +5 -5
  93. package/lib/mp4/MP4TagMapper.js +115 -115
  94. package/lib/mpeg/ExtendedLameHeader.d.ts +27 -27
  95. package/lib/mpeg/ExtendedLameHeader.js +31 -31
  96. package/lib/mpeg/MpegParser.d.ts +49 -49
  97. package/lib/mpeg/MpegParser.js +524 -529
  98. package/lib/mpeg/ReplayGainDataFormat.d.ts +55 -55
  99. package/lib/mpeg/ReplayGainDataFormat.js +69 -69
  100. package/lib/mpeg/XingTag.d.ts +45 -45
  101. package/lib/mpeg/XingTag.js +69 -69
  102. package/lib/musepack/index.d.ts +5 -5
  103. package/lib/musepack/index.js +32 -32
  104. package/lib/musepack/sv7/BitReader.d.ts +13 -13
  105. package/lib/musepack/sv7/BitReader.js +54 -54
  106. package/lib/musepack/sv7/MpcSv7Parser.d.ts +8 -8
  107. package/lib/musepack/sv7/MpcSv7Parser.js +46 -46
  108. package/lib/musepack/sv7/StreamVersion7.d.ts +28 -28
  109. package/lib/musepack/sv7/StreamVersion7.js +41 -41
  110. package/lib/musepack/sv8/MpcSv8Parser.d.ts +6 -6
  111. package/lib/musepack/sv8/MpcSv8Parser.js +55 -55
  112. package/lib/musepack/sv8/StreamVersion8.d.ts +40 -40
  113. package/lib/musepack/sv8/StreamVersion8.js +80 -80
  114. package/lib/ogg/Ogg.d.ts +72 -72
  115. package/lib/ogg/Ogg.js +2 -2
  116. package/lib/ogg/OggParser.d.ts +23 -23
  117. package/lib/ogg/OggParser.js +126 -126
  118. package/lib/ogg/opus/Opus.d.ts +48 -48
  119. package/lib/ogg/opus/Opus.js +28 -28
  120. package/lib/ogg/opus/OpusParser.d.ts +25 -25
  121. package/lib/ogg/opus/OpusParser.js +56 -56
  122. package/lib/ogg/speex/Speex.d.ts +36 -36
  123. package/lib/ogg/speex/Speex.js +31 -31
  124. package/lib/ogg/speex/SpeexParser.d.ts +22 -22
  125. package/lib/ogg/speex/SpeexParser.js +35 -35
  126. package/lib/ogg/theora/Theora.d.ts +20 -20
  127. package/lib/ogg/theora/Theora.js +23 -23
  128. package/lib/ogg/theora/TheoraParser.d.ts +28 -28
  129. package/lib/ogg/theora/TheoraParser.js +44 -44
  130. package/lib/ogg/vorbis/Vorbis.d.ts +69 -79
  131. package/lib/ogg/vorbis/Vorbis.js +78 -78
  132. package/lib/ogg/vorbis/VorbisDecoder.d.ts +12 -12
  133. package/lib/ogg/vorbis/VorbisDecoder.js +32 -32
  134. package/lib/ogg/vorbis/VorbisParser.d.ts +36 -36
  135. package/lib/ogg/vorbis/VorbisParser.js +128 -128
  136. package/lib/ogg/vorbis/VorbisTagMapper.d.ts +7 -7
  137. package/lib/ogg/vorbis/VorbisTagMapper.js +132 -132
  138. package/lib/riff/RiffChunk.d.ts +16 -16
  139. package/lib/riff/RiffChunk.js +32 -32
  140. package/lib/riff/RiffInfoTagMap.d.ts +10 -10
  141. package/lib/riff/RiffInfoTagMap.js +37 -37
  142. package/lib/type.d.ts +592 -599
  143. package/lib/type.js +5 -13
  144. package/lib/wav/WaveChunk.d.ts +64 -64
  145. package/lib/wav/WaveChunk.js +65 -65
  146. package/lib/wav/WaveParser.d.ts +24 -24
  147. package/lib/wav/WaveParser.js +144 -144
  148. package/lib/wavpack/WavPackParser.d.ts +14 -14
  149. package/lib/wavpack/WavPackParser.js +99 -105
  150. package/lib/wavpack/WavPackToken.d.ts +64 -64
  151. package/lib/wavpack/WavPackToken.js +76 -76
  152. package/package.json +150 -142
package/lib/asf/GUID.d.ts CHANGED
@@ -1,86 +1,84 @@
1
- /// <reference types="node" />
2
- /**
3
- * Ref:
4
- * https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs
5
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
6
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html
7
- *
8
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
9
- *
10
- * ASF File Structure:
11
- * https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx
12
- *
13
- * ASF GUIDs:
14
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
15
- *
16
- * https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c
17
- */
18
- export default class GUID {
19
- str: string;
20
- static HeaderObject: GUID;
21
- static DataObject: GUID;
22
- static SimpleIndexObject: GUID;
23
- static IndexObject: GUID;
24
- static MediaObjectIndexObject: GUID;
25
- static TimecodeIndexObject: GUID;
26
- static FilePropertiesObject: GUID;
27
- static StreamPropertiesObject: GUID;
28
- static HeaderExtensionObject: GUID;
29
- static CodecListObject: GUID;
30
- static ScriptCommandObject: GUID;
31
- static MarkerObject: GUID;
32
- static BitrateMutualExclusionObject: GUID;
33
- static ErrorCorrectionObject: GUID;
34
- static ContentDescriptionObject: GUID;
35
- static ExtendedContentDescriptionObject: GUID;
36
- static ContentBrandingObject: GUID;
37
- static StreamBitratePropertiesObject: GUID;
38
- static ContentEncryptionObject: GUID;
39
- static ExtendedContentEncryptionObject: GUID;
40
- static DigitalSignatureObject: GUID;
41
- static PaddingObject: GUID;
42
- static ExtendedStreamPropertiesObject: GUID;
43
- static AdvancedMutualExclusionObject: GUID;
44
- static GroupMutualExclusionObject: GUID;
45
- static StreamPrioritizationObject: GUID;
46
- static BandwidthSharingObject: GUID;
47
- static LanguageListObject: GUID;
48
- static MetadataObject: GUID;
49
- static MetadataLibraryObject: GUID;
50
- static IndexParametersObject: GUID;
51
- static MediaObjectIndexParametersObject: GUID;
52
- static TimecodeIndexParametersObject: GUID;
53
- static CompatibilityObject: GUID;
54
- static AdvancedContentEncryptionObject: GUID;
55
- static AudioMedia: GUID;
56
- static VideoMedia: GUID;
57
- static CommandMedia: GUID;
58
- static JFIF_Media: GUID;
59
- static Degradable_JPEG_Media: GUID;
60
- static FileTransferMedia: GUID;
61
- static BinaryMedia: GUID;
62
- static ASF_Index_Placeholder_Object: GUID;
63
- static fromBin(bin: Buffer, offset?: number): GUID;
64
- /**
65
- * Decode GUID in format like "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
66
- * @param objectId Binary GUID
67
- * @param offset Read offset in bytes, default 0
68
- * @returns {string} GUID as dashed hexadecimal representation
69
- */
70
- static decode(objectId: Buffer, offset?: number): string;
71
- /**
72
- * Decode stream type
73
- * @param {string} mediaType
74
- * @returns {string}
75
- */
76
- static decodeMediaType(mediaType: GUID): string;
77
- /**
78
- * Encode GUID
79
- * @param guid GUID like: "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
80
- * @returns {Buffer} Encoded Bnary GUID
81
- */
82
- static encode(str: string): Buffer;
83
- constructor(str: string);
84
- equals(guid: GUID): boolean;
85
- toBin(): Buffer;
86
- }
1
+ /// <reference types="node" />
2
+ /**
3
+ * Ref:
4
+ * - https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs
5
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
6
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html
7
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
8
+ *
9
+ * ASF File Structure:
10
+ * - https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx
11
+ *
12
+ * ASF GUIDs:
13
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
14
+ * - https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c
15
+ */
16
+ export default class GUID {
17
+ str: string;
18
+ static HeaderObject: GUID;
19
+ static DataObject: GUID;
20
+ static SimpleIndexObject: GUID;
21
+ static IndexObject: GUID;
22
+ static MediaObjectIndexObject: GUID;
23
+ static TimecodeIndexObject: GUID;
24
+ static FilePropertiesObject: GUID;
25
+ static StreamPropertiesObject: GUID;
26
+ static HeaderExtensionObject: GUID;
27
+ static CodecListObject: GUID;
28
+ static ScriptCommandObject: GUID;
29
+ static MarkerObject: GUID;
30
+ static BitrateMutualExclusionObject: GUID;
31
+ static ErrorCorrectionObject: GUID;
32
+ static ContentDescriptionObject: GUID;
33
+ static ExtendedContentDescriptionObject: GUID;
34
+ static ContentBrandingObject: GUID;
35
+ static StreamBitratePropertiesObject: GUID;
36
+ static ContentEncryptionObject: GUID;
37
+ static ExtendedContentEncryptionObject: GUID;
38
+ static DigitalSignatureObject: GUID;
39
+ static PaddingObject: GUID;
40
+ static ExtendedStreamPropertiesObject: GUID;
41
+ static AdvancedMutualExclusionObject: GUID;
42
+ static GroupMutualExclusionObject: GUID;
43
+ static StreamPrioritizationObject: GUID;
44
+ static BandwidthSharingObject: GUID;
45
+ static LanguageListObject: GUID;
46
+ static MetadataObject: GUID;
47
+ static MetadataLibraryObject: GUID;
48
+ static IndexParametersObject: GUID;
49
+ static MediaObjectIndexParametersObject: GUID;
50
+ static TimecodeIndexParametersObject: GUID;
51
+ static CompatibilityObject: GUID;
52
+ static AdvancedContentEncryptionObject: GUID;
53
+ static AudioMedia: GUID;
54
+ static VideoMedia: GUID;
55
+ static CommandMedia: GUID;
56
+ static JFIF_Media: GUID;
57
+ static Degradable_JPEG_Media: GUID;
58
+ static FileTransferMedia: GUID;
59
+ static BinaryMedia: GUID;
60
+ static ASF_Index_Placeholder_Object: GUID;
61
+ static fromBin(bin: Buffer, offset?: number): GUID;
62
+ /**
63
+ * Decode GUID in format like "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
64
+ * @param objectId Binary GUID
65
+ * @param offset Read offset in bytes, default 0
66
+ * @returns GUID as dashed hexadecimal representation
67
+ */
68
+ static decode(objectId: Buffer, offset?: number): string;
69
+ /**
70
+ * Decode stream type
71
+ * @param mediaType Media type GUID
72
+ * @returns Media type
73
+ */
74
+ static decodeMediaType(mediaType: GUID): 'audio' | 'video' | 'command' | 'degradable-jpeg' | 'file-transfer' | 'binary' | undefined;
75
+ /**
76
+ * Encode GUID
77
+ * @param guid GUID like: "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
78
+ * @returns Encoded Binary GUID
79
+ */
80
+ static encode(str: string): Buffer;
81
+ constructor(str: string);
82
+ equals(guid: GUID): boolean;
83
+ toBin(): Buffer;
84
+ }
package/lib/asf/GUID.js CHANGED
@@ -1,123 +1,121 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Ref:
5
- * https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs
6
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
7
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html
8
- *
9
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
10
- *
11
- * ASF File Structure:
12
- * https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx
13
- *
14
- * ASF GUIDs:
15
- * http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
16
- *
17
- * https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c
18
- */
19
- class GUID {
20
- constructor(str) {
21
- this.str = str;
22
- }
23
- static fromBin(bin, offset = 0) {
24
- return new GUID(this.decode(bin, offset));
25
- }
26
- /**
27
- * Decode GUID in format like "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
28
- * @param objectId Binary GUID
29
- * @param offset Read offset in bytes, default 0
30
- * @returns {string} GUID as dashed hexadecimal representation
31
- */
32
- static decode(objectId, offset = 0) {
33
- const guid = objectId.readUInt32LE(offset).toString(16) + "-" +
34
- objectId.readUInt16LE(offset + 4).toString(16) + "-" +
35
- objectId.readUInt16LE(offset + 6).toString(16) + "-" +
36
- objectId.readUInt16BE(offset + 8).toString(16) + "-" +
37
- objectId.slice(offset + 10, offset + 16).toString('hex');
38
- return guid.toUpperCase();
39
- }
40
- /**
41
- * Decode stream type
42
- * @param {string} mediaType
43
- * @returns {string}
44
- */
45
- static decodeMediaType(mediaType) {
46
- switch (mediaType.str) {
47
- case GUID.AudioMedia.str: return 'audio';
48
- case GUID.VideoMedia.str: return 'video';
49
- case GUID.CommandMedia.str: return 'command';
50
- case GUID.Degradable_JPEG_Media.str: return 'degradable-jpeg';
51
- case GUID.FileTransferMedia.str: return 'file-transfer';
52
- case GUID.BinaryMedia.str: return 'binary';
53
- }
54
- }
55
- /**
56
- * Encode GUID
57
- * @param guid GUID like: "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
58
- * @returns {Buffer} Encoded Bnary GUID
59
- */
60
- static encode(str) {
61
- const bin = Buffer.alloc(16);
62
- bin.writeUInt32LE(parseInt(str.slice(0, 8), 16), 0);
63
- bin.writeUInt16LE(parseInt(str.slice(9, 13), 16), 4);
64
- bin.writeUInt16LE(parseInt(str.slice(14, 18), 16), 6);
65
- Buffer.from(str.slice(19, 23), "hex").copy(bin, 8);
66
- Buffer.from(str.slice(24), "hex").copy(bin, 10);
67
- return bin;
68
- }
69
- equals(guid) {
70
- return this.str === guid.str;
71
- }
72
- toBin() {
73
- return GUID.encode(this.str);
74
- }
75
- }
76
- exports.default = GUID;
77
- // 10.1 Top-level ASF object GUIDs
78
- GUID.HeaderObject = new GUID("75B22630-668E-11CF-A6D9-00AA0062CE6C");
79
- GUID.DataObject = new GUID("75B22636-668E-11CF-A6D9-00AA0062CE6C");
80
- GUID.SimpleIndexObject = new GUID("33000890-E5B1-11CF-89F4-00A0C90349CB");
81
- GUID.IndexObject = new GUID("D6E229D3-35DA-11D1-9034-00A0C90349BE");
82
- GUID.MediaObjectIndexObject = new GUID("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C");
83
- GUID.TimecodeIndexObject = new GUID("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C");
84
- // 10.2 Header Object GUIDs
85
- GUID.FilePropertiesObject = new GUID("8CABDCA1-A947-11CF-8EE4-00C00C205365");
86
- GUID.StreamPropertiesObject = new GUID("B7DC0791-A9B7-11CF-8EE6-00C00C205365");
87
- GUID.HeaderExtensionObject = new GUID("5FBF03B5-A92E-11CF-8EE3-00C00C205365");
88
- GUID.CodecListObject = new GUID("86D15240-311D-11D0-A3A4-00A0C90348F6");
89
- GUID.ScriptCommandObject = new GUID("1EFB1A30-0B62-11D0-A39B-00A0C90348F6");
90
- GUID.MarkerObject = new GUID("F487CD01-A951-11CF-8EE6-00C00C205365");
91
- GUID.BitrateMutualExclusionObject = new GUID("D6E229DC-35DA-11D1-9034-00A0C90349BE");
92
- GUID.ErrorCorrectionObject = new GUID("75B22635-668E-11CF-A6D9-00AA0062CE6C");
93
- GUID.ContentDescriptionObject = new GUID("75B22633-668E-11CF-A6D9-00AA0062CE6C");
94
- GUID.ExtendedContentDescriptionObject = new GUID("D2D0A440-E307-11D2-97F0-00A0C95EA850");
95
- GUID.ContentBrandingObject = new GUID("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E");
96
- GUID.StreamBitratePropertiesObject = new GUID("7BF875CE-468D-11D1-8D82-006097C9A2B2");
97
- GUID.ContentEncryptionObject = new GUID("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E");
98
- GUID.ExtendedContentEncryptionObject = new GUID("298AE614-2622-4C17-B935-DAE07EE9289C");
99
- GUID.DigitalSignatureObject = new GUID("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E");
100
- GUID.PaddingObject = new GUID("1806D474-CADF-4509-A4BA-9AABCB96AAE8");
101
- // 10.3 Header Extension Object GUIDs
102
- GUID.ExtendedStreamPropertiesObject = new GUID("14E6A5CB-C672-4332-8399-A96952065B5A");
103
- GUID.AdvancedMutualExclusionObject = new GUID("A08649CF-4775-4670-8A16-6E35357566CD");
104
- GUID.GroupMutualExclusionObject = new GUID("D1465A40-5A79-4338-B71B-E36B8FD6C249");
105
- GUID.StreamPrioritizationObject = new GUID("D4FED15B-88D3-454F-81F0-ED5C45999E24");
106
- GUID.BandwidthSharingObject = new GUID("A69609E6-517B-11D2-B6AF-00C04FD908E9");
107
- GUID.LanguageListObject = new GUID("7C4346A9-EFE0-4BFC-B229-393EDE415C85");
108
- GUID.MetadataObject = new GUID("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA");
109
- GUID.MetadataLibraryObject = new GUID("44231C94-9498-49D1-A141-1D134E457054");
110
- GUID.IndexParametersObject = new GUID("D6E229DF-35DA-11D1-9034-00A0C90349BE");
111
- GUID.MediaObjectIndexParametersObject = new GUID("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7");
112
- GUID.TimecodeIndexParametersObject = new GUID("F55E496D-9797-4B5D-8C8B-604DFE9BFB24");
113
- GUID.CompatibilityObject = new GUID("26F18B5D-4584-47EC-9F5F-0E651F0452C9");
114
- GUID.AdvancedContentEncryptionObject = new GUID("43058533-6981-49E6-9B74-AD12CB86D58C");
115
- // 10.4 Stream Properties Object Stream Type GUIDs
116
- GUID.AudioMedia = new GUID("F8699E40-5B4D-11CF-A8FD-00805F5C442B");
117
- GUID.VideoMedia = new GUID("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B");
118
- GUID.CommandMedia = new GUID("59DACFC0-59E6-11D0-A3AC-00A0C90348F6");
119
- GUID.JFIF_Media = new GUID("B61BE100-5B4E-11CF-A8FD-00805F5C442B");
120
- GUID.Degradable_JPEG_Media = new GUID("35907DE0-E415-11CF-A917-00805F5C442B");
121
- GUID.FileTransferMedia = new GUID("91BD222C-F21C-497A-8B6D-5AA86BFC0185");
122
- GUID.BinaryMedia = new GUID("3AFB65E2-47EF-40F2-AC2C-70A90D71D343");
123
- GUID.ASF_Index_Placeholder_Object = new GUID("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2");
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Ref:
5
+ * - https://tools.ietf.org/html/draft-fleischman-asf-01, Appendix A: ASF GUIDs
6
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
7
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/index.html
8
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
9
+ *
10
+ * ASF File Structure:
11
+ * - https://msdn.microsoft.com/en-us/library/windows/desktop/ee663575(v=vs.85).aspx
12
+ *
13
+ * ASF GUIDs:
14
+ * - http://drang.s4.xrea.com/program/tips/id3tag/wmp/10_asf_guids.html
15
+ * - https://github.com/dji-sdk/FFmpeg/blob/master/libavformat/asf.c
16
+ */
17
+ class GUID {
18
+ constructor(str) {
19
+ this.str = str;
20
+ }
21
+ static fromBin(bin, offset = 0) {
22
+ return new GUID(this.decode(bin, offset));
23
+ }
24
+ /**
25
+ * Decode GUID in format like "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
26
+ * @param objectId Binary GUID
27
+ * @param offset Read offset in bytes, default 0
28
+ * @returns GUID as dashed hexadecimal representation
29
+ */
30
+ static decode(objectId, offset = 0) {
31
+ const guid = objectId.readUInt32LE(offset).toString(16) + "-" +
32
+ objectId.readUInt16LE(offset + 4).toString(16) + "-" +
33
+ objectId.readUInt16LE(offset + 6).toString(16) + "-" +
34
+ objectId.readUInt16BE(offset + 8).toString(16) + "-" +
35
+ objectId.slice(offset + 10, offset + 16).toString('hex');
36
+ return guid.toUpperCase();
37
+ }
38
+ /**
39
+ * Decode stream type
40
+ * @param mediaType Media type GUID
41
+ * @returns Media type
42
+ */
43
+ static decodeMediaType(mediaType) {
44
+ switch (mediaType.str) {
45
+ case GUID.AudioMedia.str: return 'audio';
46
+ case GUID.VideoMedia.str: return 'video';
47
+ case GUID.CommandMedia.str: return 'command';
48
+ case GUID.Degradable_JPEG_Media.str: return 'degradable-jpeg';
49
+ case GUID.FileTransferMedia.str: return 'file-transfer';
50
+ case GUID.BinaryMedia.str: return 'binary';
51
+ }
52
+ }
53
+ /**
54
+ * Encode GUID
55
+ * @param guid GUID like: "B503BF5F-2EA9-CF11-8EE3-00C00C205365"
56
+ * @returns Encoded Binary GUID
57
+ */
58
+ static encode(str) {
59
+ const bin = Buffer.alloc(16);
60
+ bin.writeUInt32LE(parseInt(str.slice(0, 8), 16), 0);
61
+ bin.writeUInt16LE(parseInt(str.slice(9, 13), 16), 4);
62
+ bin.writeUInt16LE(parseInt(str.slice(14, 18), 16), 6);
63
+ Buffer.from(str.slice(19, 23), "hex").copy(bin, 8);
64
+ Buffer.from(str.slice(24), "hex").copy(bin, 10);
65
+ return bin;
66
+ }
67
+ equals(guid) {
68
+ return this.str === guid.str;
69
+ }
70
+ toBin() {
71
+ return GUID.encode(this.str);
72
+ }
73
+ }
74
+ exports.default = GUID;
75
+ // 10.1 Top-level ASF object GUIDs
76
+ GUID.HeaderObject = new GUID("75B22630-668E-11CF-A6D9-00AA0062CE6C");
77
+ GUID.DataObject = new GUID("75B22636-668E-11CF-A6D9-00AA0062CE6C");
78
+ GUID.SimpleIndexObject = new GUID("33000890-E5B1-11CF-89F4-00A0C90349CB");
79
+ GUID.IndexObject = new GUID("D6E229D3-35DA-11D1-9034-00A0C90349BE");
80
+ GUID.MediaObjectIndexObject = new GUID("FEB103F8-12AD-4C64-840F-2A1D2F7AD48C");
81
+ GUID.TimecodeIndexObject = new GUID("3CB73FD0-0C4A-4803-953D-EDF7B6228F0C");
82
+ // 10.2 Header Object GUIDs
83
+ GUID.FilePropertiesObject = new GUID("8CABDCA1-A947-11CF-8EE4-00C00C205365");
84
+ GUID.StreamPropertiesObject = new GUID("B7DC0791-A9B7-11CF-8EE6-00C00C205365");
85
+ GUID.HeaderExtensionObject = new GUID("5FBF03B5-A92E-11CF-8EE3-00C00C205365");
86
+ GUID.CodecListObject = new GUID("86D15240-311D-11D0-A3A4-00A0C90348F6");
87
+ GUID.ScriptCommandObject = new GUID("1EFB1A30-0B62-11D0-A39B-00A0C90348F6");
88
+ GUID.MarkerObject = new GUID("F487CD01-A951-11CF-8EE6-00C00C205365");
89
+ GUID.BitrateMutualExclusionObject = new GUID("D6E229DC-35DA-11D1-9034-00A0C90349BE");
90
+ GUID.ErrorCorrectionObject = new GUID("75B22635-668E-11CF-A6D9-00AA0062CE6C");
91
+ GUID.ContentDescriptionObject = new GUID("75B22633-668E-11CF-A6D9-00AA0062CE6C");
92
+ GUID.ExtendedContentDescriptionObject = new GUID("D2D0A440-E307-11D2-97F0-00A0C95EA850");
93
+ GUID.ContentBrandingObject = new GUID("2211B3FA-BD23-11D2-B4B7-00A0C955FC6E");
94
+ GUID.StreamBitratePropertiesObject = new GUID("7BF875CE-468D-11D1-8D82-006097C9A2B2");
95
+ GUID.ContentEncryptionObject = new GUID("2211B3FB-BD23-11D2-B4B7-00A0C955FC6E");
96
+ GUID.ExtendedContentEncryptionObject = new GUID("298AE614-2622-4C17-B935-DAE07EE9289C");
97
+ GUID.DigitalSignatureObject = new GUID("2211B3FC-BD23-11D2-B4B7-00A0C955FC6E");
98
+ GUID.PaddingObject = new GUID("1806D474-CADF-4509-A4BA-9AABCB96AAE8");
99
+ // 10.3 Header Extension Object GUIDs
100
+ GUID.ExtendedStreamPropertiesObject = new GUID("14E6A5CB-C672-4332-8399-A96952065B5A");
101
+ GUID.AdvancedMutualExclusionObject = new GUID("A08649CF-4775-4670-8A16-6E35357566CD");
102
+ GUID.GroupMutualExclusionObject = new GUID("D1465A40-5A79-4338-B71B-E36B8FD6C249");
103
+ GUID.StreamPrioritizationObject = new GUID("D4FED15B-88D3-454F-81F0-ED5C45999E24");
104
+ GUID.BandwidthSharingObject = new GUID("A69609E6-517B-11D2-B6AF-00C04FD908E9");
105
+ GUID.LanguageListObject = new GUID("7C4346A9-EFE0-4BFC-B229-393EDE415C85");
106
+ GUID.MetadataObject = new GUID("C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA");
107
+ GUID.MetadataLibraryObject = new GUID("44231C94-9498-49D1-A141-1D134E457054");
108
+ GUID.IndexParametersObject = new GUID("D6E229DF-35DA-11D1-9034-00A0C90349BE");
109
+ GUID.MediaObjectIndexParametersObject = new GUID("6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7");
110
+ GUID.TimecodeIndexParametersObject = new GUID("F55E496D-9797-4B5D-8C8B-604DFE9BFB24");
111
+ GUID.CompatibilityObject = new GUID("26F18B5D-4584-47EC-9F5F-0E651F0452C9");
112
+ GUID.AdvancedContentEncryptionObject = new GUID("43058533-6981-49E6-9B74-AD12CB86D58C");
113
+ // 10.4 Stream Properties Object Stream Type GUIDs
114
+ GUID.AudioMedia = new GUID("F8699E40-5B4D-11CF-A8FD-00805F5C442B");
115
+ GUID.VideoMedia = new GUID("BC19EFC0-5B4D-11CF-A8FD-00805F5C442B");
116
+ GUID.CommandMedia = new GUID("59DACFC0-59E6-11D0-A3AC-00A0C90348F6");
117
+ GUID.JFIF_Media = new GUID("B61BE100-5B4E-11CF-A8FD-00805F5C442B");
118
+ GUID.Degradable_JPEG_Media = new GUID("35907DE0-E415-11CF-A917-00805F5C442B");
119
+ GUID.FileTransferMedia = new GUID("91BD222C-F21C-497A-8B6D-5AA86BFC0185");
120
+ GUID.BinaryMedia = new GUID("3AFB65E2-47EF-40F2-AC2C-70A90D71D343");
121
+ GUID.ASF_Index_Placeholder_Object = new GUID("D9AADE20-7C17-4F9C-BC28-8555DD98E2A2");
@@ -1,17 +1,17 @@
1
- import { ITokenizer } from 'strtok3/lib/core';
2
- import { ITokenParser } from '../ParserFactory';
3
- import { IOptions, IPrivateOptions } from '../type';
4
- import { INativeMetadataCollector } from './MetadataCollector';
5
- export declare abstract class BasicParser implements ITokenParser {
6
- protected metadata: INativeMetadataCollector;
7
- protected tokenizer: ITokenizer;
8
- protected options: IPrivateOptions;
9
- /**
10
- * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
11
- * @param {INativeMetadataCollector} metadata Output
12
- * @param {ITokenizer} tokenizer Input
13
- * @param {IOptions} options Parsing options
14
- */
15
- init(metadata: INativeMetadataCollector, tokenizer: ITokenizer, options: IOptions): ITokenParser;
16
- abstract parse(): any;
17
- }
1
+ import { ITokenizer } from 'strtok3/lib/core';
2
+ import { ITokenParser } from '../ParserFactory';
3
+ import { IOptions, IPrivateOptions } from '../type';
4
+ import { INativeMetadataCollector } from './MetadataCollector';
5
+ export declare abstract class BasicParser implements ITokenParser {
6
+ protected metadata: INativeMetadataCollector;
7
+ protected tokenizer: ITokenizer;
8
+ protected options: IPrivateOptions;
9
+ /**
10
+ * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
11
+ * @param {INativeMetadataCollector} metadata Output
12
+ * @param {ITokenizer} tokenizer Input
13
+ * @param {IOptions} options Parsing options
14
+ */
15
+ init(metadata: INativeMetadataCollector, tokenizer: ITokenizer, options: IOptions): ITokenParser;
16
+ abstract parse(): any;
17
+ }
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BasicParser = void 0;
4
- class BasicParser {
5
- /**
6
- * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
7
- * @param {INativeMetadataCollector} metadata Output
8
- * @param {ITokenizer} tokenizer Input
9
- * @param {IOptions} options Parsing options
10
- */
11
- init(metadata, tokenizer, options) {
12
- this.metadata = metadata;
13
- this.tokenizer = tokenizer;
14
- this.options = options;
15
- return this;
16
- }
17
- }
18
- exports.BasicParser = BasicParser;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasicParser = void 0;
4
+ class BasicParser {
5
+ /**
6
+ * Initialize parser with output (metadata), input (tokenizer) & parsing options (options).
7
+ * @param {INativeMetadataCollector} metadata Output
8
+ * @param {ITokenizer} tokenizer Input
9
+ * @param {IOptions} options Parsing options
10
+ */
11
+ init(metadata, tokenizer, options) {
12
+ this.metadata = metadata;
13
+ this.tokenizer = tokenizer;
14
+ this.options = options;
15
+ return this;
16
+ }
17
+ }
18
+ exports.BasicParser = BasicParser;
@@ -1,10 +1,10 @@
1
- import { INativeTagMap, TagType } from './GenericTagTypes';
2
- import { CommonTagMapper } from './GenericTagMapper';
3
- export declare class CaseInsensitiveTagMap extends CommonTagMapper {
4
- constructor(tagTypes: TagType[], tagMap: INativeTagMap);
5
- /**
6
- * @tag Native header tag
7
- * @return common tag name (alias)
8
- */
9
- protected getCommonName(tag: string): import("./GenericTagTypes").GenericTagId;
10
- }
1
+ import { INativeTagMap, TagType } from './GenericTagTypes';
2
+ import { CommonTagMapper } from './GenericTagMapper';
3
+ export declare class CaseInsensitiveTagMap extends CommonTagMapper {
4
+ constructor(tagTypes: TagType[], tagMap: INativeTagMap);
5
+ /**
6
+ * @tag Native header tag
7
+ * @return common tag name (alias)
8
+ */
9
+ protected getCommonName(tag: string): import("./GenericTagTypes").GenericTagId;
10
+ }
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CaseInsensitiveTagMap = void 0;
4
- const GenericTagMapper_1 = require("./GenericTagMapper");
5
- class CaseInsensitiveTagMap extends GenericTagMapper_1.CommonTagMapper {
6
- constructor(tagTypes, tagMap) {
7
- const upperCaseMap = {};
8
- for (const tag of Object.keys(tagMap)) {
9
- upperCaseMap[tag.toUpperCase()] = tagMap[tag];
10
- }
11
- super(tagTypes, upperCaseMap);
12
- }
13
- /**
14
- * @tag Native header tag
15
- * @return common tag name (alias)
16
- */
17
- getCommonName(tag) {
18
- return this.tagMap[tag.toUpperCase()];
19
- }
20
- }
21
- exports.CaseInsensitiveTagMap = CaseInsensitiveTagMap;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CaseInsensitiveTagMap = void 0;
4
+ const GenericTagMapper_1 = require("./GenericTagMapper");
5
+ class CaseInsensitiveTagMap extends GenericTagMapper_1.CommonTagMapper {
6
+ constructor(tagTypes, tagMap) {
7
+ const upperCaseMap = {};
8
+ for (const tag of Object.keys(tagMap)) {
9
+ upperCaseMap[tag.toUpperCase()] = tagMap[tag];
10
+ }
11
+ super(tagTypes, upperCaseMap);
12
+ }
13
+ /**
14
+ * @tag Native header tag
15
+ * @return common tag name (alias)
16
+ */
17
+ getCommonName(tag) {
18
+ return this.tagMap[tag.toUpperCase()];
19
+ }
20
+ }
21
+ exports.CaseInsensitiveTagMap = CaseInsensitiveTagMap;
22
22
  //# sourceMappingURL=CaseInsensitiveTagMap.js.map
@@ -1,19 +1,19 @@
1
- import { IGenericTag, TagType } from "./GenericTagTypes";
2
- import { IGenericTagMapper } from "./GenericTagMapper";
3
- import { ITag } from "../type";
4
- import { INativeMetadataCollector } from './MetadataCollector';
5
- export declare class CombinedTagMapper {
6
- tagMappers: {
7
- [index: string]: IGenericTagMapper;
8
- };
9
- constructor();
10
- /**
11
- * Convert native to generic (common) tags
12
- * @param tagType Originating tag format
13
- * @param tag Native tag to map to a generic tag id
14
- * @param warnings
15
- * @return Generic tag result (output of this function)
16
- */
17
- mapTag(tagType: TagType, tag: ITag, warnings: INativeMetadataCollector): IGenericTag;
18
- private registerTagMapper;
19
- }
1
+ import { IGenericTag, TagType } from './GenericTagTypes';
2
+ import { IGenericTagMapper } from './GenericTagMapper';
3
+ import { ITag } from '../type';
4
+ import { INativeMetadataCollector } from './MetadataCollector';
5
+ export declare class CombinedTagMapper {
6
+ tagMappers: {
7
+ [index: string]: IGenericTagMapper;
8
+ };
9
+ constructor();
10
+ /**
11
+ * Convert native to generic (common) tags
12
+ * @param tagType Originating tag format
13
+ * @param tag Native tag to map to a generic tag id
14
+ * @param warnings
15
+ * @return Generic tag result (output of this function)
16
+ */
17
+ mapTag(tagType: TagType, tag: ITag, warnings: INativeMetadataCollector): IGenericTag;
18
+ private registerTagMapper;
19
+ }