29d69fa7 by jrivera

The real MediaSource MUST exist AND the sourceBuffers array must be empty in ord…

…er to return an empty buffer to work around the IE11 bug
1 parent 6fe9fa2f
...@@ -323,8 +323,8 @@ const filterBufferedRanges = function(predicate) { ...@@ -323,8 +323,8 @@ const filterBufferedRanges = function(predicate) {
323 // report a fully empty buffer until SourceBuffers have been created 323 // report a fully empty buffer until SourceBuffers have been created
324 // which is after a segment has been loaded and transmuxed. 324 // which is after a segment has been loaded and transmuxed.
325 if (!this.mediaSource || 325 if (!this.mediaSource ||
326 !this.mediaSource.mediaSource_ || 326 (this.mediaSource.mediaSource_ &&
327 !this.mediaSource.mediaSource_.sourceBuffers.length) { 327 !this.mediaSource.mediaSource_.sourceBuffers.length)) {
328 return videojs.createTimeRanges([]); 328 return videojs.createTimeRanges([]);
329 } 329 }
330 330
......
...@@ -752,7 +752,7 @@ QUnit.test('starts downloading a segment on loadedmetadata', function() { ...@@ -752,7 +752,7 @@ QUnit.test('starts downloading a segment on loadedmetadata', function() {
752 'the first segment is requested'); 752 'the first segment is requested');
753 }); 753 });
754 754
755 QUnit.test('always returns an empty buffered region when there are no SourceBuffers', function() { 755 QUnit.test('return an empty buffered region when there are no SourceBuffers but a real MediaSource exists', function() {
756 this.player.src({ 756 this.player.src({
757 src: 'manifest/media.m3u8', 757 src: 'manifest/media.m3u8',
758 type: 'application/vnd.apple.mpegurl' 758 type: 'application/vnd.apple.mpegurl'
...@@ -778,11 +778,11 @@ QUnit.test('always returns an empty buffered region when there are no SourceBuff ...@@ -778,11 +778,11 @@ QUnit.test('always returns an empty buffered region when there are no SourceBuff
778 0, 778 0,
779 'empty TimeRanges returned'); 779 'empty TimeRanges returned');
780 780
781 // Simulate the condition with no media source 781 // Simulate the condition with no media source (ie. Flash)
782 delete this.player.hls.mediaSource.mediaSource_; 782 delete this.player.hls.mediaSource.mediaSource_;
783 783
784 QUnit.equal(this.player.tech_.hls.findBufferedRange_().length, 784 QUnit.equal(this.player.tech_.hls.findBufferedRange_().end(0),
785 0, 785 10,
786 'empty TimeRanges returned'); 786 'empty TimeRanges returned');
787 }); 787 });
788 788
......