music-metadata 7.11.3 → 7.11.7

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 +432 -432
  2. package/lib/ParserFactory.d.ts +49 -49
  3. package/lib/ParserFactory.js +251 -251
  4. package/lib/aiff/AiffParser.d.ts +15 -15
  5. package/lib/aiff/AiffParser.js +85 -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 +162 -162
  10. package/lib/apev2/APEv2TagMapper.d.ts +4 -4
  11. package/lib/apev2/APEv2TagMapper.js +87 -86
  12. package/lib/apev2/APEv2Token.d.ts +100 -100
  13. package/lib/apev2/APEv2Token.js +127 -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 +96 -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 +86 -86
  23. package/lib/asf/GUID.js +123 -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 +22 -21
  28. package/lib/common/CombinedTagMapper.d.ts +19 -19
  29. package/lib/common/CombinedTagMapper.js +52 -51
  30. package/lib/common/FourCC.d.ts +6 -6
  31. package/lib/common/FourCC.js +29 -28
  32. package/lib/common/GenericTagMapper.d.ts +51 -51
  33. package/lib/common/GenericTagMapper.js +56 -55
  34. package/lib/common/GenericTagTypes.d.ts +33 -33
  35. package/lib/common/GenericTagTypes.js +132 -131
  36. package/lib/common/MetadataCollector.d.ts +76 -76
  37. package/lib/common/MetadataCollector.js +276 -274
  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 -57
  43. package/lib/common/Util.js +163 -169
  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 +23 -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 -323
  64. package/lib/id3v2/ID3v22TagMapper.d.ts +9 -9
  65. package/lib/id3v2/ID3v22TagMapper.js +56 -54
  66. package/lib/id3v2/ID3v24TagMapper.d.ts +14 -14
  67. package/lib/id3v2/ID3v24TagMapper.js +194 -193
  68. package/lib/id3v2/ID3v2Parser.d.ts +29 -29
  69. package/lib/id3v2/ID3v2Parser.js +194 -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 -34
  75. package/lib/index.js +74 -64
  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 -234
  82. package/lib/matroska/MatroskaTagMapper.d.ts +4 -4
  83. package/lib/matroska/MatroskaTagMapper.js +36 -35
  84. package/lib/matroska/types.d.ts +175 -175
  85. package/lib/matroska/types.js +32 -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 +116 -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 +529 -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 +79 -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 +133 -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 +38 -37
  142. package/lib/type.d.ts +599 -599
  143. package/lib/type.js +14 -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 +105 -105
  150. package/lib/wavpack/WavPackToken.d.ts +64 -64
  151. package/lib/wavpack/WavPackToken.js +76 -76
  152. package/package.json +142 -142
@@ -1,175 +1,175 @@
1
- /// <reference types="node" />
2
- export interface IHeader {
3
- id: number;
4
- len: number;
5
- }
6
- export declare enum DataType {
7
- string = 0,
8
- uint = 1,
9
- uid = 2,
10
- bool = 3,
11
- binary = 4,
12
- float = 5
13
- }
14
- export interface IElementType<T> {
15
- readonly name: string;
16
- readonly value?: DataType;
17
- readonly container?: IContainerType;
18
- readonly multiple?: boolean;
19
- }
20
- export interface IContainerType {
21
- [id: number]: IElementType<string | number | boolean | Buffer>;
22
- }
23
- export interface ITree {
24
- [name: string]: string | number | boolean | Buffer | ITree | ITree[];
25
- }
26
- export interface ISeekHead {
27
- id?: Buffer;
28
- position?: number;
29
- }
30
- export interface IMetaSeekInformation {
31
- seekHeads: ISeekHead[];
32
- }
33
- export interface ISegmentInformation {
34
- uid?: Buffer;
35
- timecodeScale?: number;
36
- duration?: number;
37
- dateUTC?: number;
38
- title?: string;
39
- muxingApp?: string;
40
- writingApp?: string;
41
- }
42
- export interface ITrackEntry {
43
- uid?: Buffer;
44
- trackNumber?: number;
45
- trackType?: TrackType;
46
- audio?: ITrackAudio;
47
- video?: ITrackVideo;
48
- flagEnabled?: boolean;
49
- flagDefault?: boolean;
50
- flagLacing?: boolean;
51
- defaultDuration?: number;
52
- trackTimecodeScale?: number;
53
- name?: string;
54
- language?: string;
55
- codecID?: string;
56
- codecPrivate?: Buffer;
57
- codecName?: string;
58
- codecSettings?: string;
59
- codecInfoUrl?: string;
60
- codecDownloadUrl?: string;
61
- codecDecodeAll?: string;
62
- trackOverlay?: string;
63
- }
64
- export interface ITrackVideo {
65
- flagInterlaced?: boolean;
66
- stereoMode?: number;
67
- pixelWidth?: number;
68
- pixelHeight?: number;
69
- displayWidth?: number;
70
- displayHeight?: number;
71
- displayUnit?: number;
72
- aspectRatioType?: number;
73
- colourSpace?: Buffer;
74
- gammaValue?: number;
75
- }
76
- export interface ITrackAudio {
77
- samplingFrequency?: number;
78
- outputSamplingFrequency?: number;
79
- channels?: number;
80
- channelPositions?: Buffer;
81
- bitDepth?: number;
82
- }
83
- export interface ICuePoint {
84
- cueTime?: number;
85
- cueTrackPositions: ICueTrackPosition[];
86
- }
87
- export interface ICueTrackPosition {
88
- cueTrack?: number;
89
- cueClusterPosition?: number;
90
- cueBlockNumber?: number;
91
- cueCodecState?: number;
92
- cueReference?: ICueReference;
93
- }
94
- export interface ICueReference {
95
- cueRefTime?: number;
96
- cueRefCluster?: number;
97
- cueRefNumber?: number;
98
- cueRefCodecState?: number;
99
- }
100
- export interface ISimpleTag {
101
- name?: string;
102
- string?: string;
103
- binary?: Buffer;
104
- language?: string;
105
- default?: boolean;
106
- }
107
- export declare enum TargetType {
108
- shot = 10,
109
- scene = 20,
110
- track = 30,
111
- part = 40,
112
- album = 50,
113
- edition = 60,
114
- collection = 70
115
- }
116
- export declare enum TrackType {
117
- video = 1,
118
- audio = 2,
119
- complex = 3,
120
- logo = 4,
121
- subtitle = 17,
122
- button = 18,
123
- control = 32
124
- }
125
- export interface ITarget {
126
- trackUID?: Buffer;
127
- chapterUID?: Buffer;
128
- attachmentUID?: Buffer;
129
- targetTypeValue?: TargetType;
130
- targetType?: string;
131
- }
132
- export interface ITag {
133
- target: ITarget;
134
- simpleTags: ISimpleTag[];
135
- }
136
- export interface ITags {
137
- tag: ITag[];
138
- }
139
- export interface ITrackElement {
140
- entries?: ITrackEntry[];
141
- }
142
- export interface IAttachmedFile {
143
- description?: string;
144
- name: string;
145
- mimeType: string;
146
- data: Buffer;
147
- uid: string;
148
- }
149
- export interface IAttachments {
150
- attachedFiles?: IAttachmedFile[];
151
- }
152
- export interface IMatroskaSegment {
153
- metaSeekInfo?: IMetaSeekInformation;
154
- seekHeads?: ISeekHead[];
155
- info?: ISegmentInformation;
156
- tracks?: ITrackElement;
157
- tags?: ITags;
158
- cues?: ICuePoint[];
159
- attachments?: IAttachments;
160
- }
161
- export interface IEbmlElements {
162
- version?: number;
163
- readVersion?: number;
164
- maxIDWidth?: number;
165
- maxSizeWidth?: number;
166
- docType?: string;
167
- docTypeVersion?: number;
168
- docTypeReadVersion?: number;
169
- }
170
- export interface IEbmlDoc {
171
- ebml: IEbmlElements;
172
- }
173
- export interface IMatroskaDoc extends IEbmlDoc {
174
- segment: IMatroskaSegment;
175
- }
1
+ /// <reference types="node" />
2
+ export interface IHeader {
3
+ id: number;
4
+ len: number;
5
+ }
6
+ export declare enum DataType {
7
+ string = 0,
8
+ uint = 1,
9
+ uid = 2,
10
+ bool = 3,
11
+ binary = 4,
12
+ float = 5
13
+ }
14
+ export interface IElementType<T> {
15
+ readonly name: string;
16
+ readonly value?: DataType;
17
+ readonly container?: IContainerType;
18
+ readonly multiple?: boolean;
19
+ }
20
+ export interface IContainerType {
21
+ [id: number]: IElementType<string | number | boolean | Buffer>;
22
+ }
23
+ export interface ITree {
24
+ [name: string]: string | number | boolean | Buffer | ITree | ITree[];
25
+ }
26
+ export interface ISeekHead {
27
+ id?: Buffer;
28
+ position?: number;
29
+ }
30
+ export interface IMetaSeekInformation {
31
+ seekHeads: ISeekHead[];
32
+ }
33
+ export interface ISegmentInformation {
34
+ uid?: Buffer;
35
+ timecodeScale?: number;
36
+ duration?: number;
37
+ dateUTC?: number;
38
+ title?: string;
39
+ muxingApp?: string;
40
+ writingApp?: string;
41
+ }
42
+ export interface ITrackEntry {
43
+ uid?: Buffer;
44
+ trackNumber?: number;
45
+ trackType?: TrackType;
46
+ audio?: ITrackAudio;
47
+ video?: ITrackVideo;
48
+ flagEnabled?: boolean;
49
+ flagDefault?: boolean;
50
+ flagLacing?: boolean;
51
+ defaultDuration?: number;
52
+ trackTimecodeScale?: number;
53
+ name?: string;
54
+ language?: string;
55
+ codecID?: string;
56
+ codecPrivate?: Buffer;
57
+ codecName?: string;
58
+ codecSettings?: string;
59
+ codecInfoUrl?: string;
60
+ codecDownloadUrl?: string;
61
+ codecDecodeAll?: string;
62
+ trackOverlay?: string;
63
+ }
64
+ export interface ITrackVideo {
65
+ flagInterlaced?: boolean;
66
+ stereoMode?: number;
67
+ pixelWidth?: number;
68
+ pixelHeight?: number;
69
+ displayWidth?: number;
70
+ displayHeight?: number;
71
+ displayUnit?: number;
72
+ aspectRatioType?: number;
73
+ colourSpace?: Buffer;
74
+ gammaValue?: number;
75
+ }
76
+ export interface ITrackAudio {
77
+ samplingFrequency?: number;
78
+ outputSamplingFrequency?: number;
79
+ channels?: number;
80
+ channelPositions?: Buffer;
81
+ bitDepth?: number;
82
+ }
83
+ export interface ICuePoint {
84
+ cueTime?: number;
85
+ cueTrackPositions: ICueTrackPosition[];
86
+ }
87
+ export interface ICueTrackPosition {
88
+ cueTrack?: number;
89
+ cueClusterPosition?: number;
90
+ cueBlockNumber?: number;
91
+ cueCodecState?: number;
92
+ cueReference?: ICueReference;
93
+ }
94
+ export interface ICueReference {
95
+ cueRefTime?: number;
96
+ cueRefCluster?: number;
97
+ cueRefNumber?: number;
98
+ cueRefCodecState?: number;
99
+ }
100
+ export interface ISimpleTag {
101
+ name?: string;
102
+ string?: string;
103
+ binary?: Buffer;
104
+ language?: string;
105
+ default?: boolean;
106
+ }
107
+ export declare enum TargetType {
108
+ shot = 10,
109
+ scene = 20,
110
+ track = 30,
111
+ part = 40,
112
+ album = 50,
113
+ edition = 60,
114
+ collection = 70
115
+ }
116
+ export declare enum TrackType {
117
+ video = 1,
118
+ audio = 2,
119
+ complex = 3,
120
+ logo = 4,
121
+ subtitle = 17,
122
+ button = 18,
123
+ control = 32
124
+ }
125
+ export interface ITarget {
126
+ trackUID?: Buffer;
127
+ chapterUID?: Buffer;
128
+ attachmentUID?: Buffer;
129
+ targetTypeValue?: TargetType;
130
+ targetType?: string;
131
+ }
132
+ export interface ITag {
133
+ target: ITarget;
134
+ simpleTags: ISimpleTag[];
135
+ }
136
+ export interface ITags {
137
+ tag: ITag[];
138
+ }
139
+ export interface ITrackElement {
140
+ entries?: ITrackEntry[];
141
+ }
142
+ export interface IAttachmedFile {
143
+ description?: string;
144
+ name: string;
145
+ mimeType: string;
146
+ data: Buffer;
147
+ uid: string;
148
+ }
149
+ export interface IAttachments {
150
+ attachedFiles?: IAttachmedFile[];
151
+ }
152
+ export interface IMatroskaSegment {
153
+ metaSeekInfo?: IMetaSeekInformation;
154
+ seekHeads?: ISeekHead[];
155
+ info?: ISegmentInformation;
156
+ tracks?: ITrackElement;
157
+ tags?: ITags;
158
+ cues?: ICuePoint[];
159
+ attachments?: IAttachments;
160
+ }
161
+ export interface IEbmlElements {
162
+ version?: number;
163
+ readVersion?: number;
164
+ maxIDWidth?: number;
165
+ maxSizeWidth?: number;
166
+ docType?: string;
167
+ docTypeVersion?: number;
168
+ docTypeReadVersion?: number;
169
+ }
170
+ export interface IEbmlDoc {
171
+ ebml: IEbmlElements;
172
+ }
173
+ export interface IMatroskaDoc extends IEbmlDoc {
174
+ segment: IMatroskaSegment;
175
+ }
@@ -1,32 +1,32 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TrackType = exports.TargetType = exports.DataType = void 0;
4
- var DataType;
5
- (function (DataType) {
6
- DataType[DataType["string"] = 0] = "string";
7
- DataType[DataType["uint"] = 1] = "uint";
8
- DataType[DataType["uid"] = 2] = "uid";
9
- DataType[DataType["bool"] = 3] = "bool";
10
- DataType[DataType["binary"] = 4] = "binary";
11
- DataType[DataType["float"] = 5] = "float";
12
- })(DataType = exports.DataType || (exports.DataType = {}));
13
- var TargetType;
14
- (function (TargetType) {
15
- TargetType[TargetType["shot"] = 10] = "shot";
16
- TargetType[TargetType["scene"] = 20] = "scene";
17
- TargetType[TargetType["track"] = 30] = "track";
18
- TargetType[TargetType["part"] = 40] = "part";
19
- TargetType[TargetType["album"] = 50] = "album";
20
- TargetType[TargetType["edition"] = 60] = "edition";
21
- TargetType[TargetType["collection"] = 70] = "collection";
22
- })(TargetType = exports.TargetType || (exports.TargetType = {}));
23
- var TrackType;
24
- (function (TrackType) {
25
- TrackType[TrackType["video"] = 1] = "video";
26
- TrackType[TrackType["audio"] = 2] = "audio";
27
- TrackType[TrackType["complex"] = 3] = "complex";
28
- TrackType[TrackType["logo"] = 4] = "logo";
29
- TrackType[TrackType["subtitle"] = 17] = "subtitle";
30
- TrackType[TrackType["button"] = 18] = "button";
31
- TrackType[TrackType["control"] = 32] = "control";
32
- })(TrackType = exports.TrackType || (exports.TrackType = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackType = exports.TargetType = exports.DataType = void 0;
4
+ var DataType;
5
+ (function (DataType) {
6
+ DataType[DataType["string"] = 0] = "string";
7
+ DataType[DataType["uint"] = 1] = "uint";
8
+ DataType[DataType["uid"] = 2] = "uid";
9
+ DataType[DataType["bool"] = 3] = "bool";
10
+ DataType[DataType["binary"] = 4] = "binary";
11
+ DataType[DataType["float"] = 5] = "float";
12
+ })(DataType = exports.DataType || (exports.DataType = {}));
13
+ var TargetType;
14
+ (function (TargetType) {
15
+ TargetType[TargetType["shot"] = 10] = "shot";
16
+ TargetType[TargetType["scene"] = 20] = "scene";
17
+ TargetType[TargetType["track"] = 30] = "track";
18
+ TargetType[TargetType["part"] = 40] = "part";
19
+ TargetType[TargetType["album"] = 50] = "album";
20
+ TargetType[TargetType["edition"] = 60] = "edition";
21
+ TargetType[TargetType["collection"] = 70] = "collection";
22
+ })(TargetType = exports.TargetType || (exports.TargetType = {}));
23
+ var TrackType;
24
+ (function (TrackType) {
25
+ TrackType[TrackType["video"] = 1] = "video";
26
+ TrackType[TrackType["audio"] = 2] = "audio";
27
+ TrackType[TrackType["complex"] = 3] = "complex";
28
+ TrackType[TrackType["logo"] = 4] = "logo";
29
+ TrackType[TrackType["subtitle"] = 17] = "subtitle";
30
+ TrackType[TrackType["button"] = 18] = "button";
31
+ TrackType[TrackType["control"] = 32] = "control";
32
+ })(TrackType = exports.TrackType || (exports.TrackType = {}));
package/lib/mp4/Atom.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { ITokenizer } from 'strtok3/lib/core';
2
- import * as AtomToken from './AtomToken';
3
- export declare type AtomDataHandler = (atom: Atom, remaining: number) => Promise<void>;
4
- export declare class Atom {
5
- readonly header: AtomToken.IAtomHeader;
6
- extended: boolean;
7
- readonly parent: Atom;
8
- static readAtom(tokenizer: ITokenizer, dataHandler: AtomDataHandler, parent: Atom, remaining: number): Promise<Atom>;
9
- readonly children: Atom[];
10
- readonly atomPath: string;
11
- constructor(header: AtomToken.IAtomHeader, extended: boolean, parent: Atom);
12
- getHeaderLength(): number;
13
- getPayloadLength(remaining: number): number;
14
- readAtoms(tokenizer: ITokenizer, dataHandler: AtomDataHandler, size: number): Promise<void>;
15
- private readData;
16
- }
1
+ import { ITokenizer } from 'strtok3/lib/core';
2
+ import * as AtomToken from './AtomToken';
3
+ export declare type AtomDataHandler = (atom: Atom, remaining: number) => Promise<void>;
4
+ export declare class Atom {
5
+ readonly header: AtomToken.IAtomHeader;
6
+ extended: boolean;
7
+ readonly parent: Atom;
8
+ static readAtom(tokenizer: ITokenizer, dataHandler: AtomDataHandler, parent: Atom, remaining: number): Promise<Atom>;
9
+ readonly children: Atom[];
10
+ readonly atomPath: string;
11
+ constructor(header: AtomToken.IAtomHeader, extended: boolean, parent: Atom);
12
+ getHeaderLength(): number;
13
+ getPayloadLength(remaining: number): number;
14
+ readAtoms(tokenizer: ITokenizer, dataHandler: AtomDataHandler, size: number): Promise<void>;
15
+ private readData;
16
+ }
package/lib/mp4/Atom.js CHANGED
@@ -1,70 +1,70 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Atom = void 0;
4
- const initDebug = require("debug");
5
- const AtomToken = require("./AtomToken");
6
- const debug = initDebug('music-metadata:parser:MP4:Atom');
7
- class Atom {
8
- constructor(header, extended, parent) {
9
- this.header = header;
10
- this.extended = extended;
11
- this.parent = parent;
12
- this.children = [];
13
- this.atomPath = (this.parent ? this.parent.atomPath + '.' : '') + this.header.name;
14
- }
15
- static async readAtom(tokenizer, dataHandler, parent, remaining) {
16
- // Parse atom header
17
- const offset = tokenizer.position;
18
- // debug(`Reading next token on offset=${offset}...`); // buf.toString('ascii')
19
- const header = await tokenizer.readToken(AtomToken.Header);
20
- const extended = header.length === BigInt(1);
21
- if (extended) {
22
- header.length = await tokenizer.readToken(AtomToken.ExtendedSize);
23
- }
24
- const atomBean = new Atom(header, header.length === BigInt(1), parent);
25
- const payloadLength = atomBean.getPayloadLength(remaining);
26
- debug(`parse atom name=${atomBean.atomPath}, extended=${atomBean.extended}, offset=${offset}, len=${atomBean.header.length}`); // buf.toString('ascii')
27
- await atomBean.readData(tokenizer, dataHandler, payloadLength);
28
- return atomBean;
29
- }
30
- getHeaderLength() {
31
- return this.extended ? 16 : 8;
32
- }
33
- getPayloadLength(remaining) {
34
- return (this.header.length === BigInt(0) ? remaining : Number(this.header.length)) - this.getHeaderLength();
35
- }
36
- async readAtoms(tokenizer, dataHandler, size) {
37
- while (size > 0) {
38
- const atomBean = await Atom.readAtom(tokenizer, dataHandler, this, size);
39
- this.children.push(atomBean);
40
- size -= atomBean.header.length === BigInt(0) ? size : Number(atomBean.header.length);
41
- }
42
- }
43
- async readData(tokenizer, dataHandler, remaining) {
44
- switch (this.header.name) {
45
- // "Container" atoms, contains nested atoms
46
- case 'moov': // The Movie Atom: contains other atoms
47
- case 'udta': // User defined atom
48
- case 'trak':
49
- case 'mdia': // Media atom
50
- case 'minf': // Media Information Atom
51
- case 'stbl': // The Sample Table Atom
52
- case '<id>':
53
- case 'ilst':
54
- case 'tref':
55
- return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining));
56
- case 'meta': // Metadata Atom, ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW8
57
- // meta has 4 bytes of padding, ignore
58
- await tokenizer.ignore(4);
59
- return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining) - 4);
60
- case 'mdhd': // Media header atom
61
- case 'mvhd': // 'movie' => 'mvhd': movie header atom; child of Movie Atom
62
- case 'tkhd':
63
- case 'stsz':
64
- case 'mdat':
65
- default:
66
- return dataHandler(this, remaining);
67
- }
68
- }
69
- }
70
- exports.Atom = Atom;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Atom = void 0;
4
+ const initDebug = require("debug");
5
+ const AtomToken = require("./AtomToken");
6
+ const debug = initDebug('music-metadata:parser:MP4:Atom');
7
+ class Atom {
8
+ constructor(header, extended, parent) {
9
+ this.header = header;
10
+ this.extended = extended;
11
+ this.parent = parent;
12
+ this.children = [];
13
+ this.atomPath = (this.parent ? this.parent.atomPath + '.' : '') + this.header.name;
14
+ }
15
+ static async readAtom(tokenizer, dataHandler, parent, remaining) {
16
+ // Parse atom header
17
+ const offset = tokenizer.position;
18
+ // debug(`Reading next token on offset=${offset}...`); // buf.toString('ascii')
19
+ const header = await tokenizer.readToken(AtomToken.Header);
20
+ const extended = header.length === BigInt(1);
21
+ if (extended) {
22
+ header.length = await tokenizer.readToken(AtomToken.ExtendedSize);
23
+ }
24
+ const atomBean = new Atom(header, header.length === BigInt(1), parent);
25
+ const payloadLength = atomBean.getPayloadLength(remaining);
26
+ debug(`parse atom name=${atomBean.atomPath}, extended=${atomBean.extended}, offset=${offset}, len=${atomBean.header.length}`); // buf.toString('ascii')
27
+ await atomBean.readData(tokenizer, dataHandler, payloadLength);
28
+ return atomBean;
29
+ }
30
+ getHeaderLength() {
31
+ return this.extended ? 16 : 8;
32
+ }
33
+ getPayloadLength(remaining) {
34
+ return (this.header.length === BigInt(0) ? remaining : Number(this.header.length)) - this.getHeaderLength();
35
+ }
36
+ async readAtoms(tokenizer, dataHandler, size) {
37
+ while (size > 0) {
38
+ const atomBean = await Atom.readAtom(tokenizer, dataHandler, this, size);
39
+ this.children.push(atomBean);
40
+ size -= atomBean.header.length === BigInt(0) ? size : Number(atomBean.header.length);
41
+ }
42
+ }
43
+ async readData(tokenizer, dataHandler, remaining) {
44
+ switch (this.header.name) {
45
+ // "Container" atoms, contains nested atoms
46
+ case 'moov': // The Movie Atom: contains other atoms
47
+ case 'udta': // User defined atom
48
+ case 'trak':
49
+ case 'mdia': // Media atom
50
+ case 'minf': // Media Information Atom
51
+ case 'stbl': // The Sample Table Atom
52
+ case '<id>':
53
+ case 'ilst':
54
+ case 'tref':
55
+ return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining));
56
+ case 'meta': // Metadata Atom, ref: https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW8
57
+ // meta has 4 bytes of padding, ignore
58
+ await tokenizer.ignore(4);
59
+ return this.readAtoms(tokenizer, dataHandler, this.getPayloadLength(remaining) - 4);
60
+ case 'mdhd': // Media header atom
61
+ case 'mvhd': // 'movie' => 'mvhd': movie header atom; child of Movie Atom
62
+ case 'tkhd':
63
+ case 'stsz':
64
+ case 'mdat':
65
+ default:
66
+ return dataHandler(this, remaining);
67
+ }
68
+ }
69
+ }
70
+ exports.Atom = Atom;