googlevideo 4.0.1 → 4.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/dist/protos/generated/misc/common.js +42 -25
- package/dist/protos/generated/misc/common.js.map +1 -1
- package/dist/protos/generated/video_streaming/buffered_range.js +35 -20
- package/dist/protos/generated/video_streaming/buffered_range.js.map +1 -1
- package/dist/protos/generated/video_streaming/client_abr_state.js +94 -48
- package/dist/protos/generated/video_streaming/client_abr_state.js.map +1 -1
- package/dist/protos/generated/video_streaming/crypto_params.js +8 -5
- package/dist/protos/generated/video_streaming/crypto_params.js.map +1 -1
- package/dist/protos/generated/video_streaming/format_initialization_metadata.js +22 -12
- package/dist/protos/generated/video_streaming/format_initialization_metadata.js.map +1 -1
- package/dist/protos/generated/video_streaming/format_selection_config.js +8 -5
- package/dist/protos/generated/video_streaming/format_selection_config.js.map +1 -1
- package/dist/protos/generated/video_streaming/innertube_request.js +29 -16
- package/dist/protos/generated/video_streaming/innertube_request.js.map +1 -1
- package/dist/protos/generated/video_streaming/live_metadata.js +24 -13
- package/dist/protos/generated/video_streaming/live_metadata.js.map +1 -1
- package/dist/protos/generated/video_streaming/media_capabilities.js +30 -17
- package/dist/protos/generated/video_streaming/media_capabilities.js.map +1 -1
- package/dist/protos/generated/video_streaming/media_header.js +34 -18
- package/dist/protos/generated/video_streaming/media_header.js.map +1 -1
- package/dist/protos/generated/video_streaming/next_request_policy.js +18 -10
- package/dist/protos/generated/video_streaming/next_request_policy.js.map +1 -1
- package/dist/protos/generated/video_streaming/onesie_header.js +30 -17
- package/dist/protos/generated/video_streaming/onesie_header.js.map +1 -1
- package/dist/protos/generated/video_streaming/onesie_header_type.js +1 -1
- package/dist/protos/generated/video_streaming/onesie_innertube_request.js +12 -7
- package/dist/protos/generated/video_streaming/onesie_innertube_request.js.map +1 -1
- package/dist/protos/generated/video_streaming/onesie_innertube_response.js +10 -6
- package/dist/protos/generated/video_streaming/onesie_innertube_response.js.map +1 -1
- package/dist/protos/generated/video_streaming/onesie_proxy_status.js +1 -1
- package/dist/protos/generated/video_streaming/onesie_request.js +22 -12
- package/dist/protos/generated/video_streaming/onesie_request.js.map +1 -1
- package/dist/protos/generated/video_streaming/playback_cookie.js +10 -6
- package/dist/protos/generated/video_streaming/playback_cookie.js.map +1 -1
- package/dist/protos/generated/video_streaming/playback_start_policy.js +11 -7
- package/dist/protos/generated/video_streaming/playback_start_policy.js.map +1 -1
- package/dist/protos/generated/video_streaming/reload_player_response.js +7 -5
- package/dist/protos/generated/video_streaming/reload_player_response.js.map +1 -1
- package/dist/protos/generated/video_streaming/request_cancellation_policy.js +15 -9
- package/dist/protos/generated/video_streaming/request_cancellation_policy.js.map +1 -1
- package/dist/protos/generated/video_streaming/request_identifier.js +4 -3
- package/dist/protos/generated/video_streaming/request_identifier.js.map +1 -1
- package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js +8 -5
- package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js.map +1 -1
- package/dist/protos/generated/video_streaming/sabr_context_update.js +31 -18
- package/dist/protos/generated/video_streaming/sabr_context_update.js.map +1 -1
- package/dist/protos/generated/video_streaming/sabr_error.js +6 -4
- package/dist/protos/generated/video_streaming/sabr_error.js.map +1 -1
- package/dist/protos/generated/video_streaming/sabr_redirect.js +4 -3
- package/dist/protos/generated/video_streaming/sabr_redirect.js.map +1 -1
- package/dist/protos/generated/video_streaming/snackbar_message.js +4 -3
- package/dist/protos/generated/video_streaming/snackbar_message.js.map +1 -1
- package/dist/protos/generated/video_streaming/stream_protection_status.js +6 -4
- package/dist/protos/generated/video_streaming/stream_protection_status.js.map +1 -1
- package/dist/protos/generated/video_streaming/streamer_context.js +87 -47
- package/dist/protos/generated/video_streaming/streamer_context.js.map +1 -1
- package/dist/protos/generated/video_streaming/time_range.js +8 -5
- package/dist/protos/generated/video_streaming/time_range.js.map +1 -1
- package/dist/protos/generated/video_streaming/ump_part_id.js +1 -1
- package/dist/protos/generated/video_streaming/video_playback_abr_request.js +61 -33
- package/dist/protos/generated/video_streaming/video_playback_abr_request.js.map +1 -1
- package/dist/src/core/SabrStream.d.ts +9 -3
- package/dist/src/core/SabrStream.js +69 -21
- package/dist/src/core/SabrStream.js.map +1 -1
- package/dist/src/types/shared.d.ts +4 -0
- package/dist/src/types/shared.js +4 -0
- package/dist/src/types/shared.js.map +1 -1
- package/package.json +1 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
2
|
// versions:
|
|
3
|
-
// protoc-gen-ts_proto v2.
|
|
3
|
+
// protoc-gen-ts_proto v2.7.5
|
|
4
4
|
// protoc v3.21.12
|
|
5
5
|
// source: video_streaming/video_playback_abr_request.proto
|
|
6
6
|
/* eslint-disable */
|
|
@@ -77,95 +77,109 @@ export const VideoPlaybackAbrRequest = {
|
|
|
77
77
|
},
|
|
78
78
|
decode(input, length) {
|
|
79
79
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
80
|
-
|
|
80
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
81
81
|
const message = createBaseVideoPlaybackAbrRequest();
|
|
82
82
|
while (reader.pos < end) {
|
|
83
83
|
const tag = reader.uint32();
|
|
84
84
|
switch (tag >>> 3) {
|
|
85
|
-
case 1:
|
|
85
|
+
case 1: {
|
|
86
86
|
if (tag !== 10) {
|
|
87
87
|
break;
|
|
88
88
|
}
|
|
89
89
|
message.clientAbrState = ClientAbrState.decode(reader, reader.uint32());
|
|
90
90
|
continue;
|
|
91
|
-
|
|
91
|
+
}
|
|
92
|
+
case 2: {
|
|
92
93
|
if (tag !== 18) {
|
|
93
94
|
break;
|
|
94
95
|
}
|
|
95
96
|
message.selectedFormatIds.push(FormatId.decode(reader, reader.uint32()));
|
|
96
97
|
continue;
|
|
97
|
-
|
|
98
|
+
}
|
|
99
|
+
case 3: {
|
|
98
100
|
if (tag !== 26) {
|
|
99
101
|
break;
|
|
100
102
|
}
|
|
101
103
|
message.bufferedRanges.push(BufferedRange.decode(reader, reader.uint32()));
|
|
102
104
|
continue;
|
|
103
|
-
|
|
105
|
+
}
|
|
106
|
+
case 4: {
|
|
104
107
|
if (tag !== 32) {
|
|
105
108
|
break;
|
|
106
109
|
}
|
|
107
110
|
message.playerTimeMs = longToNumber(reader.int64());
|
|
108
111
|
continue;
|
|
109
|
-
|
|
112
|
+
}
|
|
113
|
+
case 5: {
|
|
110
114
|
if (tag !== 42) {
|
|
111
115
|
break;
|
|
112
116
|
}
|
|
113
117
|
message.videoPlaybackUstreamerConfig = reader.bytes();
|
|
114
118
|
continue;
|
|
115
|
-
|
|
119
|
+
}
|
|
120
|
+
case 6: {
|
|
116
121
|
if (tag !== 50) {
|
|
117
122
|
break;
|
|
118
123
|
}
|
|
119
124
|
message.field6 = UnknownMessage1.decode(reader, reader.uint32());
|
|
120
125
|
continue;
|
|
121
|
-
|
|
126
|
+
}
|
|
127
|
+
case 16: {
|
|
122
128
|
if (tag !== 130) {
|
|
123
129
|
break;
|
|
124
130
|
}
|
|
125
131
|
message.preferredAudioFormatIds.push(FormatId.decode(reader, reader.uint32()));
|
|
126
132
|
continue;
|
|
127
|
-
|
|
133
|
+
}
|
|
134
|
+
case 17: {
|
|
128
135
|
if (tag !== 138) {
|
|
129
136
|
break;
|
|
130
137
|
}
|
|
131
138
|
message.preferredVideoFormatIds.push(FormatId.decode(reader, reader.uint32()));
|
|
132
139
|
continue;
|
|
133
|
-
|
|
140
|
+
}
|
|
141
|
+
case 18: {
|
|
134
142
|
if (tag !== 146) {
|
|
135
143
|
break;
|
|
136
144
|
}
|
|
137
145
|
message.preferredSubtitleFormatIds.push(FormatId.decode(reader, reader.uint32()));
|
|
138
146
|
continue;
|
|
139
|
-
|
|
147
|
+
}
|
|
148
|
+
case 19: {
|
|
140
149
|
if (tag !== 154) {
|
|
141
150
|
break;
|
|
142
151
|
}
|
|
143
152
|
message.streamerContext = StreamerContext.decode(reader, reader.uint32());
|
|
144
153
|
continue;
|
|
145
|
-
|
|
154
|
+
}
|
|
155
|
+
case 21: {
|
|
146
156
|
if (tag !== 170) {
|
|
147
157
|
break;
|
|
148
158
|
}
|
|
149
159
|
message.field21 = UnknownMessage2.decode(reader, reader.uint32());
|
|
150
160
|
continue;
|
|
151
|
-
|
|
161
|
+
}
|
|
162
|
+
case 22: {
|
|
152
163
|
if (tag !== 176) {
|
|
153
164
|
break;
|
|
154
165
|
}
|
|
155
166
|
message.field22 = reader.int32();
|
|
156
167
|
continue;
|
|
157
|
-
|
|
168
|
+
}
|
|
169
|
+
case 23: {
|
|
158
170
|
if (tag !== 184) {
|
|
159
171
|
break;
|
|
160
172
|
}
|
|
161
173
|
message.field23 = reader.int32();
|
|
162
174
|
continue;
|
|
163
|
-
|
|
175
|
+
}
|
|
176
|
+
case 1000: {
|
|
164
177
|
if (tag !== 8002) {
|
|
165
178
|
break;
|
|
166
179
|
}
|
|
167
180
|
message.field1000.push(UnknownMessage3.decode(reader, reader.uint32()));
|
|
168
181
|
continue;
|
|
182
|
+
}
|
|
169
183
|
}
|
|
170
184
|
if ((tag & 7) === 4 || tag === 0) {
|
|
171
185
|
break;
|
|
@@ -199,41 +213,46 @@ export const UnknownMessage1 = {
|
|
|
199
213
|
},
|
|
200
214
|
decode(input, length) {
|
|
201
215
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
202
|
-
|
|
216
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
203
217
|
const message = createBaseUnknownMessage1();
|
|
204
218
|
while (reader.pos < end) {
|
|
205
219
|
const tag = reader.uint32();
|
|
206
220
|
switch (tag >>> 3) {
|
|
207
|
-
case 1:
|
|
221
|
+
case 1: {
|
|
208
222
|
if (tag !== 10) {
|
|
209
223
|
break;
|
|
210
224
|
}
|
|
211
225
|
message.formatId = FormatId.decode(reader, reader.uint32());
|
|
212
226
|
continue;
|
|
213
|
-
|
|
227
|
+
}
|
|
228
|
+
case 2: {
|
|
214
229
|
if (tag !== 16) {
|
|
215
230
|
break;
|
|
216
231
|
}
|
|
217
232
|
message.lmt = longToNumber(reader.sint64());
|
|
218
233
|
continue;
|
|
219
|
-
|
|
234
|
+
}
|
|
235
|
+
case 3: {
|
|
220
236
|
if (tag !== 24) {
|
|
221
237
|
break;
|
|
222
238
|
}
|
|
223
239
|
message.sequenceNumber = reader.int32();
|
|
224
240
|
continue;
|
|
225
|
-
|
|
241
|
+
}
|
|
242
|
+
case 4: {
|
|
226
243
|
if (tag !== 34) {
|
|
227
244
|
break;
|
|
228
245
|
}
|
|
229
246
|
message.timeRange = TimeRange.decode(reader, reader.uint32());
|
|
230
247
|
continue;
|
|
231
|
-
|
|
248
|
+
}
|
|
249
|
+
case 5: {
|
|
232
250
|
if (tag !== 40) {
|
|
233
251
|
break;
|
|
234
252
|
}
|
|
235
253
|
message.field5 = reader.int32();
|
|
236
254
|
continue;
|
|
255
|
+
}
|
|
237
256
|
}
|
|
238
257
|
if ((tag & 7) === 4 || tag === 0) {
|
|
239
258
|
break;
|
|
@@ -270,47 +289,53 @@ export const UnknownMessage2 = {
|
|
|
270
289
|
},
|
|
271
290
|
decode(input, length) {
|
|
272
291
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
273
|
-
|
|
292
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
274
293
|
const message = createBaseUnknownMessage2();
|
|
275
294
|
while (reader.pos < end) {
|
|
276
295
|
const tag = reader.uint32();
|
|
277
296
|
switch (tag >>> 3) {
|
|
278
|
-
case 1:
|
|
297
|
+
case 1: {
|
|
279
298
|
if (tag !== 10) {
|
|
280
299
|
break;
|
|
281
300
|
}
|
|
282
301
|
message.field1.push(reader.string());
|
|
283
302
|
continue;
|
|
284
|
-
|
|
303
|
+
}
|
|
304
|
+
case 2: {
|
|
285
305
|
if (tag !== 18) {
|
|
286
306
|
break;
|
|
287
307
|
}
|
|
288
308
|
message.field2 = reader.bytes();
|
|
289
309
|
continue;
|
|
290
|
-
|
|
310
|
+
}
|
|
311
|
+
case 3: {
|
|
291
312
|
if (tag !== 26) {
|
|
292
313
|
break;
|
|
293
314
|
}
|
|
294
315
|
message.field3 = reader.string();
|
|
295
316
|
continue;
|
|
296
|
-
|
|
317
|
+
}
|
|
318
|
+
case 4: {
|
|
297
319
|
if (tag !== 32) {
|
|
298
320
|
break;
|
|
299
321
|
}
|
|
300
322
|
message.field4 = reader.int32();
|
|
301
323
|
continue;
|
|
302
|
-
|
|
324
|
+
}
|
|
325
|
+
case 5: {
|
|
303
326
|
if (tag !== 40) {
|
|
304
327
|
break;
|
|
305
328
|
}
|
|
306
329
|
message.field5 = reader.int32();
|
|
307
330
|
continue;
|
|
308
|
-
|
|
331
|
+
}
|
|
332
|
+
case 6: {
|
|
309
333
|
if (tag !== 50) {
|
|
310
334
|
break;
|
|
311
335
|
}
|
|
312
336
|
message.field6 = reader.string();
|
|
313
337
|
continue;
|
|
338
|
+
}
|
|
314
339
|
}
|
|
315
340
|
if ((tag & 7) === 4 || tag === 0) {
|
|
316
341
|
break;
|
|
@@ -338,29 +363,32 @@ export const UnknownMessage3 = {
|
|
|
338
363
|
},
|
|
339
364
|
decode(input, length) {
|
|
340
365
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
341
|
-
|
|
366
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
342
367
|
const message = createBaseUnknownMessage3();
|
|
343
368
|
while (reader.pos < end) {
|
|
344
369
|
const tag = reader.uint32();
|
|
345
370
|
switch (tag >>> 3) {
|
|
346
|
-
case 1:
|
|
371
|
+
case 1: {
|
|
347
372
|
if (tag !== 10) {
|
|
348
373
|
break;
|
|
349
374
|
}
|
|
350
375
|
message.formatIds.push(FormatId.decode(reader, reader.uint32()));
|
|
351
376
|
continue;
|
|
352
|
-
|
|
377
|
+
}
|
|
378
|
+
case 2: {
|
|
353
379
|
if (tag !== 18) {
|
|
354
380
|
break;
|
|
355
381
|
}
|
|
356
382
|
message.ud.push(BufferedRange.decode(reader, reader.uint32()));
|
|
357
383
|
continue;
|
|
358
|
-
|
|
384
|
+
}
|
|
385
|
+
case 3: {
|
|
359
386
|
if (tag !== 26) {
|
|
360
387
|
break;
|
|
361
388
|
}
|
|
362
389
|
message.clipId = reader.string();
|
|
363
390
|
continue;
|
|
391
|
+
}
|
|
364
392
|
}
|
|
365
393
|
if ((tag & 7) === 4 || tag === 0) {
|
|
366
394
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video_playback_abr_request.js","sourceRoot":"","sources":["../../../../protos/generated/video_streaming/video_playback_abr_request.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"video_playback_abr_request.js","sourceRoot":"","sources":["../../../../protos/generated/video_streaming/video_playback_abr_request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { FormatInitializationMetadata, MediaHeader, NextRequestPolicy, ReloadPlaybackContext, SabrContextUpdate, StreamProtectionStatus } from '../utils/Protos.js';
|
|
2
|
-
import type { BufferedRange, ClientInfo } from '../utils/Protos.js';
|
|
1
|
+
import { FormatInitializationMetadata, MediaHeader, NextRequestPolicy, ReloadPlaybackContext, SabrContextUpdate, StreamProtectionStatus, type BufferedRange, type ClientInfo } from '../utils/Protos.js';
|
|
3
2
|
import type { SabrPlaybackOptions, SabrStreamConfig } from '../types/sabrStreamTypes.js';
|
|
4
3
|
import type { SabrFormat } from '../types/shared.js';
|
|
5
4
|
import { EventEmitterLike } from '../utils/index.js';
|
|
@@ -179,7 +178,7 @@ export declare class SabrStream extends EventEmitterLike {
|
|
|
179
178
|
/**
|
|
180
179
|
* Checks if the download has stalled by tracking progress over time.
|
|
181
180
|
* @param options - Configuration for stall detection.
|
|
182
|
-
* @returns
|
|
181
|
+
* @returns An object indicating whether the stream should stop and if it is stalled.
|
|
183
182
|
* @throws {Error} If the maximum number of consecutive stalls is reached.
|
|
184
183
|
* @private
|
|
185
184
|
*/
|
|
@@ -258,6 +257,13 @@ export declare class SabrStream extends EventEmitterLike {
|
|
|
258
257
|
* @private
|
|
259
258
|
*/
|
|
260
259
|
private executeWithRetry;
|
|
260
|
+
/**
|
|
261
|
+
* Decodes a UMP part using the provided decoder.
|
|
262
|
+
* @param part
|
|
263
|
+
* @param decoder
|
|
264
|
+
* @private
|
|
265
|
+
*/
|
|
266
|
+
private decodePart;
|
|
261
267
|
/**
|
|
262
268
|
* Handles `FORMAT_INITIALIZATION_METADATA` parts.
|
|
263
269
|
* Creates and stores a new `InitializedFormat` entry.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormatInitializationMetadata, MediaHeader, NextRequestPolicy, PlaybackCookie, ReloadPlaybackContext, SabrContextSendingPolicy, SabrContextUpdate, SabrContextWritePolicy, SabrError, SabrRedirect, StreamProtectionStatus, VideoPlaybackAbrRequest, UMPPartId } from '../utils/Protos.js';
|
|
2
|
-
import { MAX_INT32_VALUE, EnabledTrackTypes, base64ToU8, EventEmitterLike, Logger, wait } from '../utils/index.js';
|
|
2
|
+
import { MAX_INT32_VALUE, EnabledTrackTypes, base64ToU8, concatenateChunks, EventEmitterLike, Logger, wait } from '../utils/index.js';
|
|
3
3
|
import * as FormatKeyUtils from '../utils/formatKeyUtils.js';
|
|
4
4
|
import { chooseFormat, getMediaType, getTotalDownloadedDuration } from '../utils/sabrStreamUtils.js';
|
|
5
5
|
import { CompositeBuffer } from './CompositeBuffer.js';
|
|
@@ -224,10 +224,12 @@ export class SabrStream extends EventEmitterLike {
|
|
|
224
224
|
if (this.mainFormat)
|
|
225
225
|
this.validateAndCorrectDuration(this.mainFormat.formatInitializationMetadata);
|
|
226
226
|
abrState.playerTimeMs = this.mainFormat ? getTotalDownloadedDuration(this.mainFormat) : 0;
|
|
227
|
-
this.checkForStall({
|
|
227
|
+
const { shouldStop } = this.checkForStall({
|
|
228
228
|
playerTimeMs: abrState.playerTimeMs,
|
|
229
229
|
stallDetectionMs: options.stallDetectionMs
|
|
230
230
|
});
|
|
231
|
+
if (shouldStop)
|
|
232
|
+
break;
|
|
231
233
|
const success = await this.executeWithRetry(() => this.fetchAndProcessSegments(abrState, audioFormat, videoFormat), maxRetries);
|
|
232
234
|
if (!success)
|
|
233
235
|
break;
|
|
@@ -295,7 +297,7 @@ export class SabrStream extends EventEmitterLike {
|
|
|
295
297
|
/**
|
|
296
298
|
* Checks if the download has stalled by tracking progress over time.
|
|
297
299
|
* @param options - Configuration for stall detection.
|
|
298
|
-
* @returns
|
|
300
|
+
* @returns An object indicating whether the stream should stop and if it is stalled.
|
|
299
301
|
* @throws {Error} If the maximum number of consecutive stalls is reached.
|
|
300
302
|
* @private
|
|
301
303
|
*/
|
|
@@ -307,7 +309,7 @@ export class SabrStream extends EventEmitterLike {
|
|
|
307
309
|
this.progressTracker.lastProgressTime = currentTime;
|
|
308
310
|
this.progressTracker.lastDownloadedDuration = currentProgress;
|
|
309
311
|
this.progressTracker.stallCount = 0;
|
|
310
|
-
return false;
|
|
312
|
+
return { shouldStop: false, stalled: false };
|
|
311
313
|
}
|
|
312
314
|
else if (currentTime - this.progressTracker.lastProgressTime > stallThreshold) {
|
|
313
315
|
this.progressTracker.stallCount++;
|
|
@@ -316,9 +318,19 @@ export class SabrStream extends EventEmitterLike {
|
|
|
316
318
|
throw new Error(`Stream stalled ${MAX_STALLS} times, aborting`);
|
|
317
319
|
}
|
|
318
320
|
this.progressTracker.lastProgressTime = currentTime;
|
|
319
|
-
|
|
321
|
+
const downloadedDurationCloseness = Math.abs(this.durationMs - currentProgress);
|
|
322
|
+
if (downloadedDurationCloseness < 5000) {
|
|
323
|
+
this.logger.warn(TAG, 'Stream is close to completion, but stalled. Checking if we have the last segment.');
|
|
324
|
+
const endSegmentNumber = this.mainFormat?.formatInitializationMetadata.endSegmentNumber || -1;
|
|
325
|
+
const lastSegment = this.mainFormat?.downloadedSegments.get(endSegmentNumber);
|
|
326
|
+
if (lastSegment && lastSegment.segmentNumber === endSegmentNumber) {
|
|
327
|
+
this.logger.warn(TAG, 'Last segment is already downloaded. Stopping further processing.');
|
|
328
|
+
return { shouldStop: true, stalled: true };
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return { shouldStop: false, stalled: true };
|
|
320
332
|
}
|
|
321
|
-
return false;
|
|
333
|
+
return { shouldStop: false, stalled: false };
|
|
322
334
|
}
|
|
323
335
|
/**
|
|
324
336
|
* Selects the best video and audio formats based on provided options.
|
|
@@ -587,7 +599,6 @@ export class SabrStream extends EventEmitterLike {
|
|
|
587
599
|
}
|
|
588
600
|
});
|
|
589
601
|
}
|
|
590
|
-
this.partialSegmentQueue.clear();
|
|
591
602
|
return processedParts;
|
|
592
603
|
}
|
|
593
604
|
/**
|
|
@@ -624,21 +635,42 @@ export class SabrStream extends EventEmitterLike {
|
|
|
624
635
|
break;
|
|
625
636
|
}
|
|
626
637
|
const retryBackoffMs = Math.min(BACKOFF_MULTIPLIER * Math.pow(2, attempt - 1), MAX_BACKOFF_MS);
|
|
627
|
-
this.logger.warn(TAG, `Segment fetch attempt ${attempt}/${maxRetries + 1} failed
|
|
638
|
+
this.logger.warn(TAG, `Segment fetch attempt ${attempt}/${maxRetries + 1} failed - retrying in ${retryBackoffMs}ms`, error);
|
|
628
639
|
await wait(retryBackoffMs);
|
|
629
640
|
}
|
|
641
|
+
finally {
|
|
642
|
+
this.partialSegmentQueue.clear();
|
|
643
|
+
}
|
|
630
644
|
}
|
|
631
645
|
return false;
|
|
632
646
|
}
|
|
633
647
|
//#endregion
|
|
634
648
|
//#region --- UMP Part Handlers ---
|
|
649
|
+
/**
|
|
650
|
+
* Decodes a UMP part using the provided decoder.
|
|
651
|
+
* @param part
|
|
652
|
+
* @param decoder
|
|
653
|
+
* @private
|
|
654
|
+
*/
|
|
655
|
+
decodePart(part, decoder) {
|
|
656
|
+
if (!part.data.chunks.length)
|
|
657
|
+
return undefined;
|
|
658
|
+
try {
|
|
659
|
+
return decoder.decode(concatenateChunks(part.data.chunks));
|
|
660
|
+
}
|
|
661
|
+
catch {
|
|
662
|
+
return undefined;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
635
665
|
/**
|
|
636
666
|
* Handles `FORMAT_INITIALIZATION_METADATA` parts.
|
|
637
667
|
* Creates and stores a new `InitializedFormat` entry.
|
|
638
668
|
* @private
|
|
639
669
|
*/
|
|
640
670
|
handleFormatInitializationMetadata(part) {
|
|
641
|
-
const formatInitMetadata =
|
|
671
|
+
const formatInitMetadata = this.decodePart(part, FormatInitializationMetadata);
|
|
672
|
+
if (!formatInitMetadata)
|
|
673
|
+
return;
|
|
642
674
|
const formatIdKey = FormatKeyUtils.fromFormatInitializationMetadata(formatInitMetadata);
|
|
643
675
|
const initializedFormat = {
|
|
644
676
|
formatInitializationMetadata: formatInitMetadata,
|
|
@@ -655,7 +687,7 @@ export class SabrStream extends EventEmitterLike {
|
|
|
655
687
|
* @private
|
|
656
688
|
*/
|
|
657
689
|
handleNextRequestPolicy(part) {
|
|
658
|
-
this.nextRequestPolicy =
|
|
690
|
+
this.nextRequestPolicy = this.decodePart(part, NextRequestPolicy);
|
|
659
691
|
}
|
|
660
692
|
/**
|
|
661
693
|
* Handles `SABR_ERROR` parts.
|
|
@@ -664,7 +696,9 @@ export class SabrStream extends EventEmitterLike {
|
|
|
664
696
|
* @private
|
|
665
697
|
*/
|
|
666
698
|
handleSabrError(part) {
|
|
667
|
-
const sabrError =
|
|
699
|
+
const sabrError = this.decodePart(part, SabrError);
|
|
700
|
+
if (!sabrError)
|
|
701
|
+
return;
|
|
668
702
|
throw new Error(`SABR Error: ${sabrError.type} - ${sabrError.code}`);
|
|
669
703
|
}
|
|
670
704
|
/**
|
|
@@ -673,9 +707,13 @@ export class SabrStream extends EventEmitterLike {
|
|
|
673
707
|
* @private
|
|
674
708
|
*/
|
|
675
709
|
handleSabrRedirect(part) {
|
|
676
|
-
const sabrRedirect =
|
|
677
|
-
|
|
678
|
-
|
|
710
|
+
const sabrRedirect = this.decodePart(part, SabrRedirect);
|
|
711
|
+
if (!sabrRedirect)
|
|
712
|
+
return;
|
|
713
|
+
if (sabrRedirect.url) {
|
|
714
|
+
this.serverAbrStreamingUrl = sabrRedirect.url;
|
|
715
|
+
this.logger.debug(TAG, `Redirecting to ${this.serverAbrStreamingUrl}`);
|
|
716
|
+
}
|
|
679
717
|
}
|
|
680
718
|
/**
|
|
681
719
|
* Handles `SABR_CONTEXT_UPDATE` parts.
|
|
@@ -683,7 +721,9 @@ export class SabrStream extends EventEmitterLike {
|
|
|
683
721
|
* @private
|
|
684
722
|
*/
|
|
685
723
|
handleSabrContextUpdate(part) {
|
|
686
|
-
const sabrContextUpdate =
|
|
724
|
+
const sabrContextUpdate = this.decodePart(part, SabrContextUpdate);
|
|
725
|
+
if (!sabrContextUpdate)
|
|
726
|
+
return;
|
|
687
727
|
if (sabrContextUpdate.type !== undefined && sabrContextUpdate.value?.length) {
|
|
688
728
|
if (sabrContextUpdate.writePolicy === SabrContextWritePolicy.KEEP_EXISTING &&
|
|
689
729
|
this.sabrContexts.has(sabrContextUpdate.type)) {
|
|
@@ -703,7 +743,9 @@ export class SabrStream extends EventEmitterLike {
|
|
|
703
743
|
* @private
|
|
704
744
|
*/
|
|
705
745
|
handleSabrContextSendingPolicy(part) {
|
|
706
|
-
const sabrContextSendingPolicy =
|
|
746
|
+
const sabrContextSendingPolicy = this.decodePart(part, SabrContextSendingPolicy);
|
|
747
|
+
if (!sabrContextSendingPolicy)
|
|
748
|
+
return;
|
|
707
749
|
for (const startPolicy of sabrContextSendingPolicy.startPolicy) {
|
|
708
750
|
if (!this.activeSabrContextTypes.has(startPolicy)) {
|
|
709
751
|
this.activeSabrContextTypes.add(startPolicy);
|
|
@@ -730,7 +772,9 @@ export class SabrStream extends EventEmitterLike {
|
|
|
730
772
|
* @private
|
|
731
773
|
*/
|
|
732
774
|
handleStreamProtectionStatus(part) {
|
|
733
|
-
this.streamProtectionStatus =
|
|
775
|
+
this.streamProtectionStatus = this.decodePart(part, StreamProtectionStatus);
|
|
776
|
+
if (!this.streamProtectionStatus)
|
|
777
|
+
return;
|
|
734
778
|
this.emit('streamProtectionStatusUpdate', this.streamProtectionStatus);
|
|
735
779
|
if (this.streamProtectionStatus.status === 3) {
|
|
736
780
|
throw new Error('Cannot proceed with stream: attestation required');
|
|
@@ -746,7 +790,9 @@ export class SabrStream extends EventEmitterLike {
|
|
|
746
790
|
* @private
|
|
747
791
|
*/
|
|
748
792
|
handleReloadPlayerResponse(part) {
|
|
749
|
-
const reloadPlaybackContext =
|
|
793
|
+
const reloadPlaybackContext = this.decodePart(part, ReloadPlaybackContext);
|
|
794
|
+
if (!reloadPlaybackContext)
|
|
795
|
+
return;
|
|
750
796
|
const errorMessage = 'Player response reload requested by server';
|
|
751
797
|
this.logger.debug(TAG, `${errorMessage} (token: ${reloadPlaybackContext.reloadPlaybackParams?.token}`);
|
|
752
798
|
this.emit('reloadPlayerResponse', reloadPlaybackContext);
|
|
@@ -758,11 +804,13 @@ export class SabrStream extends EventEmitterLike {
|
|
|
758
804
|
* @private
|
|
759
805
|
*/
|
|
760
806
|
handleMediaHeader(part) {
|
|
761
|
-
const mediaHeader =
|
|
807
|
+
const mediaHeader = this.decodePart(part, MediaHeader);
|
|
808
|
+
if (!mediaHeader)
|
|
809
|
+
return;
|
|
762
810
|
const headerId = mediaHeader.headerId || 0;
|
|
763
811
|
const formatIdKey = FormatKeyUtils.fromMediaHeader(mediaHeader);
|
|
764
812
|
const segmentNumber = mediaHeader.isInitSeg ? 0 : mediaHeader.sequenceNumber;
|
|
765
|
-
const durationMs = mediaHeader.
|
|
813
|
+
const durationMs = mediaHeader.durationMs || Math.ceil(((mediaHeader.timeRange?.durationTicks || 0) / (mediaHeader.timeRange?.timescale || 0)) * 1000);
|
|
766
814
|
const initializedFormat = this.initializedFormatsMap.get(formatIdKey);
|
|
767
815
|
if (!initializedFormat) {
|
|
768
816
|
this.logger.warn(TAG, `No initialized format found for key: ${formatIdKey} (segment ${segmentNumber})`);
|
|
@@ -899,7 +947,7 @@ export class SabrStream extends EventEmitterLike {
|
|
|
899
947
|
const uniqueSegmentCount = new Set(segments.map(([num]) => num)).size;
|
|
900
948
|
const hasDuplicates = uniqueSegmentCount !== segments.length;
|
|
901
949
|
if (missingSegments.length > 0) {
|
|
902
|
-
const message = `Format ${formatIdKey}: Missing segments: ${missingSegments.join(', ')}. ` +
|
|
950
|
+
const message = `Format ${formatIdKey}: Missing segments: [${missingSegments.join(', ')}]. ` +
|
|
903
951
|
`Expected range: 0-${expectedSegmentCount}. `;
|
|
904
952
|
this.logger.warn(TAG, message);
|
|
905
953
|
this.errorHandler(new Error(message), true);
|