Skip to content

Commit

Permalink
fix(LL-DASH): Append segment chunk strictly in order (shaka-project#3405
Browse files Browse the repository at this point in the history
)

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 shaka-project#3404
  • Loading branch information
percytse committed May 17, 2021
1 parent 65a2cfd commit f09616f
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 7 deletions.
4 changes: 2 additions & 2 deletions externs/shaka/net.js
Expand Up @@ -60,7 +60,7 @@ shaka.extern.RetryParameters;
* retryParameters: !shaka.extern.RetryParameters,
* licenseRequestType: ?string,
* sessionId: ?string,
* streamDataCallback: ?function(BufferSource)
* streamDataCallback: ?function(BufferSource):!Promise
* }}
*
* @description
Expand Down Expand Up @@ -90,7 +90,7 @@ shaka.extern.RetryParameters;
* @property {?string} sessionId
* If this is a LICENSE request, this field contains the session ID of the
* EME session that made the request.
* @property {?function(BufferSource)} streamDataCallback
* @property {?function(BufferSource):!Promise} streamDataCallback
* A callback function to handle the chunked data of the ReadableStream.
* @exportDoc
*/
Expand Down
2 changes: 1 addition & 1 deletion lib/media/streaming_engine.js
Expand Up @@ -1738,7 +1738,7 @@ shaka.media.StreamingEngine = class {
* @param {!shaka.media.StreamingEngine.MediaState_} mediaState
* @param {(!shaka.media.InitSegmentReference|!shaka.media.SegmentReference)}
* reference
* @param {?function(BufferSource)=} streamDataCallback
* @param {?function(BufferSource):!Promise=} streamDataCallback
*
* @return {!Promise.<BufferSource>}
* @private
Expand Down
4 changes: 2 additions & 2 deletions lib/net/http_fetch_plugin.js
Expand Up @@ -92,7 +92,7 @@ shaka.net.HttpFetchPlugin = class {
* @param {!RequestInit} init
* @param {shaka.net.HttpFetchPlugin.AbortStatus} abortStatus
* @param {shaka.extern.ProgressUpdated} progressUpdated
* @param {?function(BufferSource)} streamDataCallback
* @param {?function(BufferSource):!Promise} streamDataCallback
* @return {!Promise<!shaka.extern.Response>}
* @private
*/
Expand Down Expand Up @@ -140,7 +140,7 @@ shaka.net.HttpFetchPlugin = class {
if (!readObj.done) {
loaded += readObj.value.byteLength;
if (streamDataCallback) {
streamDataCallback(readObj.value);
await streamDataCallback(readObj.value);
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/net/networking_engine.js
Expand Up @@ -196,7 +196,7 @@ shaka.net.NetworkingEngine = class extends shaka.util.FakeEventTarget {
*
* @param {!Array.<string>} uris
* @param {shaka.extern.RetryParameters} retryParams
* @param {?function(BufferSource)=} streamDataCallback
* @param {?function(BufferSource):!Promise=} streamDataCallback
* @return {shaka.extern.Request}
* @export
*/
Expand Down
2 changes: 1 addition & 1 deletion lib/util/networking.js
Expand Up @@ -26,7 +26,7 @@ shaka.util.Networking = class {
* @param {?number} start
* @param {?number} end
* @param {shaka.extern.RetryParameters} retryParameters
* @param {?function(BufferSource)=} streamDataCallback
* @param {?function(BufferSource):!Promise=} streamDataCallback
* @return {shaka.extern.Request}
*/
static createSegmentRequest(uris, start, end, retryParameters,
Expand Down

0 comments on commit f09616f

Please sign in to comment.