Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Unified Diff: media/test/data/eme_player_js/player_utils.js

Issue 2349813002: EME: Update MediaKeySystemConfiguration defaults; require non-empty capabilities (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698