From ab64c76ee90eafe6f8813c400a54eedfdf22bf81 Mon Sep 17 00:00:00 2001 From: Joey Parrish Date: Tue, 19 Jul 2016 14:43:37 -0700 Subject: [PATCH] Fix MP4 text parser integration * removes an assertion which is no longer valid * corrects the registration of the VTT in MP4 parser * fixes some type issues in TextEngine Change-Id: I0b7f41f01e5d7be2932c86a56f3cdfd6a53d04cb --- lib/media/media_source_engine.js | 2 -- lib/media/mp4_vtt_parser.js | 2 +- lib/media/text_engine.js | 14 +++++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/media/media_source_engine.js b/lib/media/media_source_engine.js index 36a63689a..f1226e33f 100644 --- a/lib/media/media_source_engine.js +++ b/lib/media/media_source_engine.js @@ -352,8 +352,6 @@ shaka.media.MediaSourceEngine.prototype.getBuffered_ = function(contentType) { shaka.media.MediaSourceEngine.prototype.appendBuffer = function(contentType, data, startTime, endTime) { if (contentType == 'text') { - goog.asserts.assert(startTime != null && endTime != null, - 'text streams do not have init segments!'); return this.textEngine_.appendBuffer(data, startTime, endTime); } return this.enqueueOperation_( diff --git a/lib/media/mp4_vtt_parser.js b/lib/media/mp4_vtt_parser.js index 16c77ac77..764dd5850 100644 --- a/lib/media/mp4_vtt_parser.js +++ b/lib/media/mp4_vtt_parser.js @@ -193,4 +193,4 @@ shaka.media.Mp4VttParser.BOX_TYPE_STTG = 0x73747467; shaka.media.TextEngine.registerParser( - 'application/mp4; codecs="wvtt"', shaka.media.Mp4TtmlParser); + 'application/mp4; codecs="wvtt"', shaka.media.Mp4VttParser); diff --git a/lib/media/text_engine.js b/lib/media/text_engine.js index 5c060a1a1..bd8e0a308 100644 --- a/lib/media/text_engine.js +++ b/lib/media/text_engine.js @@ -59,7 +59,7 @@ shaka.media.TextEngine = function(track, mimeType) { /** * Parses a text buffer into an array of cues. * - * @typedef {function(ArrayBuffer, number, number):!Array.} + * @typedef {function(ArrayBuffer, ?number, ?number):!Array.} * @exportDoc */ shaka.media.TextEngine.TextParser; @@ -112,8 +112,8 @@ shaka.media.TextEngine.prototype.destroy = function() { /** * @param {ArrayBuffer} buffer - * @param {number} startTime - * @param {number} endTime + * @param {?number} startTime + * @param {?number} endTime * @return {!Promise} */ shaka.media.TextEngine.prototype.appendBuffer = @@ -125,6 +125,14 @@ shaka.media.TextEngine.prototype.appendBuffer = // Parse the buffer and add the new cues. var cues = this.parser_(buffer, startTime, endTime); + if (!cues.length) { + // Init segments have no cues and no times. + return; + } + // If cues were parsed, startTime and endTime should be non-null. + goog.asserts.assert(startTime != null && endTime != null, + 'start and end times should be non-null!'); + for (var i = 0; i < cues.length; ++i) { cues[i].startTime += offset; cues[i].endTime += offset;