| Index: media/test/data/eme_player_js/player_utils.js
|
| diff --git a/media/test/data/eme_player_js/player_utils.js b/media/test/data/eme_player_js/player_utils.js
|
| index 8a5d76c66b8505310a6d6674a0ec25e5976422ae..e640d9072e3e74ad8cf2bb77edf539b0b1be10ff 100644
|
| --- a/media/test/data/eme_player_js/player_utils.js
|
| +++ b/media/test/data/eme_player_js/player_utils.js
|
| @@ -93,20 +93,72 @@ PlayerUtils.registerEMEEventListeners = function(player) {
|
| this.registerDefaultEventListeners(player);
|
| player.video.receivedKeyMessage = false;
|
| Utils.timeLog('Setting video media keys: ' + player.testConfig.keySystem);
|
| - var config = {};
|
| +
|
| + var config = {
|
| + audioCapabilities: [],
|
| + videoCapabilities: [],
|
| + persistentState: 'optional',
|
| + sessionTypes: ['temporary'],
|
| + };
|
| +
|
| + // requestMediaKeySystemAccess() requires at least one of 'audioCapabilities'
|
| + // or 'videoCapabilities' to be specified. It also requires only codecs
|
| + // specific to the capability, so unlike MSE cannot have both audio and
|
| + // video codecs in the contentType.
|
| + if (player.testConfig.mediaType == 'video/webm; codecs="vp8"' ||
|
| + player.testConfig.mediaType == 'video/webm; codecs="vp9"' ||
|
| + player.testConfig.mediaType == 'video/mp4; codecs="avc1.4D000C"') {
|
| + // Video only.
|
| + config.videoCapabilities = [{contentType: player.testConfig.mediaType}];
|
| + } else if (
|
| + player.testConfig.mediaType == 'audio/webm; codecs="vorbis"' ||
|
| + player.testConfig.mediaType == 'audio/webm; codecs="opus"' ||
|
| + player.testConfig.mediaType == 'audio/mp4; codecs="mp4a.40.2"') {
|
| + // Audio only.
|
| + config.audioCapabilities = [{contentType: player.testConfig.mediaType}];
|
| + } else if (
|
| + player.testConfig.mediaType == 'video/webm; codecs="vorbis, vp8"') {
|
| + // Both audio and video codecs specified.
|
| + config.audioCapabilities = [{contentType: 'audio/webm; codecs="vorbis"'}];
|
| + config.videoCapabilities = [{contentType: 'video/webm; codecs="vp8"'}];
|
| + } else if (player.testConfig.mediaType == 'video/webm; codecs="opus, vp9"') {
|
| + // Both audio and video codecs specified.
|
| + config.audioCapabilities = [{contentType: 'audio/webm; codecs="opus"'}];
|
| + config.videoCapabilities = [{contentType: 'video/webm; codecs="vp9"'}];
|
| + } else {
|
| + // Some tests (e.g. mse_different_containers.html) specify audio and
|
| + // video codecs seperately.
|
| + if (player.testConfig.videoFormat == 'ENCRYPTED_MP4' ||
|
| + player.testConfig.videoFormat == 'CLEAR_MP4') {
|
| + config.videoCapabilities =
|
| + [{contentType: 'video/mp4; codecs="avc1.4D000C"'}];
|
| + } else if (
|
| + player.testConfig.videoFormat == 'ENCRYPTED_WEBM' ||
|
| + player.testConfig.videoFormat == 'CLEAR_WEBM') {
|
| + config.videoCapabilities = [{contentType: 'video/webm; codecs="vp8"'}];
|
| + }
|
| + if (player.testConfig.audioFormat == 'ENCRYPTED_MP4' ||
|
| + player.testConfig.audioFormat == 'CLEAR_MP4') {
|
| + config.audioCapabilities =
|
| + [{contentType: 'audio/mp4; codecs="mp4a.40.2"'}];
|
| + } else if (
|
| + player.testConfig.audioFormat == 'ENCRYPTED_WEBM' ||
|
| + player.testConfig.audioFormat == 'CLEAR_WEBM') {
|
| + config.audioCapabilities = [{contentType: 'audio/webm; codecs="vorbis"'}];
|
| + }
|
| + }
|
| +
|
| // The File IO test requires persistent state support.
|
| if (player.testConfig.keySystem ==
|
| 'org.chromium.externalclearkey.fileiotest') {
|
| - config = {persistentState: "required"};
|
| + config.persistentState = 'required';
|
| + } else if (player.testConfig.sessionToLoad) {
|
| + config.persistentState = 'required';
|
| + config.sessionTypes = ['temporary', 'persistent-license'];
|
| }
|
| - if (player.testConfig.sessionToLoad) {
|
| - config = {
|
| - persistentState: "required",
|
| - sessionTypes: ["temporary", "persistent-license"]
|
| - };
|
| - }
|
| - return navigator.requestMediaKeySystemAccess(
|
| - player.testConfig.keySystem, [config])
|
| +
|
| + return navigator
|
| + .requestMediaKeySystemAccess(player.testConfig.keySystem, [config])
|
| .then(function(access) { return access.createMediaKeys(); })
|
| .then(function(mediaKeys) {
|
| return player.video.setMediaKeys(mediaKeys);
|
|
|