@yume-chan/media-codec 3.0.0-beta.0 → 3.0.0-beta.1

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/esm/av1.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"av1.d.ts","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"av1.d.ts","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"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"}
package/esm/av1.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"av1.js","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"av1.js","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"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"}
package/esm/index.d.ts CHANGED
@@ -3,4 +3,6 @@ export * from "./format.js";
3
3
  export * as H264 from "./h264.js";
4
4
  export * as H265 from "./h265.js";
5
5
  export * from "./nalu.js";
6
+ export * as Vp8 from "./vp8.js";
7
+ export * as Vp9 from "./vp9.js";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
package/esm/index.js CHANGED
@@ -3,4 +3,6 @@ export * from "./format.js";
3
3
  export * as H264 from "./h264.js";
4
4
  export * as H265 from "./h265.js";
5
5
  export * from "./nalu.js";
6
+ export * as Vp8 from "./vp8.js";
7
+ export * as Vp9 from "./vp9.js";
6
8
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
package/esm/vp8.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Parse VP8 frame tag.
3
+ *
4
+ * https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
5
+ *
6
+ * @param data Frame data
7
+ * @returns
8
+ */
9
+ export declare function parseFrameTag(data: Uint8Array): {
10
+ version: number;
11
+ show_frame: boolean;
12
+ first_part_size: number;
13
+ } & ({
14
+ key_frame: true;
15
+ width: number;
16
+ horizontal_scale: number;
17
+ height: number;
18
+ vertical_scale: number;
19
+ } | {
20
+ key_frame: false;
21
+ width?: undefined;
22
+ horizontal_scale?: undefined;
23
+ height?: undefined;
24
+ vertical_scale?: undefined;
25
+ });
26
+ //# sourceMappingURL=vp8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vp8.d.ts","sourceRoot":"","sources":["../src/vp8.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAC3B,GAAG,CACE;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CAC1B,GACD;IACI,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,cAAc,CAAC,EAAE,SAAS,CAAC;CAC9B,CACN,CAoCA"}
package/esm/vp8.js ADDED
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Parse VP8 frame tag.
3
+ *
4
+ * https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
5
+ *
6
+ * @param data Frame data
7
+ * @returns
8
+ */
9
+ export function parseFrameTag(data) {
10
+ const frame_tag = data[0] | (data[1] << 8) | (data[2] << 16);
11
+ const key_frame = (frame_tag & 0x01) === 0;
12
+ const version = (frame_tag >> 1) & 0x07;
13
+ const show_frame = ((frame_tag >> 4) & 0x01) === 1;
14
+ const first_part_size = frame_tag >> 5;
15
+ if (key_frame) {
16
+ if (data[3] !== 0x9d || data[4] !== 0x01 || data[5] !== 0x2a) {
17
+ throw new Error("Invalid VP8 frame");
18
+ }
19
+ const width = data[6] | ((data[7] & 0x3f) << 8);
20
+ const horizontal_scale = (data[7] & 0xc0) >> 6;
21
+ const height = data[8] | ((data[9] & 0x3f) << 8);
22
+ const vertical_scale = (data[9] & 0xc0) >> 6;
23
+ return {
24
+ key_frame,
25
+ version,
26
+ show_frame,
27
+ first_part_size,
28
+ width,
29
+ horizontal_scale,
30
+ height,
31
+ vertical_scale,
32
+ };
33
+ }
34
+ return {
35
+ key_frame,
36
+ version,
37
+ show_frame,
38
+ first_part_size,
39
+ };
40
+ }
41
+ //# sourceMappingURL=vp8.js.map
package/esm/vp8.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vp8.js","sourceRoot":"","sources":["../src/vp8.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAgB;IAoB1C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,CAAC;IAEvC,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO;YACH,SAAS;YACT,OAAO;YACP,UAAU;YACV,eAAe;YACf,KAAK;YACL,gBAAgB;YAChB,MAAM;YACN,cAAc;SACjB,CAAC;IACN,CAAC;IAED,OAAO;QACH,SAAS;QACT,OAAO;QACP,UAAU;QACV,eAAe;KAClB,CAAC;AACN,CAAC"}
package/esm/vp9.d.ts ADDED
@@ -0,0 +1,74 @@
1
+ declare class BitReader {
2
+ #private;
3
+ constructor(data: Uint8Array);
4
+ readBit(): number;
5
+ read(n: number): number;
6
+ }
7
+ export declare const FrameTypeKeyFrame = 0;
8
+ export declare const FrameTypeNonKeyFrame = 1;
9
+ export declare function parseFrameHeader(data: Uint8Array): {
10
+ Profile: number;
11
+ } & ({
12
+ show_existing_frame: true;
13
+ frame_to_show_map_idx: number;
14
+ frame_type?: undefined;
15
+ intra_only?: undefined;
16
+ color_config?: undefined;
17
+ frame_size?: undefined;
18
+ render_size?: undefined;
19
+ } | ({
20
+ show_existing_frame: false;
21
+ show_frame: boolean;
22
+ error_resilient_mode: number;
23
+ } & ({
24
+ frame_type: typeof FrameTypeKeyFrame;
25
+ color_config: ReturnType<typeof parseColorConfig>;
26
+ frame_size: ReturnType<typeof parseFrameSize>;
27
+ render_size: ReturnType<typeof parseRenderSize>;
28
+ intra_only?: undefined;
29
+ } | ({
30
+ frame_type: typeof FrameTypeNonKeyFrame;
31
+ reset_frame_context: number;
32
+ } & ({
33
+ intra_only: true;
34
+ color_config: ReturnType<typeof parseColorConfig>;
35
+ refresh_frame_flags: number;
36
+ frame_size: ReturnType<typeof parseFrameSize>;
37
+ render_size: ReturnType<typeof parseRenderSize>;
38
+ } | {
39
+ intra_only: false;
40
+ color_config?: undefined;
41
+ frame_size?: undefined;
42
+ render_size?: undefined;
43
+ })))));
44
+ /**
45
+ * 6.2.2 Color config syntax
46
+ */
47
+ declare function parseColorConfig(reader: BitReader, Profile: number): {
48
+ BitDepth: number;
49
+ color_space: number;
50
+ color_range: number;
51
+ subsampling_x: number | undefined;
52
+ subsampling_y: number | undefined;
53
+ };
54
+ /**
55
+ * 6.2.3 Frame size syntax
56
+ */
57
+ declare function parseFrameSize(reader: BitReader): {
58
+ FrameWidth: number;
59
+ FrameHeight: number;
60
+ };
61
+ /**
62
+ * 6.2.4 Render size syntax
63
+ */
64
+ declare function parseRenderSize(reader: BitReader, FrameWidth: number, FrameHeight: number): {
65
+ render_and_frame_size_different: true;
66
+ RenderWidth: number;
67
+ RenderHeight: number;
68
+ } | {
69
+ render_and_frame_size_different: false;
70
+ RenderWidth: number;
71
+ RenderHeight: number;
72
+ };
73
+ export {};
74
+ //# sourceMappingURL=vp9.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vp9.d.ts","sourceRoot":"","sources":["../src/vp9.ts"],"names":[],"mappings":"AAAA,cAAM,SAAS;;gBAQC,IAAI,EAAE,UAAU;IAkB5B,OAAO,IAAI,MAAM;IAOjB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAY1B;AAED,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,CACpE;IACI,mBAAmB,EAAE,IAAI,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B,GACD,CAAC;IACG,mBAAmB,EAAE,KAAK,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAChC,GAAG,CACE;IACI,UAAU,EAAE,OAAO,iBAAiB,CAAC;IACrC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC9C,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;CAC1B,GACD,CAAC;IACG,UAAU,EAAE,OAAO,oBAAoB,CAAC;IACxC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,GAAG,CACE;IACI,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC9C,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CACnD,GACD;IACI,UAAU,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B,CACN,CAAC,CACP,CAAC,CACP,CA6HA;AAkBD;;GAEG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;;;;;;EAwC3D;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,SAAS;;;EAUxC;AAED;;GAEG;AACH,iBAAS,eAAe,CACpB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM;;;;;;;;EAqBtB"}
package/esm/vp9.js ADDED
@@ -0,0 +1,233 @@
1
+ class BitReader {
2
+ #data;
3
+ #byteOffset = 0;
4
+ // Trigger load on first read
5
+ #bitOffset = 8;
6
+ #cache;
7
+ constructor(data) {
8
+ this.#data = data;
9
+ }
10
+ #load() {
11
+ if (this.#bitOffset !== 8) {
12
+ return;
13
+ }
14
+ if (this.#byteOffset >= this.#data.length) {
15
+ throw new Error("Out of data");
16
+ }
17
+ this.#cache = this.#data[this.#byteOffset];
18
+ this.#byteOffset += 1;
19
+ this.#bitOffset = 0;
20
+ }
21
+ readBit() {
22
+ this.#load();
23
+ const value = (this.#cache >> (7 - this.#bitOffset)) & 0x01;
24
+ this.#bitOffset += 1;
25
+ return value;
26
+ }
27
+ read(n) {
28
+ if (n <= 0 || n > 32) {
29
+ throw new Error("Invalid length");
30
+ }
31
+ let value = 0;
32
+ for (let i = 0; i < n; i += 1) {
33
+ value = (value << 1) | this.readBit();
34
+ }
35
+ return value;
36
+ }
37
+ }
38
+ export const FrameTypeKeyFrame = 0;
39
+ export const FrameTypeNonKeyFrame = 1;
40
+ export function parseFrameHeader(data) {
41
+ const reader = new BitReader(data);
42
+ const frame_marker = reader.read(2);
43
+ if (frame_marker !== 2) {
44
+ throw new Error("Invalid VP9 frame");
45
+ }
46
+ const profile_low_bit = reader.readBit();
47
+ const profile_high_bit = reader.readBit();
48
+ const Profile = (profile_high_bit << 1) | profile_low_bit;
49
+ if (Profile === 3) {
50
+ reader.readBit();
51
+ }
52
+ const show_existing_frame = !!reader.readBit();
53
+ if (show_existing_frame) {
54
+ const frame_to_show_map_idx = reader.read(3);
55
+ return {
56
+ Profile,
57
+ show_existing_frame,
58
+ frame_to_show_map_idx,
59
+ };
60
+ }
61
+ const frame_type = reader.readBit();
62
+ const show_frame = !!reader.readBit();
63
+ const error_resilient_mode = reader.readBit();
64
+ if (frame_type === FrameTypeKeyFrame) {
65
+ parseFrameSyncCode(reader);
66
+ const color_config = parseColorConfig(reader, Profile);
67
+ const frame_size = parseFrameSize(reader);
68
+ const render_size = parseRenderSize(reader, frame_size.FrameWidth, frame_size.FrameHeight);
69
+ return {
70
+ Profile,
71
+ show_existing_frame,
72
+ frame_type: frame_type,
73
+ show_frame,
74
+ error_resilient_mode,
75
+ color_config,
76
+ frame_size,
77
+ render_size,
78
+ };
79
+ }
80
+ else {
81
+ let intra_only;
82
+ if (!show_frame) {
83
+ intra_only = !!reader.readBit();
84
+ }
85
+ else {
86
+ intra_only = false;
87
+ }
88
+ let reset_frame_context;
89
+ if (!error_resilient_mode) {
90
+ reset_frame_context = reader.read(2);
91
+ }
92
+ else {
93
+ reset_frame_context = 0;
94
+ }
95
+ if (intra_only) {
96
+ parseFrameSyncCode(reader);
97
+ let color_config;
98
+ if (Profile > 0) {
99
+ color_config = parseColorConfig(reader, Profile);
100
+ }
101
+ else {
102
+ color_config = {
103
+ BitDepth: 8,
104
+ color_space: ColorSpaceCsBt601,
105
+ subsampling_x: 1,
106
+ subsampling_y: 1,
107
+ color_range: 0, // ????
108
+ };
109
+ }
110
+ const refresh_frame_flags = reader.read(8);
111
+ const frame_size = parseFrameSize(reader);
112
+ const render_size = parseRenderSize(reader, frame_size.FrameWidth, frame_size.FrameHeight);
113
+ return {
114
+ Profile,
115
+ show_existing_frame,
116
+ frame_type,
117
+ show_frame,
118
+ error_resilient_mode,
119
+ intra_only,
120
+ reset_frame_context,
121
+ color_config,
122
+ refresh_frame_flags,
123
+ frame_size,
124
+ render_size,
125
+ };
126
+ }
127
+ else {
128
+ return {
129
+ Profile,
130
+ show_existing_frame,
131
+ frame_type,
132
+ show_frame,
133
+ error_resilient_mode,
134
+ intra_only,
135
+ reset_frame_context,
136
+ };
137
+ }
138
+ }
139
+ }
140
+ const ColorSpaceCsBt601 = 1;
141
+ const ColorSpaceCsRgb = 7;
142
+ /**
143
+ * 6.2.1 Frame sync syntax
144
+ */
145
+ function parseFrameSyncCode(reader) {
146
+ if (reader.read(8) !== 0x49 ||
147
+ reader.read(8) !== 0x83 ||
148
+ reader.read(8) !== 0x42) {
149
+ throw new Error("Invalid VP9 frame");
150
+ }
151
+ }
152
+ /**
153
+ * 6.2.2 Color config syntax
154
+ */
155
+ function parseColorConfig(reader, Profile) {
156
+ let BitDepth;
157
+ if (Profile >= 2) {
158
+ const ten_or_twelve_bit = reader.readBit();
159
+ BitDepth = ten_or_twelve_bit ? 12 : 10;
160
+ }
161
+ else {
162
+ BitDepth = 8;
163
+ }
164
+ const color_space = reader.read(3);
165
+ let color_range;
166
+ let subsampling_x;
167
+ let subsampling_y;
168
+ if (color_space !== ColorSpaceCsRgb) {
169
+ color_range = reader.readBit();
170
+ if (Profile === 1 || Profile === 3) {
171
+ subsampling_x = reader.readBit();
172
+ subsampling_y = reader.readBit();
173
+ reader.readBit();
174
+ }
175
+ else {
176
+ subsampling_x = 1;
177
+ subsampling_y = 1;
178
+ }
179
+ }
180
+ else {
181
+ color_range = 1;
182
+ if (Profile === 1 || Profile === 3) {
183
+ subsampling_x = 0;
184
+ subsampling_y = 0;
185
+ reader.readBit();
186
+ }
187
+ }
188
+ return {
189
+ BitDepth,
190
+ color_space,
191
+ color_range,
192
+ subsampling_x,
193
+ subsampling_y,
194
+ };
195
+ }
196
+ /**
197
+ * 6.2.3 Frame size syntax
198
+ */
199
+ function parseFrameSize(reader) {
200
+ const frame_width_minus_1 = reader.read(16);
201
+ const frame_height_minus_1 = reader.read(16);
202
+ const FrameWidth = frame_width_minus_1 + 1;
203
+ const FrameHeight = frame_height_minus_1 + 1;
204
+ return {
205
+ FrameWidth,
206
+ FrameHeight,
207
+ };
208
+ }
209
+ /**
210
+ * 6.2.4 Render size syntax
211
+ */
212
+ function parseRenderSize(reader, FrameWidth, FrameHeight) {
213
+ const render_and_frame_size_different = !!reader.readBit();
214
+ if (render_and_frame_size_different) {
215
+ const render_width_minus_1 = reader.read(16);
216
+ const render_height_minus_1 = reader.read(16);
217
+ const RenderWidth = render_width_minus_1 + 1;
218
+ const RenderHeight = render_height_minus_1 + 1;
219
+ return {
220
+ render_and_frame_size_different,
221
+ RenderWidth,
222
+ RenderHeight,
223
+ };
224
+ }
225
+ else {
226
+ return {
227
+ render_and_frame_size_different,
228
+ RenderWidth: FrameWidth,
229
+ RenderHeight: FrameHeight,
230
+ };
231
+ }
232
+ }
233
+ //# sourceMappingURL=vp9.js.map
package/esm/vp9.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vp9.js","sourceRoot":"","sources":["../src/vp9.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/media-codec",
3
- "version": "3.0.0-beta.0",
3
+ "version": "3.0.0-beta.1",
4
4
  "description": "H.264, H.265 and AV1 configuration packet parser",
5
5
  "keywords": [
6
6
  "typescript"
@@ -25,14 +25,14 @@
25
25
  "types": "esm/index.d.ts",
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
- "@yume-chan/no-data-view": "3.0.0-beta.0"
28
+ "@yume-chan/no-data-view": "3.0.0-beta.1"
29
29
  },
30
30
  "devDependencies": {
31
- "@types/node": "^26.0.0",
32
- "prettier": "^3.8.4",
31
+ "@types/node": "^26.1.1",
32
+ "prettier": "^3.9.6",
33
33
  "typescript": "^6.0.3",
34
- "@yume-chan/eslint-config": "^1.0.0",
35
34
  "@yume-chan/test-runner": "^1.0.0",
35
+ "@yume-chan/eslint-config": "^1.0.0",
36
36
  "@yume-chan/tsconfig": "^1.0.0"
37
37
  },
38
38
  "scripts": {
package/src/av1.ts CHANGED
@@ -352,8 +352,7 @@ export class Av1 extends BitReader {
352
352
  }
353
353
 
354
354
  let sequence_header_obu:
355
- | ReturnType<Av1["sequenceHeaderObu"]>
356
- | undefined;
355
+ ReturnType<Av1["sequenceHeaderObu"]> | undefined;
357
356
  switch (obu_header.obu_type) {
358
357
  case Av1.ObuType.SequenceHeader:
359
358
  sequence_header_obu = this.sequenceHeaderObu();
@@ -392,8 +391,7 @@ export class Av1 extends BitReader {
392
391
  this.f1();
393
392
 
394
393
  let obu_extension_header:
395
- | ReturnType<Av1["obuExtensionHeader"]>
396
- | undefined;
394
+ ReturnType<Av1["obuExtensionHeader"]> | undefined;
397
395
  if (obu_extension_flag) {
398
396
  obu_extension_header = this.obuExtensionHeader();
399
397
  }
@@ -433,8 +431,7 @@ export class Av1 extends BitReader {
433
431
  const decoder_model_present_for_this_op: boolean[] = [];
434
432
  const initial_display_delay_present_for_this_op: boolean[] = [];
435
433
  let operating_parameters_info:
436
- | ReturnType<Av1["operatingParametersInfo"]>[]
437
- | undefined;
434
+ ReturnType<Av1["operatingParametersInfo"]>[] | undefined;
438
435
  let initial_display_delay_minus_1: number[] | undefined;
439
436
  if (reduced_still_picture_header) {
440
437
  operating_point_idc[0] = 0;
package/src/index.ts CHANGED
@@ -3,3 +3,5 @@ export * from "./format.js";
3
3
  export * as H264 from "./h264.js";
4
4
  export * as H265 from "./h265.js";
5
5
  export * from "./nalu.js";
6
+ export * as Vp8 from "./vp8.js";
7
+ export * as Vp9 from "./vp9.js";
package/src/vp8.ts ADDED
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Parse VP8 frame tag.
3
+ *
4
+ * https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
5
+ *
6
+ * @param data Frame data
7
+ * @returns
8
+ */
9
+ export function parseFrameTag(data: Uint8Array): {
10
+ version: number;
11
+ show_frame: boolean;
12
+ first_part_size: number;
13
+ } & (
14
+ | {
15
+ key_frame: true;
16
+ width: number;
17
+ horizontal_scale: number;
18
+ height: number;
19
+ vertical_scale: number;
20
+ }
21
+ | {
22
+ key_frame: false;
23
+ width?: undefined;
24
+ horizontal_scale?: undefined;
25
+ height?: undefined;
26
+ vertical_scale?: undefined;
27
+ }
28
+ ) {
29
+ const frame_tag = data[0]! | (data[1]! << 8) | (data[2]! << 16);
30
+
31
+ const key_frame = (frame_tag & 0x01) === 0;
32
+ const version = (frame_tag >> 1) & 0x07;
33
+ const show_frame = ((frame_tag >> 4) & 0x01) === 1;
34
+ const first_part_size = frame_tag >> 5;
35
+
36
+ if (key_frame) {
37
+ if (data[3] !== 0x9d || data[4] !== 0x01 || data[5] !== 0x2a) {
38
+ throw new Error("Invalid VP8 frame");
39
+ }
40
+
41
+ const width = data[6]! | ((data[7]! & 0x3f) << 8);
42
+ const horizontal_scale = (data[7]! & 0xc0) >> 6;
43
+ const height = data[8]! | ((data[9]! & 0x3f) << 8);
44
+ const vertical_scale = (data[9]! & 0xc0) >> 6;
45
+
46
+ return {
47
+ key_frame,
48
+ version,
49
+ show_frame,
50
+ first_part_size,
51
+ width,
52
+ horizontal_scale,
53
+ height,
54
+ vertical_scale,
55
+ };
56
+ }
57
+
58
+ return {
59
+ key_frame,
60
+ version,
61
+ show_frame,
62
+ first_part_size,
63
+ };
64
+ }
package/src/vp9.ts ADDED
@@ -0,0 +1,322 @@
1
+ class BitReader {
2
+ #data: Uint8Array;
3
+
4
+ #byteOffset = 0;
5
+ // Trigger load on first read
6
+ #bitOffset = 8;
7
+ #cache!: number;
8
+
9
+ constructor(data: Uint8Array) {
10
+ this.#data = data;
11
+ }
12
+
13
+ #load() {
14
+ if (this.#bitOffset !== 8) {
15
+ return;
16
+ }
17
+
18
+ if (this.#byteOffset >= this.#data.length) {
19
+ throw new Error("Out of data");
20
+ }
21
+
22
+ this.#cache = this.#data[this.#byteOffset]!;
23
+ this.#byteOffset += 1;
24
+ this.#bitOffset = 0;
25
+ }
26
+
27
+ readBit(): number {
28
+ this.#load();
29
+ const value = (this.#cache >> (7 - this.#bitOffset)) & 0x01;
30
+ this.#bitOffset += 1;
31
+ return value;
32
+ }
33
+
34
+ read(n: number): number {
35
+ if (n <= 0 || n > 32) {
36
+ throw new Error("Invalid length");
37
+ }
38
+
39
+ let value = 0;
40
+ for (let i = 0; i < n; i += 1) {
41
+ value = (value << 1) | this.readBit();
42
+ }
43
+
44
+ return value;
45
+ }
46
+ }
47
+
48
+ export const FrameTypeKeyFrame = 0;
49
+ export const FrameTypeNonKeyFrame = 1;
50
+
51
+ export function parseFrameHeader(data: Uint8Array): { Profile: number } & (
52
+ | {
53
+ show_existing_frame: true;
54
+ frame_to_show_map_idx: number;
55
+ frame_type?: undefined;
56
+ intra_only?: undefined;
57
+ color_config?: undefined;
58
+ frame_size?: undefined;
59
+ render_size?: undefined;
60
+ }
61
+ | ({
62
+ show_existing_frame: false;
63
+ show_frame: boolean;
64
+ error_resilient_mode: number;
65
+ } & (
66
+ | {
67
+ frame_type: typeof FrameTypeKeyFrame;
68
+ color_config: ReturnType<typeof parseColorConfig>;
69
+ frame_size: ReturnType<typeof parseFrameSize>;
70
+ render_size: ReturnType<typeof parseRenderSize>;
71
+ intra_only?: undefined;
72
+ }
73
+ | ({
74
+ frame_type: typeof FrameTypeNonKeyFrame;
75
+ reset_frame_context: number;
76
+ } & (
77
+ | {
78
+ intra_only: true;
79
+ color_config: ReturnType<typeof parseColorConfig>;
80
+ refresh_frame_flags: number;
81
+ frame_size: ReturnType<typeof parseFrameSize>;
82
+ render_size: ReturnType<typeof parseRenderSize>;
83
+ }
84
+ | {
85
+ intra_only: false;
86
+ color_config?: undefined;
87
+ frame_size?: undefined;
88
+ render_size?: undefined;
89
+ }
90
+ ))
91
+ ))
92
+ ) {
93
+ const reader = new BitReader(data);
94
+
95
+ const frame_marker = reader.read(2);
96
+ if (frame_marker !== 2) {
97
+ throw new Error("Invalid VP9 frame");
98
+ }
99
+
100
+ const profile_low_bit = reader.readBit();
101
+ const profile_high_bit = reader.readBit();
102
+ const Profile = (profile_high_bit << 1) | profile_low_bit;
103
+ if (Profile === 3) {
104
+ reader.readBit();
105
+ }
106
+
107
+ const show_existing_frame = !!reader.readBit();
108
+ if (show_existing_frame) {
109
+ const frame_to_show_map_idx = reader.read(3);
110
+ return {
111
+ Profile,
112
+
113
+ show_existing_frame,
114
+ frame_to_show_map_idx,
115
+ };
116
+ }
117
+
118
+ const frame_type = reader.readBit() as
119
+ typeof FrameTypeKeyFrame | typeof FrameTypeNonKeyFrame;
120
+ const show_frame = !!reader.readBit();
121
+ const error_resilient_mode = reader.readBit();
122
+
123
+ if (frame_type === FrameTypeKeyFrame) {
124
+ parseFrameSyncCode(reader);
125
+
126
+ const color_config = parseColorConfig(reader, Profile);
127
+ const frame_size = parseFrameSize(reader);
128
+ const render_size = parseRenderSize(
129
+ reader,
130
+ frame_size.FrameWidth,
131
+ frame_size.FrameHeight,
132
+ );
133
+
134
+ return {
135
+ Profile,
136
+
137
+ show_existing_frame,
138
+
139
+ frame_type: frame_type,
140
+ show_frame,
141
+ error_resilient_mode,
142
+
143
+ color_config,
144
+ frame_size,
145
+ render_size,
146
+ };
147
+ } else {
148
+ let intra_only: boolean;
149
+ if (!show_frame) {
150
+ intra_only = !!reader.readBit();
151
+ } else {
152
+ intra_only = false;
153
+ }
154
+
155
+ let reset_frame_context: number;
156
+ if (!error_resilient_mode) {
157
+ reset_frame_context = reader.read(2);
158
+ } else {
159
+ reset_frame_context = 0;
160
+ }
161
+
162
+ if (intra_only) {
163
+ parseFrameSyncCode(reader);
164
+
165
+ let color_config: ReturnType<typeof parseColorConfig>;
166
+ if (Profile > 0) {
167
+ color_config = parseColorConfig(reader, Profile);
168
+ } else {
169
+ color_config = {
170
+ BitDepth: 8,
171
+ color_space: ColorSpaceCsBt601,
172
+ subsampling_x: 1,
173
+ subsampling_y: 1,
174
+ color_range: 0, // ????
175
+ };
176
+ }
177
+
178
+ const refresh_frame_flags = reader.read(8);
179
+
180
+ const frame_size = parseFrameSize(reader);
181
+ const render_size = parseRenderSize(
182
+ reader,
183
+ frame_size.FrameWidth,
184
+ frame_size.FrameHeight,
185
+ );
186
+
187
+ return {
188
+ Profile,
189
+ show_existing_frame,
190
+
191
+ frame_type,
192
+ show_frame,
193
+ error_resilient_mode,
194
+
195
+ intra_only,
196
+ reset_frame_context,
197
+
198
+ color_config,
199
+ refresh_frame_flags,
200
+ frame_size,
201
+ render_size,
202
+ };
203
+ } else {
204
+ return {
205
+ Profile,
206
+ show_existing_frame,
207
+
208
+ frame_type,
209
+ show_frame,
210
+ error_resilient_mode,
211
+
212
+ intra_only,
213
+ reset_frame_context,
214
+ };
215
+ }
216
+ }
217
+ }
218
+
219
+ const ColorSpaceCsBt601 = 1;
220
+ const ColorSpaceCsRgb = 7;
221
+
222
+ /**
223
+ * 6.2.1 Frame sync syntax
224
+ */
225
+ function parseFrameSyncCode(reader: BitReader) {
226
+ if (
227
+ reader.read(8) !== 0x49 ||
228
+ reader.read(8) !== 0x83 ||
229
+ reader.read(8) !== 0x42
230
+ ) {
231
+ throw new Error("Invalid VP9 frame");
232
+ }
233
+ }
234
+
235
+ /**
236
+ * 6.2.2 Color config syntax
237
+ */
238
+ function parseColorConfig(reader: BitReader, Profile: number) {
239
+ let BitDepth: number;
240
+ if (Profile >= 2) {
241
+ const ten_or_twelve_bit = reader.readBit();
242
+ BitDepth = ten_or_twelve_bit ? 12 : 10;
243
+ } else {
244
+ BitDepth = 8;
245
+ }
246
+
247
+ const color_space = reader.read(3);
248
+
249
+ let color_range: number;
250
+ let subsampling_x: number | undefined;
251
+ let subsampling_y: number | undefined;
252
+ if (color_space !== ColorSpaceCsRgb) {
253
+ color_range = reader.readBit();
254
+ if (Profile === 1 || Profile === 3) {
255
+ subsampling_x = reader.readBit();
256
+ subsampling_y = reader.readBit();
257
+ reader.readBit();
258
+ } else {
259
+ subsampling_x = 1;
260
+ subsampling_y = 1;
261
+ }
262
+ } else {
263
+ color_range = 1;
264
+ if (Profile === 1 || Profile === 3) {
265
+ subsampling_x = 0;
266
+ subsampling_y = 0;
267
+ reader.readBit();
268
+ }
269
+ }
270
+
271
+ return {
272
+ BitDepth,
273
+ color_space,
274
+ color_range,
275
+ subsampling_x,
276
+ subsampling_y,
277
+ };
278
+ }
279
+
280
+ /**
281
+ * 6.2.3 Frame size syntax
282
+ */
283
+ function parseFrameSize(reader: BitReader) {
284
+ const frame_width_minus_1 = reader.read(16);
285
+ const frame_height_minus_1 = reader.read(16);
286
+ const FrameWidth = frame_width_minus_1 + 1;
287
+ const FrameHeight = frame_height_minus_1 + 1;
288
+
289
+ return {
290
+ FrameWidth,
291
+ FrameHeight,
292
+ };
293
+ }
294
+
295
+ /**
296
+ * 6.2.4 Render size syntax
297
+ */
298
+ function parseRenderSize(
299
+ reader: BitReader,
300
+ FrameWidth: number,
301
+ FrameHeight: number,
302
+ ) {
303
+ const render_and_frame_size_different = !!reader.readBit();
304
+ if (render_and_frame_size_different) {
305
+ const render_width_minus_1 = reader.read(16);
306
+ const render_height_minus_1 = reader.read(16);
307
+ const RenderWidth = render_width_minus_1 + 1;
308
+ const RenderHeight = render_height_minus_1 + 1;
309
+
310
+ return {
311
+ render_and_frame_size_different,
312
+ RenderWidth,
313
+ RenderHeight,
314
+ };
315
+ } else {
316
+ return {
317
+ render_and_frame_size_different,
318
+ RenderWidth: FrameWidth,
319
+ RenderHeight: FrameHeight,
320
+ };
321
+ }
322
+ }