Skip to content

Commit f09616f

Browse files
authored
fix(LL-DASH): Append segment chunk strictly in order (#3405)
An async process handles the appending of partial segments for LL-DASH. This fixes the caller to wait on the results, so that partial segments are always appended in order. Fixes #3404
1 parent 65a2cfd commit f09616f

File tree

5 files changed

+7
-7
lines changed

5 files changed

+7
-7
lines changed

externs/shaka/net.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ shaka.extern.RetryParameters;
6060
* retryParameters: !shaka.extern.RetryParameters,
6161
* licenseRequestType: ?string,
6262
* sessionId: ?string,
63-
* streamDataCallback: ?function(BufferSource)
63+
* streamDataCallback: ?function(BufferSource):!Promise
6464
* }}
6565
*
6666
* @description
@@ -90,7 +90,7 @@ shaka.extern.RetryParameters;
9090
* @property {?string} sessionId
9191
* If this is a LICENSE request, this field contains the session ID of the
9292
* EME session that made the request.
93-
* @property {?function(BufferSource)} streamDataCallback
93+
* @property {?function(BufferSource):!Promise} streamDataCallback
9494
* A callback function to handle the chunked data of the ReadableStream.
9595
* @exportDoc
9696
*/

lib/media/streaming_engine.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1738,7 +1738,7 @@ shaka.media.StreamingEngine = class {
17381738
* @param {!shaka.media.StreamingEngine.MediaState_} mediaState
17391739
* @param {(!shaka.media.InitSegmentReference|!shaka.media.SegmentReference)}
17401740
* reference
1741-
* @param {?function(BufferSource)=} streamDataCallback
1741+
* @param {?function(BufferSource):!Promise=} streamDataCallback
17421742
*
17431743
* @return {!Promise.<BufferSource>}
17441744
* @private

lib/net/http_fetch_plugin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ shaka.net.HttpFetchPlugin = class {
9292
* @param {!RequestInit} init
9393
* @param {shaka.net.HttpFetchPlugin.AbortStatus} abortStatus
9494
* @param {shaka.extern.ProgressUpdated} progressUpdated
95-
* @param {?function(BufferSource)} streamDataCallback
95+
* @param {?function(BufferSource):!Promise} streamDataCallback
9696
* @return {!Promise<!shaka.extern.Response>}
9797
* @private
9898
*/
@@ -140,7 +140,7 @@ shaka.net.HttpFetchPlugin = class {
140140
if (!readObj.done) {
141141
loaded += readObj.value.byteLength;
142142
if (streamDataCallback) {
143-
streamDataCallback(readObj.value);
143+
await streamDataCallback(readObj.value);
144144
}
145145
}
146146

lib/net/networking_engine.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ shaka.net.NetworkingEngine = class extends shaka.util.FakeEventTarget {
196196
*
197197
* @param {!Array.<string>} uris
198198
* @param {shaka.extern.RetryParameters} retryParams
199-
* @param {?function(BufferSource)=} streamDataCallback
199+
* @param {?function(BufferSource):!Promise=} streamDataCallback
200200
* @return {shaka.extern.Request}
201201
* @export
202202
*/

lib/util/networking.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ shaka.util.Networking = class {
2626
* @param {?number} start
2727
* @param {?number} end
2828
* @param {shaka.extern.RetryParameters} retryParameters
29-
* @param {?function(BufferSource)=} streamDataCallback
29+
* @param {?function(BufferSource):!Promise=} streamDataCallback
3030
* @return {shaka.extern.Request}
3131
*/
3232
static createSegmentRequest(uris, start, end, retryParameters,

0 commit comments

Comments
 (0)