piixishstream 0.0.0-stage → 1.0.2
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/README.md +124 -2
- package/dist/client/GatewayEvents.d.ts +30 -0
- package/dist/client/GatewayEvents.js +2 -0
- package/dist/client/GatewayEvents.js.map +1 -0
- package/dist/client/GatewayOpCodes.d.ts +40 -0
- package/dist/client/GatewayOpCodes.js +42 -0
- package/dist/client/GatewayOpCodes.js.map +1 -0
- package/dist/client/Streamer.d.ts +30 -0
- package/dist/client/Streamer.js +188 -0
- package/dist/client/Streamer.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.d.ts +23 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.js +149 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.js.map +1 -0
- package/dist/client/processing/AnnexBHelper.d.ts +93 -0
- package/dist/client/processing/AnnexBHelper.js +127 -0
- package/dist/client/processing/AnnexBHelper.js.map +1 -0
- package/dist/client/processing/SPSVUIRewriter.d.ts +1 -0
- package/dist/client/processing/SPSVUIRewriter.js +297 -0
- package/dist/client/processing/SPSVUIRewriter.js.map +1 -0
- package/dist/client/voice/BaseMediaConnection.d.ts +80 -0
- package/dist/client/voice/BaseMediaConnection.js +552 -0
- package/dist/client/voice/BaseMediaConnection.js.map +1 -0
- package/dist/client/voice/CodecPayloadType.d.ts +59 -0
- package/dist/client/voice/CodecPayloadType.js +60 -0
- package/dist/client/voice/CodecPayloadType.js.map +1 -0
- package/dist/client/voice/StreamConnection.d.ts +11 -0
- package/dist/client/voice/StreamConnection.js +34 -0
- package/dist/client/voice/StreamConnection.js.map +1 -0
- package/dist/client/voice/VoiceConnection.d.ts +8 -0
- package/dist/client/voice/VoiceConnection.js +15 -0
- package/dist/client/voice/VoiceConnection.js.map +1 -0
- package/dist/client/voice/VoiceMessageTypes.d.ts +178 -0
- package/dist/client/voice/VoiceMessageTypes.js +2 -0
- package/dist/client/voice/VoiceMessageTypes.js.map +1 -0
- package/dist/client/voice/VoiceOpCodes.d.ts +35 -0
- package/dist/client/voice/VoiceOpCodes.js +38 -0
- package/dist/client/voice/VoiceOpCodes.js.map +1 -0
- package/dist/client/voice/WebRtcWrapper.d.ts +23 -0
- package/dist/client/voice/WebRtcWrapper.js +159 -0
- package/dist/client/voice/WebRtcWrapper.js.map +1 -0
- package/dist/client/voice/index.d.ts +4 -0
- package/dist/client/voice/index.js +6 -0
- package/dist/client/voice/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/media/AudioStream.d.ts +7 -0
- package/dist/media/AudioStream.js +12 -0
- package/dist/media/AudioStream.js.map +1 -0
- package/dist/media/BaseMediaStream.d.ts +31 -0
- package/dist/media/BaseMediaStream.js +164 -0
- package/dist/media/BaseMediaStream.js.map +1 -0
- package/dist/media/LibavCodecId.d.ts +541 -0
- package/dist/media/LibavCodecId.js +553 -0
- package/dist/media/LibavCodecId.js.map +1 -0
- package/dist/media/LibavDecoder.d.ts +5 -0
- package/dist/media/LibavDecoder.js +43 -0
- package/dist/media/LibavDecoder.js.map +1 -0
- package/dist/media/LibavDemuxer.d.ts +44 -0
- package/dist/media/LibavDemuxer.js +231 -0
- package/dist/media/LibavDemuxer.js.map +1 -0
- package/dist/media/VideoStream.d.ts +7 -0
- package/dist/media/VideoStream.js +12 -0
- package/dist/media/VideoStream.js.map +1 -0
- package/dist/media/encoders/index.d.ts +26 -0
- package/dist/media/encoders/index.js +12 -0
- package/dist/media/encoders/index.js.map +1 -0
- package/dist/media/encoders/merge.d.ts +3 -0
- package/dist/media/encoders/merge.js +10 -0
- package/dist/media/encoders/merge.js.map +1 -0
- package/dist/media/encoders/nvenc.d.ts +10 -0
- package/dist/media/encoders/nvenc.js +23 -0
- package/dist/media/encoders/nvenc.js.map +1 -0
- package/dist/media/encoders/software.d.ts +17 -0
- package/dist/media/encoders/software.js +31 -0
- package/dist/media/encoders/software.js.map +1 -0
- package/dist/media/encoders/vaapi.d.ts +6 -0
- package/dist/media/encoders/vaapi.js +22 -0
- package/dist/media/encoders/vaapi.js.map +1 -0
- package/dist/media/index.d.ts +4 -0
- package/dist/media/index.js +5 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/newApi.d.ts +130 -0
- package/dist/media/newApi.js +409 -0
- package/dist/media/newApi.js.map +1 -0
- package/dist/utils.d.ts +25 -0
- package/dist/utils.js +65 -0
- package/dist/utils.js.map +1 -0
- package/package.json +82 -5
- package/src/client/GatewayEvents.ts +48 -0
- package/src/client/GatewayOpCodes.ts +40 -0
- package/src/client/Streamer.ts +259 -0
- package/src/client/index.ts +3 -0
- package/src/client/processing/AnnexBBitstreamReaderWriter.ts +148 -0
- package/src/client/processing/AnnexBHelper.ts +134 -0
- package/src/client/processing/SPSVUIRewriter.ts +332 -0
- package/src/client/voice/BaseMediaConnection.ts +639 -0
- package/src/client/voice/CodecPayloadType.ts +59 -0
- package/src/client/voice/MediaUdp.ts.bak +171 -0
- package/src/client/voice/StreamConnection.ts +38 -0
- package/src/client/voice/VoiceConnection.ts +19 -0
- package/src/client/voice/VoiceMessageTypes.ts +263 -0
- package/src/client/voice/VoiceOpCodes.ts +36 -0
- package/src/client/voice/WebRtcWrapper.ts +218 -0
- package/src/client/voice/index.ts +5 -0
- package/src/index.ts +3 -0
- package/src/media/AudioStream.ts +18 -0
- package/src/media/BaseMediaStream.ts +198 -0
- package/src/media/LibavCodecId.ts +564 -0
- package/src/media/LibavDecoder.ts +47 -0
- package/src/media/LibavDemuxer.ts +293 -0
- package/src/media/VideoStream.ts +17 -0
- package/src/media/encoders/index.ts +27 -0
- package/src/media/encoders/merge.ts +14 -0
- package/src/media/encoders/nvenc.ts +38 -0
- package/src/media/encoders/software.ts +76 -0
- package/src/media/encoders/vaapi.ts +29 -0
- package/src/media/index.ts +4 -0
- package/src/media/newApi.ts +642 -0
- package/src/utils.ts +101 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { AnnexBBitstreamReader, AnnexBBitstreamWriter, } from "./AnnexBBitstreamReaderWriter.js";
|
|
2
|
+
export function rewriteSPSVUI(buffer) {
|
|
3
|
+
const reader = new AnnexBBitstreamReader(buffer.subarray(1));
|
|
4
|
+
const writer = new AnnexBBitstreamWriter();
|
|
5
|
+
const readBit = (n = 1) => reader.readBits(n);
|
|
6
|
+
const writeBit = (v, n = 1) => writer.writeBits(v, n);
|
|
7
|
+
const readU = (n) => reader.readUnsigned(n);
|
|
8
|
+
const writeU = (v, n) => writer.writeUnsigned(v, n);
|
|
9
|
+
const readUE = () => reader.readUnsignedExpGolomb();
|
|
10
|
+
const writeUE = (v) => writer.writeUnsignedExpGolomb(v);
|
|
11
|
+
const readSE = () => reader.readSignedExpGolomb();
|
|
12
|
+
const writeSE = (v) => writer.writeSignedExpGolomb(v);
|
|
13
|
+
// Rewrite the NAL header
|
|
14
|
+
writeU(buffer[0], 8);
|
|
15
|
+
const profile_idc = readU(8);
|
|
16
|
+
writeU(profile_idc, 8);
|
|
17
|
+
const constraint_flags = readU(8);
|
|
18
|
+
writeU(constraint_flags, 8);
|
|
19
|
+
const level_idc = readU(8);
|
|
20
|
+
writeU(level_idc, 8);
|
|
21
|
+
const seq_parameter_set_id = readUE();
|
|
22
|
+
writeUE(seq_parameter_set_id);
|
|
23
|
+
// If profile in high profiles, additional fields
|
|
24
|
+
const highProfiles = new Set([
|
|
25
|
+
100, 110, 122, 244, 44, 83, 86, 118, 128, 138, 144,
|
|
26
|
+
]);
|
|
27
|
+
if (highProfiles.has(profile_idc)) {
|
|
28
|
+
const chroma_format_idc = readUE();
|
|
29
|
+
writeUE(chroma_format_idc);
|
|
30
|
+
if (chroma_format_idc === 3) {
|
|
31
|
+
const separate_colour_plane_flag = readBit(1);
|
|
32
|
+
writeBit(separate_colour_plane_flag, 1);
|
|
33
|
+
}
|
|
34
|
+
const bit_depth_luma_minus8 = readUE();
|
|
35
|
+
writeUE(bit_depth_luma_minus8);
|
|
36
|
+
const bit_depth_chroma_minus8 = readUE();
|
|
37
|
+
writeUE(bit_depth_chroma_minus8);
|
|
38
|
+
const qpprime_y_zero_transform_bypass_flag = readBit(1);
|
|
39
|
+
writeBit(qpprime_y_zero_transform_bypass_flag, 1);
|
|
40
|
+
const seq_scaling_matrix_present_flag = readBit(1);
|
|
41
|
+
writeBit(seq_scaling_matrix_present_flag, 1);
|
|
42
|
+
if (seq_scaling_matrix_present_flag) {
|
|
43
|
+
const scalingCount = chroma_format_idc !== 3 ? 8 : 12;
|
|
44
|
+
for (let i = 0; i < scalingCount; i++) {
|
|
45
|
+
const seq_scaling_list_present_flag = readBit(1);
|
|
46
|
+
writeBit(seq_scaling_list_present_flag, 1);
|
|
47
|
+
if (seq_scaling_list_present_flag) {
|
|
48
|
+
const size = i < 6 ? 16 : 64;
|
|
49
|
+
// scaling_list(size)
|
|
50
|
+
let lastScale = 8;
|
|
51
|
+
let nextScale = 8;
|
|
52
|
+
for (let j = 0; j < size; j++) {
|
|
53
|
+
const delta = readSE();
|
|
54
|
+
writeSE(delta);
|
|
55
|
+
nextScale = (lastScale + delta + 256) % 256;
|
|
56
|
+
if (nextScale !== 0)
|
|
57
|
+
lastScale = nextScale;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const log2_max_frame_num_minus4 = readUE();
|
|
64
|
+
writeUE(log2_max_frame_num_minus4);
|
|
65
|
+
const pic_order_cnt_type = readUE();
|
|
66
|
+
writeUE(pic_order_cnt_type);
|
|
67
|
+
if (pic_order_cnt_type === 0) {
|
|
68
|
+
const log2_max_pic_order_cnt_lsb_minus4 = readUE();
|
|
69
|
+
writeUE(log2_max_pic_order_cnt_lsb_minus4);
|
|
70
|
+
}
|
|
71
|
+
else if (pic_order_cnt_type === 1) {
|
|
72
|
+
const delta_pic_order_always_zero_flag = readBit(1);
|
|
73
|
+
writeBit(delta_pic_order_always_zero_flag, 1);
|
|
74
|
+
const offset_for_non_ref_pic = readSE();
|
|
75
|
+
writeSE(offset_for_non_ref_pic);
|
|
76
|
+
const offset_for_top_to_bottom_field = readSE();
|
|
77
|
+
writeSE(offset_for_top_to_bottom_field);
|
|
78
|
+
const num_ref_frames_in_pic_order_cnt_cycle = readUE();
|
|
79
|
+
writeUE(num_ref_frames_in_pic_order_cnt_cycle);
|
|
80
|
+
for (let i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {
|
|
81
|
+
const offset_for_ref_frame = readSE();
|
|
82
|
+
writeSE(offset_for_ref_frame);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const max_num_ref_frames = readUE();
|
|
86
|
+
writeUE(max_num_ref_frames);
|
|
87
|
+
const gaps_in_frame_num_value_allowed_flag = readBit(1);
|
|
88
|
+
writeBit(gaps_in_frame_num_value_allowed_flag, 1);
|
|
89
|
+
const pic_width_in_mbs_minus1 = readUE();
|
|
90
|
+
writeUE(pic_width_in_mbs_minus1);
|
|
91
|
+
const pic_height_in_map_units_minus1 = readUE();
|
|
92
|
+
writeUE(pic_height_in_map_units_minus1);
|
|
93
|
+
const frame_mbs_only_flag = readBit(1);
|
|
94
|
+
writeBit(frame_mbs_only_flag, 1);
|
|
95
|
+
if (frame_mbs_only_flag === 0) {
|
|
96
|
+
const mb_adaptive_frame_field_flag = readBit(1);
|
|
97
|
+
writeBit(mb_adaptive_frame_field_flag, 1);
|
|
98
|
+
}
|
|
99
|
+
const direct_8x8_inference_flag = readBit(1);
|
|
100
|
+
writeBit(direct_8x8_inference_flag, 1);
|
|
101
|
+
const frame_cropping_flag = readBit(1);
|
|
102
|
+
writeBit(frame_cropping_flag, 1);
|
|
103
|
+
if (frame_cropping_flag) {
|
|
104
|
+
const frame_crop_left_offset = readUE();
|
|
105
|
+
writeUE(frame_crop_left_offset);
|
|
106
|
+
const frame_crop_right_offset = readUE();
|
|
107
|
+
writeUE(frame_crop_right_offset);
|
|
108
|
+
const frame_crop_top_offset = readUE();
|
|
109
|
+
writeUE(frame_crop_top_offset);
|
|
110
|
+
const frame_crop_bottom_offset = readUE();
|
|
111
|
+
writeUE(frame_crop_bottom_offset);
|
|
112
|
+
}
|
|
113
|
+
// https://webrtc.googlesource.com/src/+/5f2c9278f35e47ff72eb191669d473b7400c9f3e/common_video/h264/sps_vui_rewriter.cc#283
|
|
114
|
+
function addBitstreamRestriction() {
|
|
115
|
+
// motion_vectors_over_pic_boundaries_flag: u(1)
|
|
116
|
+
// Default is 1 when not present.
|
|
117
|
+
writeBit(1, 1);
|
|
118
|
+
// max_bytes_per_pic_denom: ue(v)
|
|
119
|
+
// Default is 2 when not present.
|
|
120
|
+
writeUE(2);
|
|
121
|
+
// max_bits_per_mb_denom: ue(v)
|
|
122
|
+
// Default is 1 when not present.
|
|
123
|
+
writeUE(1);
|
|
124
|
+
// log2_max_mv_length_horizontal: ue(v)
|
|
125
|
+
// log2_max_mv_length_vertical: ue(v)
|
|
126
|
+
// Both default to 16 when not present.
|
|
127
|
+
writeUE(16);
|
|
128
|
+
writeUE(16);
|
|
129
|
+
// ********* IMPORTANT! **********
|
|
130
|
+
// max_num_reorder_frames: ue(v)
|
|
131
|
+
writeUE(0);
|
|
132
|
+
// max_dec_frame_buffering: ue(v)
|
|
133
|
+
writeUE(max_num_ref_frames);
|
|
134
|
+
}
|
|
135
|
+
const vui_parameters_present_flag = readBit(1);
|
|
136
|
+
writeBit(1, 1);
|
|
137
|
+
// If no VUI exists, write one
|
|
138
|
+
if (!vui_parameters_present_flag) {
|
|
139
|
+
// aspect_ratio_info_present_flag, overscan_info_present_flag. Both u(1).
|
|
140
|
+
writeBit(0, 2);
|
|
141
|
+
// video_signal_type_present_flag, u(1).
|
|
142
|
+
// Just write 0 here because I'm not gonna bother myself with color space and whatnot
|
|
143
|
+
writeBit(0, 1);
|
|
144
|
+
// chroma_loc_info_present_flag, timing_info_present_flag,
|
|
145
|
+
// nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag,
|
|
146
|
+
// pic_struct_present_flag, All u(1)
|
|
147
|
+
writeBit(0, 5);
|
|
148
|
+
// bitstream_restriction_flag: u(1)
|
|
149
|
+
writeBit(1, 1);
|
|
150
|
+
addBitstreamRestriction();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// VUI parsing and copying
|
|
154
|
+
const aspect_ratio_info_present_flag = readBit(1);
|
|
155
|
+
writeBit(aspect_ratio_info_present_flag, 1);
|
|
156
|
+
if (aspect_ratio_info_present_flag) {
|
|
157
|
+
const aspect_ratio_idc = readU(8);
|
|
158
|
+
writeU(aspect_ratio_idc, 8);
|
|
159
|
+
if (aspect_ratio_idc === 255) {
|
|
160
|
+
// Extended_SAR
|
|
161
|
+
const sar_width = readU(16);
|
|
162
|
+
writeU(sar_width, 16);
|
|
163
|
+
const sar_height = readU(16);
|
|
164
|
+
writeU(sar_height, 16);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const overscan_info_present_flag = readBit(1);
|
|
168
|
+
writeBit(overscan_info_present_flag, 1);
|
|
169
|
+
if (overscan_info_present_flag) {
|
|
170
|
+
const overscan_appropriate_flag = readBit(1);
|
|
171
|
+
writeBit(overscan_appropriate_flag, 1);
|
|
172
|
+
}
|
|
173
|
+
// Read the video signal type, but don't copy it
|
|
174
|
+
const video_signal_type_present_flag = readBit(1);
|
|
175
|
+
writeBit(0, 1);
|
|
176
|
+
if (video_signal_type_present_flag) {
|
|
177
|
+
const _video_format = readBit(3);
|
|
178
|
+
// writeBit(video_format, 3);
|
|
179
|
+
const _video_full_range_flag = readBit(1);
|
|
180
|
+
// writeBit(video_full_range_flag, 1);
|
|
181
|
+
const colour_description_present_flag = readBit(1);
|
|
182
|
+
// writeBit(colour_description_present_flag, 1);
|
|
183
|
+
if (colour_description_present_flag) {
|
|
184
|
+
const _colour_primaries = readU(8);
|
|
185
|
+
// writeU(colour_primaries, 8);
|
|
186
|
+
const _transfer_characteristics = readU(8);
|
|
187
|
+
// writeU(transfer_characteristics, 8);
|
|
188
|
+
const _matrix_coeffs = readU(8);
|
|
189
|
+
// writeU(matrix_coeffs, 8);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
const chroma_loc_info_present_flag = readBit(1);
|
|
193
|
+
writeBit(chroma_loc_info_present_flag, 1);
|
|
194
|
+
if (chroma_loc_info_present_flag) {
|
|
195
|
+
const chroma_sample_loc_type_top_field = readUE();
|
|
196
|
+
writeUE(chroma_sample_loc_type_top_field);
|
|
197
|
+
const chroma_sample_loc_type_bottom_field = readUE();
|
|
198
|
+
writeUE(chroma_sample_loc_type_bottom_field);
|
|
199
|
+
}
|
|
200
|
+
const timing_info_present_flag = readBit(1);
|
|
201
|
+
writeBit(timing_info_present_flag, 1);
|
|
202
|
+
if (timing_info_present_flag) {
|
|
203
|
+
const num_units_in_tick = readU(32);
|
|
204
|
+
writeU(num_units_in_tick, 32);
|
|
205
|
+
const time_scale = readU(32);
|
|
206
|
+
writeU(time_scale, 32);
|
|
207
|
+
const fixed_frame_rate_flag = readBit(1);
|
|
208
|
+
writeBit(fixed_frame_rate_flag, 1);
|
|
209
|
+
}
|
|
210
|
+
const nal_hrd_parameters_present_flag = readBit(1);
|
|
211
|
+
writeBit(nal_hrd_parameters_present_flag, 1);
|
|
212
|
+
if (nal_hrd_parameters_present_flag) {
|
|
213
|
+
// hrd_parameters()
|
|
214
|
+
const cpb_cnt_minus1 = readUE();
|
|
215
|
+
writeUE(cpb_cnt_minus1);
|
|
216
|
+
const bit_rate_scale = readBit(4);
|
|
217
|
+
writeBit(bit_rate_scale, 4);
|
|
218
|
+
const cpb_size_scale = readBit(4);
|
|
219
|
+
writeBit(cpb_size_scale, 4);
|
|
220
|
+
for (let i = 0; i <= cpb_cnt_minus1; i++) {
|
|
221
|
+
const bit_rate_value_minus1 = readUE();
|
|
222
|
+
writeUE(bit_rate_value_minus1);
|
|
223
|
+
const cpb_size_value_minus1 = readUE();
|
|
224
|
+
writeUE(cpb_size_value_minus1);
|
|
225
|
+
const cbr_flag = readBit(1);
|
|
226
|
+
writeBit(cbr_flag, 1);
|
|
227
|
+
}
|
|
228
|
+
const initial_cpb_removal_delay_length_minus1 = readBit(5);
|
|
229
|
+
writeBit(initial_cpb_removal_delay_length_minus1, 5);
|
|
230
|
+
const cpb_removal_delay_length_minus1 = readBit(5);
|
|
231
|
+
writeBit(cpb_removal_delay_length_minus1, 5);
|
|
232
|
+
const dpb_output_delay_length_minus1 = readBit(5);
|
|
233
|
+
writeBit(dpb_output_delay_length_minus1, 5);
|
|
234
|
+
const time_offset_length = readBit(5);
|
|
235
|
+
writeBit(time_offset_length, 5);
|
|
236
|
+
}
|
|
237
|
+
const vcl_hrd_parameters_present_flag = readBit(1);
|
|
238
|
+
writeBit(vcl_hrd_parameters_present_flag, 1);
|
|
239
|
+
if (vcl_hrd_parameters_present_flag) {
|
|
240
|
+
// hrd_parameters()
|
|
241
|
+
const cpb_cnt_minus1 = readUE();
|
|
242
|
+
writeUE(cpb_cnt_minus1);
|
|
243
|
+
const bit_rate_scale = readBit(4);
|
|
244
|
+
writeBit(bit_rate_scale, 4);
|
|
245
|
+
const cpb_size_scale = readBit(4);
|
|
246
|
+
writeBit(cpb_size_scale, 4);
|
|
247
|
+
for (let i = 0; i <= cpb_cnt_minus1; i++) {
|
|
248
|
+
const bit_rate_value_minus1 = readUE();
|
|
249
|
+
writeUE(bit_rate_value_minus1);
|
|
250
|
+
const cpb_size_value_minus1 = readUE();
|
|
251
|
+
writeUE(cpb_size_value_minus1);
|
|
252
|
+
const cbr_flag = readBit(1);
|
|
253
|
+
writeBit(cbr_flag, 1);
|
|
254
|
+
}
|
|
255
|
+
const initial_cpb_removal_delay_length_minus1 = readBit(5);
|
|
256
|
+
writeBit(initial_cpb_removal_delay_length_minus1, 5);
|
|
257
|
+
const cpb_removal_delay_length_minus1 = readBit(5);
|
|
258
|
+
writeBit(cpb_removal_delay_length_minus1, 5);
|
|
259
|
+
const dpb_output_delay_length_minus1 = readBit(5);
|
|
260
|
+
writeBit(dpb_output_delay_length_minus1, 5);
|
|
261
|
+
const time_offset_length = readBit(5);
|
|
262
|
+
writeBit(time_offset_length, 5);
|
|
263
|
+
}
|
|
264
|
+
if (nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag) {
|
|
265
|
+
const low_delay_hrd_flag = readBit(1);
|
|
266
|
+
writeBit(low_delay_hrd_flag, 1);
|
|
267
|
+
}
|
|
268
|
+
const pic_struct_present_flag = readBit(1);
|
|
269
|
+
writeBit(pic_struct_present_flag, 1);
|
|
270
|
+
const bitstream_restriction_flag = readBit(1);
|
|
271
|
+
writeBit(1, 1);
|
|
272
|
+
if (!bitstream_restriction_flag) {
|
|
273
|
+
addBitstreamRestriction();
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
const motion_vectors_over_pic_boundaries_flag = readBit(1);
|
|
277
|
+
writeBit(motion_vectors_over_pic_boundaries_flag, 1);
|
|
278
|
+
const max_bytes_per_pic_denom = readUE();
|
|
279
|
+
writeUE(max_bytes_per_pic_denom);
|
|
280
|
+
const max_bits_per_mb_denom = readUE();
|
|
281
|
+
writeUE(max_bits_per_mb_denom);
|
|
282
|
+
const log2_max_mv_length_horizontal = readUE();
|
|
283
|
+
writeUE(log2_max_mv_length_horizontal);
|
|
284
|
+
const log2_max_mv_length_vertical = readUE();
|
|
285
|
+
writeUE(log2_max_mv_length_vertical);
|
|
286
|
+
const _num_reorder_frames = readUE();
|
|
287
|
+
writeUE(0);
|
|
288
|
+
const _max_dec_frame_buffering = readUE();
|
|
289
|
+
writeUE(max_num_ref_frames);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
writeBit(1, 1); // rbsp_stop_one_bit
|
|
293
|
+
writer.flush();
|
|
294
|
+
// return the rewritten RBSP as a buffer
|
|
295
|
+
return writer.toBuffer();
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=SPSVUIRewriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SPSVUIRewriter.js","sourceRoot":"","sources":["../../../src/client/processing/SPSVUIRewriter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE9D,yBAAyB;IACzB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAErB,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAC;IACtC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9B,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;KACnD,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE3B,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC/B,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEjC,MAAM,oCAAoC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,QAAQ,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QAElD,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,+BAA+B,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,6BAA6B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjD,QAAQ,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;gBAC3C,IAAI,6BAA6B,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,qBAAqB;oBACrB,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,SAAS,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;wBAC5C,IAAI,SAAS,KAAK,CAAC;4BAAE,SAAS,GAAG,SAAS,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,yBAAyB,GAAG,MAAM,EAAE,CAAC;IAC3C,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEnC,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;IACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5B,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,iCAAiC,GAAG,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,gCAAgC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACpD,QAAQ,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,sBAAsB,GAAG,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChC,MAAM,8BAA8B,GAAG,MAAM,EAAE,CAAC;QAChD,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACxC,MAAM,qCAAqC,GAAG,MAAM,EAAE,CAAC;QACvD,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qCAAqC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;IACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE5B,MAAM,oCAAoC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;IAElD,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;IACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEjC,MAAM,8BAA8B,GAAG,MAAM,EAAE,CAAC;IAChD,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAExC,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACjC,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,4BAA4B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChD,QAAQ,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,yBAAyB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACjC,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,sBAAsB,GAAG,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChC,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACjC,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC/B,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC;QAC1C,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACpC,CAAC;IAED,2HAA2H;IAC3H,SAAS,uBAAuB;QAC9B,gDAAgD;QAChD,iCAAiC;QACjC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,iCAAiC;QACjC,iCAAiC;QACjC,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,+BAA+B;QAC/B,iCAAiC;QACjC,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,uCAAuC;QACvC,qCAAqC;QACrC,uCAAuC;QACvC,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,kCAAkC;QAClC,gCAAgC;QAChC,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,iCAAiC;QACjC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,2BAA2B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,yEAAyE;QACzE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,wCAAwC;QACxC,qFAAqF;QACrF,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,0DAA0D;QAC1D,oEAAoE;QACpE,oCAAoC;QACpC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,mCAAmC;QACnC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,uBAAuB,EAAE,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,MAAM,8BAA8B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,8BAA8B,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,gBAAgB,KAAK,GAAG,EAAE,CAAC;gBAC7B,eAAe;gBACf,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7B,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9C,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,0BAA0B,EAAE,CAAC;YAC/B,MAAM,yBAAyB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,gDAAgD;QAChD,MAAM,8BAA8B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,8BAA8B,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,6BAA6B;YAC7B,MAAM,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,sCAAsC;YACtC,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,gDAAgD;YAChD,IAAI,+BAA+B,EAAE,CAAC;gBACpC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnC,+BAA+B;gBAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,uCAAuC;gBACvC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChC,4BAA4B;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,4BAA4B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChD,QAAQ,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,4BAA4B,EAAE,CAAC;YACjC,MAAM,gCAAgC,GAAG,MAAM,EAAE,CAAC;YAClD,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC1C,MAAM,mCAAmC,GAAG,MAAM,EAAE,CAAC;YACrD,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACvB,MAAM,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,+BAA+B,EAAE,CAAC;YACpC,mBAAmB;YACnB,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,CAAC;YACxB,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;gBACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAC/B,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;gBACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,uCAAuC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3D,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,QAAQ,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,8BAA8B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,+BAA+B,EAAE,CAAC;YACpC,mBAAmB;YACnB,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,CAAC;YACxB,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;gBACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAC/B,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;gBACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,uCAAuC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3D,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,+BAA+B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,QAAQ,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,8BAA8B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,+BAA+B,IAAI,+BAA+B,EAAE,CAAC;YACvE,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,uBAAuB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAErC,MAAM,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9C,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChC,uBAAuB,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,uCAAuC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3D,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;YACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACjC,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC/B,MAAM,6BAA6B,GAAG,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACvC,MAAM,2BAA2B,GAAG,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,2BAA2B,CAAC,CAAC;YACrC,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC;YACX,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC;YAC1C,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACpC,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,wCAAwC;IACxC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import Davey from "@snazzah/davey";
|
|
2
|
+
import EventEmitter from "node:events";
|
|
3
|
+
import { WebRtcConnWrapper } from "./WebRtcWrapper.js";
|
|
4
|
+
import { VoiceOpCodesBinary } from "./VoiceOpCodes.js";
|
|
5
|
+
import { type SupportedEncryptionModes } from "../../utils.js";
|
|
6
|
+
import type { Message, GatewayRequest } from "./VoiceMessageTypes.js";
|
|
7
|
+
import type { Streamer } from "../Streamer.js";
|
|
8
|
+
type VoiceConnectionStatus = {
|
|
9
|
+
hasSession: boolean;
|
|
10
|
+
hasToken: boolean;
|
|
11
|
+
started: boolean;
|
|
12
|
+
resuming: boolean;
|
|
13
|
+
};
|
|
14
|
+
type WebRtcParameters = {
|
|
15
|
+
address: string;
|
|
16
|
+
port: number;
|
|
17
|
+
audioSsrc: number;
|
|
18
|
+
videoSsrc: number;
|
|
19
|
+
rtxSsrc: number;
|
|
20
|
+
supportedEncryptionModes: SupportedEncryptionModes[];
|
|
21
|
+
};
|
|
22
|
+
export type VideoAttributes = {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
fps: number;
|
|
26
|
+
};
|
|
27
|
+
export declare abstract class BaseMediaConnection extends EventEmitter {
|
|
28
|
+
private interval;
|
|
29
|
+
guildId: string | null;
|
|
30
|
+
channelId: string;
|
|
31
|
+
botId: string;
|
|
32
|
+
ws: WebSocket | null;
|
|
33
|
+
status: VoiceConnectionStatus;
|
|
34
|
+
server: string | null;
|
|
35
|
+
token: string | null;
|
|
36
|
+
session_id: string | null;
|
|
37
|
+
private _webRtcWrapper;
|
|
38
|
+
private _webRtcParams;
|
|
39
|
+
private _closed;
|
|
40
|
+
ready: (conn: WebRtcConnWrapper) => void;
|
|
41
|
+
private _streamer;
|
|
42
|
+
private _sequenceNumber;
|
|
43
|
+
private _daveSession;
|
|
44
|
+
private _connectedUsers;
|
|
45
|
+
private _daveProtocolVersion;
|
|
46
|
+
private _davePendingTransitions;
|
|
47
|
+
private _daveDowngraded;
|
|
48
|
+
private _logger;
|
|
49
|
+
private _loggerDave;
|
|
50
|
+
constructor(streamer: Streamer, guildId: string | null, botId: string, channelId: string, callback: (conn: WebRtcConnWrapper) => void);
|
|
51
|
+
abstract get serverId(): string | null;
|
|
52
|
+
get type(): "guild" | "call";
|
|
53
|
+
get webRtcConn(): WebRtcConnWrapper;
|
|
54
|
+
get webRtcParams(): WebRtcParameters | null;
|
|
55
|
+
get streamer(): Streamer;
|
|
56
|
+
abstract get daveChannelId(): string;
|
|
57
|
+
stop(): void;
|
|
58
|
+
setSession(session_id: string): void;
|
|
59
|
+
setTokens(server: string, token: string): void;
|
|
60
|
+
start(): void;
|
|
61
|
+
handleReady(d: Message.Ready): void;
|
|
62
|
+
handleProtocolAck(d: Message.SelectProtocolAck): Promise<void>;
|
|
63
|
+
initDave(): void;
|
|
64
|
+
processInvalidCommit(transitionId: number): void;
|
|
65
|
+
executePendingTransition(transitionId: number): void;
|
|
66
|
+
setupEvents(): void;
|
|
67
|
+
handleBinaryMessages(msg: Buffer): void;
|
|
68
|
+
get daveReady(): boolean | 0 | undefined;
|
|
69
|
+
get daveSession(): Davey.DAVESession | undefined;
|
|
70
|
+
setupHeartbeat(interval: number): void;
|
|
71
|
+
sendOpcode<T extends GatewayRequest>(code: T["op"], data: T["d"]): void;
|
|
72
|
+
sendOpcodeBinary(code: VoiceOpCodesBinary, data: Buffer): void;
|
|
73
|
+
identify(): void;
|
|
74
|
+
resume(): void;
|
|
75
|
+
setProtocols(): Promise<void>;
|
|
76
|
+
setVideoAttributes(enabled: false): void;
|
|
77
|
+
setVideoAttributes(enabled: true, attr: VideoAttributes): void;
|
|
78
|
+
setSpeaking(speaking: boolean): void;
|
|
79
|
+
}
|
|
80
|
+
export {};
|