hls.js 1.6.0-beta.2.0.canary.10871 → 1.6.0-beta.2.0.canary.10876
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/hls.js +74 -60
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +65 -131
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +67 -133
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +76 -62
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +1 -1
- package/src/demux/audio/base-audio-demuxer.ts +6 -6
- package/src/demux/tsdemuxer.ts +2 -3
- package/src/demux/video/hevc-video-parser.ts +12 -12
- package/src/remux/mp4-generator.ts +99 -45
- package/src/remux/mp4-remuxer.ts +24 -38
- package/src/types/demuxer.ts +41 -1
- package/src/types/remuxer.ts +25 -0
- package/src/utils/fetch-loader.ts +12 -8
- package/src/utils/xhr-loader.ts +4 -11
@@ -93,8 +93,6 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
93
93
|
stats.loading.start = self.performance.now();
|
94
94
|
|
95
95
|
const initParams = getRequestParameters(context, this.controller.signal);
|
96
|
-
const onProgress: LoaderOnProgress<LoaderContext> | undefined =
|
97
|
-
callbacks.onProgress;
|
98
96
|
const isArrayBuffer = context.responseType === 'arraybuffer';
|
99
97
|
const LENGTH = isArrayBuffer ? 'byteLength' : 'length';
|
100
98
|
const { maxTimeToFirstByteMs, maxLoadTimeMs } = config.loadPolicy;
|
@@ -109,8 +107,10 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
109
107
|
? maxTimeToFirstByteMs
|
110
108
|
: maxLoadTimeMs;
|
111
109
|
this.requestTimeout = self.setTimeout(() => {
|
112
|
-
this.
|
113
|
-
|
110
|
+
if (this.callbacks) {
|
111
|
+
this.abortInternal();
|
112
|
+
this.callbacks.onTimeout(stats, context, this.response);
|
113
|
+
}
|
114
114
|
}, config.timeout);
|
115
115
|
|
116
116
|
const fetchPromise = isPromise(this.request)
|
@@ -127,8 +127,10 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
127
127
|
config.timeout = maxLoadTimeMs;
|
128
128
|
this.requestTimeout = self.setTimeout(
|
129
129
|
() => {
|
130
|
-
this.
|
131
|
-
|
130
|
+
if (this.callbacks) {
|
131
|
+
this.abortInternal();
|
132
|
+
this.callbacks.onTimeout(stats, context, this.response);
|
133
|
+
}
|
132
134
|
},
|
133
135
|
maxLoadTimeMs - (first - stats.loading.start),
|
134
136
|
);
|
@@ -145,6 +147,7 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
145
147
|
|
146
148
|
stats.total = getContentLength(response.headers) || stats.total;
|
147
149
|
|
150
|
+
const onProgress = this.callbacks?.onProgress;
|
148
151
|
if (onProgress && Number.isFinite(config.highWaterMark)) {
|
149
152
|
return this.loadProgressively(
|
150
153
|
response,
|
@@ -184,11 +187,12 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
184
187
|
code: response.status,
|
185
188
|
};
|
186
189
|
|
190
|
+
const onProgress = this.callbacks?.onProgress;
|
187
191
|
if (onProgress && !Number.isFinite(config.highWaterMark)) {
|
188
192
|
onProgress(stats, context, responseData, response);
|
189
193
|
}
|
190
194
|
|
191
|
-
callbacks
|
195
|
+
this.callbacks?.onSuccess(loaderResponse, stats, context, response);
|
192
196
|
})
|
193
197
|
.catch((error) => {
|
194
198
|
self.clearTimeout(this.requestTimeout);
|
@@ -199,7 +203,7 @@ class FetchLoader implements Loader<LoaderContext> {
|
|
199
203
|
// when destroying, 'error' itself can be undefined
|
200
204
|
const code: number = !error ? 0 : error.code || 0;
|
201
205
|
const text: string = !error ? null : error.message;
|
202
|
-
callbacks
|
206
|
+
this.callbacks?.onError(
|
203
207
|
{ code, text },
|
204
208
|
context,
|
205
209
|
error ? error.details : null,
|
package/src/utils/xhr-loader.ts
CHANGED
@@ -113,7 +113,7 @@ class XhrLoader implements Loader<LoaderContext> {
|
|
113
113
|
})
|
114
114
|
.catch((error: Error) => {
|
115
115
|
// IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS
|
116
|
-
this.callbacks
|
116
|
+
this.callbacks?.onError(
|
117
117
|
{ code: xhr.status, text: error.message },
|
118
118
|
context,
|
119
119
|
xhr,
|
@@ -220,23 +220,16 @@ class XhrLoader implements Loader<LoaderContext> {
|
|
220
220
|
stats.loaded = stats.total = len;
|
221
221
|
stats.bwEstimate =
|
222
222
|
(stats.total * 8000) / (stats.loading.end - stats.loading.first);
|
223
|
-
|
224
|
-
return;
|
225
|
-
}
|
226
|
-
const onProgress = this.callbacks.onProgress;
|
223
|
+
const onProgress = this.callbacks?.onProgress;
|
227
224
|
if (onProgress) {
|
228
225
|
onProgress(stats, context, data, xhr);
|
229
226
|
}
|
230
|
-
if (!this.callbacks) {
|
231
|
-
return;
|
232
|
-
}
|
233
227
|
const response: LoaderResponse = {
|
234
228
|
url: xhr.responseURL,
|
235
229
|
data: data,
|
236
230
|
code: status,
|
237
231
|
};
|
238
|
-
|
239
|
-
this.callbacks.onSuccess(response, stats, context, xhr);
|
232
|
+
this.callbacks?.onSuccess(response, stats, context, xhr);
|
240
233
|
return;
|
241
234
|
}
|
242
235
|
}
|
@@ -254,7 +247,7 @@ class XhrLoader implements Loader<LoaderContext> {
|
|
254
247
|
this.retry(retryConfig);
|
255
248
|
} else {
|
256
249
|
logger.error(`${status} while loading ${context.url}`);
|
257
|
-
this.callbacks
|
250
|
+
this.callbacks?.onError(
|
258
251
|
{ code: status, text: xhr.statusText },
|
259
252
|
context,
|
260
253
|
xhr,
|