Skip to content

Commit

Permalink
feat: Remove remnants of IE and old Edge (#1343)
Browse files Browse the repository at this point in the history
Co-authored-by: Pat O'Neill <[email protected]>
  • Loading branch information
mister-ben and misteroneill authored Mar 15, 2023
1 parent ce7edd9 commit 93a2bfd
Show file tree
Hide file tree
Showing 12 changed files with 522 additions and 760 deletions.
23 changes: 2 additions & 21 deletions src/playlist-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -933,18 +933,12 @@ export class PlaylistController extends videojs.EventTarget {

// Delete all buffered data to allow an immediate quality switch, then seek to give
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
// ahead is roughly the minimum that will accomplish this across a variety of content
// ahead was roughly the minimum that will accomplish this across a variety of content
// in IE and Edge, but seeking in place is sufficient on all other browsers)
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
this.mainSegmentLoader_.resetEverything(() => {
// Since this is not a typical seek, we avoid the seekTo method which can cause segments
// from the previously enabled rendition to load before the new playlist has finished loading
if (videojs.browser.IE_VERSION || videojs.browser.IS_EDGE) {
this.tech_.setCurrentTime(this.tech_.currentTime() + 0.04);
} else {
this.tech_.setCurrentTime(this.tech_.currentTime());
}
this.tech_.setCurrentTime(this.tech_.currentTime());
});

// don't need to reset audio as it is reset when media changes
Expand Down Expand Up @@ -1003,19 +997,6 @@ export class PlaylistController extends videojs.EventTarget {
return false;
}

if (videojs.browser.IE_VERSION &&
this.tech_.readyState() === 0) {
// IE11 throws an InvalidStateError if you try to set currentTime while the
// readyState is 0, so it must be delayed until the tech fires loadedmetadata.
this.tech_.one('loadedmetadata', () => {
this.trigger('firstplay');
this.tech_.setCurrentTime(seekable.end(0));
this.hasPlayed_ = true;
});

return false;
}

// trigger firstplay to inform the source handler to ignore the next seek event
this.trigger('firstplay');
// seek to the live point
Expand Down
2 changes: 1 addition & 1 deletion src/segment-loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,7 @@ export default class SegmentLoader extends videojs.EventTarget {
// TODO possibly move gopBuffer and timeMapping info to a separate controller
this.gopBuffer_ = [];
this.timeMapping_ = 0;
this.safeAppend_ = videojs.browser.IE_VERSION >= 11;
this.safeAppend_ = false;
this.appendInitSegment_ = {
audio: true,
video: true
Expand Down
8 changes: 3 additions & 5 deletions src/source-updater.js
Original file line number Diff line number Diff line change
Expand Up @@ -468,11 +468,9 @@ export default class SourceUpdater extends videojs.EventTarget {
* if removeSourceBuffer can be called.
*/
canRemoveSourceBuffer() {
// IE reports that it supports removeSourceBuffer, but often throws
// errors when attempting to use the function. So we report that it
// does not support removeSourceBuffer. As of Firefox 83 removeSourceBuffer
// throws errors, so we report that it does not support this as well.
return !videojs.browser.IE_VERSION && !videojs.browser.IS_FIREFOX && window.MediaSource &&
// As of Firefox 83 removeSourceBuffer
// throws errors, so we report that it does not support this.
return !videojs.browser.IS_FIREFOX && window.MediaSource &&
window.MediaSource.prototype &&
typeof window.MediaSource.prototype.removeSourceBuffer === 'function';
}
Expand Down
8 changes: 3 additions & 5 deletions src/videojs-http-streaming.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,8 @@ export const waitForKeySessionCreation = ({
const keySessionCreatedPromises = [];

// Since PSSH values are interpreted as initData, EME will dedupe any duplicates. The
// only place where it should not be deduped is for ms-prefixed APIs, but the early
// return for IE11 above, and the existence of modern EME APIs in addition to
// only place where it should not be deduped is for ms-prefixed APIs, but
// the existence of modern EME APIs in addition to
// ms-prefixed APIs on Edge should prevent this from being a concern.
// initializeMediaKeys also won't use the webkit-prefixed APIs.
keySystemsOptionsArr.forEach((keySystemsOptions) => {
Expand Down Expand Up @@ -1058,9 +1058,7 @@ class VhsHandler extends Component {
this.handleWaitingForKey_ = this.handleWaitingForKey_.bind(this);
this.player_.tech_.on('waitingforkey', this.handleWaitingForKey_);

// In IE11 this is too early to initialize media keys, and IE11 does not support
// promises.
if (videojs.browser.IE_VERSION === 11 || !didSetupEmeOptions) {
if (!didSetupEmeOptions) {
// If EME options were not set up, we've done all we could to initialize EME.
this.playlistController_.sourceUpdater_.initializedEme();
return;
Expand Down
12 changes: 1 addition & 11 deletions test/loader-common.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import QUnit from 'qunit';
import videojs from 'video.js';
import xhrFactory from '../src/xhr';
import Config from '../src/config';
import document from 'global/document';
Expand Down Expand Up @@ -941,16 +940,7 @@ export const LoaderCommonFactory = ({

// only main/fmp4 segment loaders use async appends and parts/partIndex
if (usesAsyncAppends) {
let testFn = 'test';

if (videojs.browser.IE_VERSION) {
testFn = 'skip';
}

// this test has a race condition on ie 11 that causes it to fail some of the time.
// Since IE 11 isn't really a priority and it only fails some of the time we decided to
// skip this on IE 11.
QUnit[testFn]('playlist change before any appends does not error', function(assert) {
QUnit.test('playlist change before any appends does not error', function(assert) {
return this.setupMediaSource(loader.mediaSource_, loader.sourceUpdater_).then(() => {
loader.playlist(playlistWithDuration(50, {
uri: 'bar-720.m3u8',
Expand Down
43 changes: 18 additions & 25 deletions test/playback.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ const playFor = function(player, time, cb) {
checkPlayerTime();
};

let testFn = 'test';

// TODO: get these tests working, right now we just one the one basic test
if (videojs.browser.IE_VERSION || videojs.browser.IS_EDGE) {
testFn = 'skip';
}

QUnit.module('Playback', {
beforeEach(assert) {
assert.timeout(50000);
Expand Down Expand Up @@ -117,7 +110,7 @@ QUnit.test('Advanced Bip Bop', function(assert) {
});
});

QUnit[testFn]('replay', function(assert) {
QUnit.test('replay', function(assert) {
const done = assert.async();

assert.expect(2);
Expand Down Expand Up @@ -145,7 +138,7 @@ QUnit[testFn]('replay', function(assert) {
});
});

QUnit[testFn]('playlist with fmp4 segments', function(assert) {
QUnit.test('playlist with fmp4 segments', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -164,7 +157,7 @@ QUnit[testFn]('playlist with fmp4 segments', function(assert) {
});
});

QUnit[testFn]('playlist with fmp4 and ts segments', function(assert) {
QUnit.test('playlist with fmp4 and ts segments', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -183,7 +176,7 @@ QUnit[testFn]('playlist with fmp4 and ts segments', function(assert) {
});
});

QUnit[testFn]('Advanced Bip Bop preload=none', function(assert) {
QUnit.test('Advanced Bip Bop preload=none', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -204,7 +197,7 @@ QUnit[testFn]('Advanced Bip Bop preload=none', function(assert) {
});
});

QUnit[testFn]('Big Buck Bunny', function(assert) {
QUnit.test('Big Buck Bunny', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -223,7 +216,7 @@ QUnit[testFn]('Big Buck Bunny', function(assert) {
});
});

QUnit[testFn]('Live DASH', function(assert) {
QUnit.test('Live DASH', function(assert) {
const done = assert.async();
const player = this.player;

Expand Down Expand Up @@ -257,7 +250,7 @@ QUnit[testFn]('Live DASH', function(assert) {
player.play();
});

QUnit[testFn]('Multiperiod dash works and can end', function(assert) {
QUnit.test('Multiperiod dash works and can end', function(assert) {
const done = assert.async();

assert.expect(2);
Expand Down Expand Up @@ -287,7 +280,7 @@ QUnit[testFn]('Multiperiod dash works and can end', function(assert) {
// firefox has lower performance or more aggressive throttling than chrome
// which causes a variety of issues.
if (!videojs.browser.IS_FIREFOX) {
QUnit[testFn]('Big Buck Bunny audio only, groups & renditions same uri', function(assert) {
QUnit.test('Big Buck Bunny audio only, groups & renditions same uri', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -306,7 +299,7 @@ if (!videojs.browser.IS_FIREFOX) {
});
});

QUnit[testFn]('Big Buck Bunny Demuxed av, audio only rendition same as group', function(assert) {
QUnit.test('Big Buck Bunny Demuxed av, audio only rendition same as group', function(assert) {
const done = assert.async();

assert.expect(2);
Expand All @@ -325,7 +318,7 @@ if (!videojs.browser.IS_FIREFOX) {
});
});

QUnit[testFn]('DASH sidx', function(assert) {
QUnit.test('DASH sidx', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -349,7 +342,7 @@ if (!videojs.browser.IS_FIREFOX) {
});
});

QUnit[testFn]('DASH sidx with alt audio should end', function(assert) {
QUnit.test('DASH sidx with alt audio should end', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -376,7 +369,7 @@ if (!videojs.browser.IS_FIREFOX) {
});
});

QUnit[testFn]('DRM Dash', function(assert) {
QUnit.test('DRM Dash', function(assert) {
const done = assert.async();
const player = this.player;

Expand Down Expand Up @@ -419,7 +412,7 @@ if (!videojs.browser.IS_FIREFOX) {

// TODO: why does this make the next test
// throw an "The operation was aborted." on firefox
QUnit[testFn]('loops', function(assert) {
QUnit.test('loops', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -444,7 +437,7 @@ if (!videojs.browser.IS_FIREFOX) {
});
}

QUnit[testFn]('zero-length id3 segment', function(assert) {
QUnit.test('zero-length id3 segment', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -465,7 +458,7 @@ QUnit[testFn]('zero-length id3 segment', function(assert) {

const hlsDataUri = 'data:application/x-mpegurl;charset=utf-8,%23EXTM3U%0D%0A%0D%0A%23EXT-X-MEDIA%3ATYPE%3DAUDIO%2CGROUP-ID%3D%22bipbop_audio%22%2CLANGUAGE%3D%22eng%22%2CNAME%3D%22BipBop%20Audio%201%22%2CAUTOSELECT%3DYES%2CDEFAULT%3DYES%0D%0A%23EXT-X-MEDIA%3ATYPE%3DAUDIO%2CGROUP-ID%3D%22bipbop_audio%22%2CLANGUAGE%3D%22eng%22%2CNAME%3D%22BipBop%20Audio%202%22%2CAUTOSELECT%3DNO%2CDEFAULT%3DNO%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Falternate_audio_aac_sinewave%2Fprog_index.m3u8%22%0D%0A%0D%0A%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22English%22%2CDEFAULT%3DYES%2CAUTOSELECT%3DYES%2CFORCED%3DNO%2CLANGUAGE%3D%22en%22%2CCHARACTERISTICS%3D%22public.accessibility.transcribes-spoken-dialog%2C%20public.accessibility.describes-music-and-sound%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Feng%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22English%20%28Forced%29%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DNO%2CFORCED%3DYES%2CLANGUAGE%3D%22en%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Feng_forced%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22Fran%C3%83%C2%A7ais%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DYES%2CFORCED%3DNO%2CLANGUAGE%3D%22fr%22%2CCHARACTERISTICS%3D%22public.accessibility.transcribes-spoken-dialog%2C%20public.accessibility.describes-music-and-sound%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Ffra%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22Fran%C3%83%C2%A7ais%20%28Forced%29%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DNO%2CFORCED%3DYES%2CLANGUAGE%3D%22fr%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Ffra_forced%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22Espa%C3%83%C2%B1ol%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DYES%2CFORCED%3DNO%2CLANGUAGE%3D%22es%22%2CCHARACTERISTICS%3D%22public.accessibility.transcribes-spoken-dialog%2C%20public.accessibility.describes-music-and-sound%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Fspa%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22Espa%C3%83%C2%B1ol%20%28Forced%29%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DNO%2CFORCED%3DYES%2CLANGUAGE%3D%22es%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Fspa_forced%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22%C3%A6%C2%97%C2%A5%C3%A6%C2%9C%C2%AC%C3%A8%C2%AA%C2%9E%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DYES%2CFORCED%3DNO%2CLANGUAGE%3D%22ja%22%2CCHARACTERISTICS%3D%22public.accessibility.transcribes-spoken-dialog%2C%20public.accessibility.describes-music-and-sound%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Fjpn%2Fprog_index.m3u8%22%0D%0A%23EXT-X-MEDIA%3ATYPE%3DSUBTITLES%2CGROUP-ID%3D%22subs%22%2CNAME%3D%22%C3%A6%C2%97%C2%A5%C3%A6%C2%9C%C2%AC%C3%A8%C2%AA%C2%9E%20%28Forced%29%22%2CDEFAULT%3DNO%2CAUTOSELECT%3DNO%2CFORCED%3DYES%2CLANGUAGE%3D%22ja%22%2CURI%3D%22https%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fsubtitles%2Fjpn_forced%2Fprog_index.m3u8%22%0D%0A%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D263851%2CCODECS%3D%22mp4a.40.2%2C%20avc1.4d400d%22%2CRESOLUTION%3D416x234%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear1%2Fprog_index.m3u8%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D577610%2CCODECS%3D%22mp4a.40.2%2C%20avc1.4d401e%22%2CRESOLUTION%3D640x360%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear2%2Fprog_index.m3u8%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D915905%2CCODECS%3D%22mp4a.40.2%2C%20avc1.4d401f%22%2CRESOLUTION%3D960x540%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear3%2Fprog_index.m3u8%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D1030138%2CCODECS%3D%22mp4a.40.2%2C%20avc1.4d401f%22%2CRESOLUTION%3D1280x720%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear4%2Fprog_index.m3u8%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D1924009%2CCODECS%3D%22mp4a.40.2%2C%20avc1.4d401f%22%2CRESOLUTION%3D1920x1080%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear5%2Fprog_index.m3u8%0D%0A%0D%0A%23EXT-X-STREAM-INF%3ABANDWIDTH%3D41457%2CCODECS%3D%22mp4a.40.2%22%2CAUDIO%3D%22bipbop_audio%22%2CSUBTITLES%3D%22subs%22%0D%0Ahttps%3A%2F%2Fd2zihajmogu5jn.cloudfront.net%2Fbipbop-advanced%2Fgear0%2Fprog_index.m3u8';

QUnit[testFn]('hls data uri', function(assert) {
QUnit.test('hls data uri', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -488,7 +481,7 @@ QUnit[testFn]('hls data uri', function(assert) {

const dashDataUri = 'data:application/dash+xml;charset=utf-8,%3CMPD%20mediaPresentationDuration=%22PT634.566S%22%20minBufferTime=%22PT2.00S%22%20profiles=%22urn:hbbtv:dash:profile:isoff-live:2012,urn:mpeg:dash:profile:isoff-live:2011%22%20type=%22static%22%20xmlns=%22urn:mpeg:dash:schema:mpd:2011%22%20xmlns:xsi=%22http://www.w3.org/2001/XMLSchema-instance%22%20xsi:schemaLocation=%22urn:mpeg:DASH:schema:MPD:2011%20DASH-MPD.xsd%22%3E%20%3CBaseURL%3Ehttps://dash.akamaized.net/akamai/bbb_30fps/%3C/BaseURL%3E%20%3CPeriod%3E%20%20%3CAdaptationSet%20mimeType=%22video/mp4%22%20contentType=%22video%22%20subsegmentAlignment=%22true%22%20subsegmentStartsWithSAP=%221%22%20par=%2216:9%22%3E%20%20%20%3CSegmentTemplate%20duration=%22120%22%20timescale=%2230%22%20media=%22$RepresentationID$/$RepresentationID$_$Number$.m4v%22%20startNumber=%221%22%20initialization=%22$RepresentationID$/$RepresentationID$_0.m4v%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_1024x576_2500k%22%20codecs=%22avc1.64001f%22%20bandwidth=%223134488%22%20width=%221024%22%20height=%22576%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_1280x720_4000k%22%20codecs=%22avc1.64001f%22%20bandwidth=%224952892%22%20width=%221280%22%20height=%22720%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_1920x1080_8000k%22%20codecs=%22avc1.640028%22%20bandwidth=%229914554%22%20width=%221920%22%20height=%221080%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_320x180_200k%22%20codecs=%22avc1.64000d%22%20bandwidth=%22254320%22%20width=%22320%22%20height=%22180%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_320x180_400k%22%20codecs=%22avc1.64000d%22%20bandwidth=%22507246%22%20width=%22320%22%20height=%22180%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_480x270_600k%22%20codecs=%22avc1.640015%22%20bandwidth=%22759798%22%20width=%22480%22%20height=%22270%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_640x360_1000k%22%20codecs=%22avc1.64001e%22%20bandwidth=%221254758%22%20width=%22640%22%20height=%22360%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_640x360_800k%22%20codecs=%22avc1.64001e%22%20bandwidth=%221013310%22%20width=%22640%22%20height=%22360%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_768x432_1500k%22%20codecs=%22avc1.64001e%22%20bandwidth=%221883700%22%20width=%22768%22%20height=%22432%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_30fps_3840x2160_12000k%22%20codecs=%22avc1.640033%22%20bandwidth=%2214931538%22%20width=%223840%22%20height=%222160%22%20frameRate=%2230%22%20sar=%221:1%22%20scanType=%22progressive%22/%3E%20%20%3C/AdaptationSet%3E%20%20%3CAdaptationSet%20mimeType=%22audio/mp4%22%20contentType=%22audio%22%20subsegmentAlignment=%22true%22%20subsegmentStartsWithSAP=%221%22%3E%20%20%20%3CAccessibility%20schemeIdUri=%22urn:tva:metadata:cs:AudioPurposeCS:2007%22%20value=%226%22/%3E%20%20%20%3CRole%20schemeIdUri=%22urn:mpeg:dash:role:2011%22%20value=%22main%22/%3E%20%20%20%3CSegmentTemplate%20duration=%22192512%22%20timescale=%2248000%22%20media=%22$RepresentationID$/$RepresentationID$_$Number$.m4a%22%20startNumber=%221%22%20initialization=%22$RepresentationID$/$RepresentationID$_0.m4a%22/%3E%20%20%20%3CRepresentation%20id=%22bbb_a64k%22%20codecs=%22mp4a.40.5%22%20bandwidth=%2267071%22%20audioSamplingRate=%2248000%22%3E%20%20%20%20%3CAudioChannelConfiguration%20schemeIdUri=%22urn:mpeg:dash:23003:3:audio_channel_configuration:2011%22%20value=%222%22/%3E%20%20%20%3C/Representation%3E%20%20%3C/AdaptationSet%3E%20%3C/Period%3E%3C/MPD%3E';

QUnit[testFn]('dash data uri', function(assert) {
QUnit.test('dash data uri', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -504,7 +497,7 @@ QUnit[testFn]('dash data uri', function(assert) {
});
});

QUnit[testFn]('dash manifest object', function(assert) {
QUnit.test('dash manifest object', function(assert) {
const done = assert.async();
const player = this.player;

Expand All @@ -519,7 +512,7 @@ QUnit[testFn]('dash manifest object', function(assert) {
});
});

QUnit[testFn]('hls manifest object', function(assert) {
QUnit.test('hls manifest object', function(assert) {
const done = assert.async();
const player = this.player;

Expand Down
Loading

0 comments on commit 93a2bfd

Please sign in to comment.