diff --git a/demo/main.js b/demo/main.js index fd914e1ec5..34a0b676df 100644 --- a/demo/main.js +++ b/demo/main.js @@ -1742,7 +1742,7 @@ shakaDemo.Main = class { shakaDemo.Main.commonDrmSystems = [ 'com.widevine.alpha', 'com.microsoft.playready', - 'com.apple.fps', + 'com.apple.fps.1_0', 'com.adobe.primetime', 'org.w3.clearkey', ]; diff --git a/lib/media/drm_engine.js b/lib/media/drm_engine.js index 79517d2e6b..e2cc2f32a2 100644 --- a/lib/media/drm_engine.js +++ b/lib/media/drm_engine.js @@ -592,17 +592,6 @@ shaka.media.DrmEngine = class { return false; } - /** - * @param {?string} keySystem - * @return {boolean} */ - static isFairPlayKeySystem(keySystem) { - if (keySystem) { - return !!keySystem.match(/^com\.apple\.fps/); - } - - return false; - } - /** * Check if DrmEngine (as initialized) will likely be able to support the * given content type. @@ -800,14 +789,6 @@ shaka.media.DrmEngine = class { ]; } - // FairPlay does not support distinctiveIdentifier, persistentState - // and also only supports temporary sessions. - if (shaka.media.DrmEngine.isFairPlayKeySystem(info.keySystem)) { - config.distinctiveIdentifier = 'not-allowed'; - config.persistentState = 'not-allowed'; - config.sessionTypes = ['temporary']; - } - if (info.distinctiveIdentifierRequired) { config.distinctiveIdentifier = 'required'; } diff --git a/lib/player.js b/lib/player.js index af01787680..bfd76887bf 100644 --- a/lib/player.js +++ b/lib/player.js @@ -1142,7 +1142,24 @@ shaka.Player = class extends shaka.util.FakeEventTarget { if (!mimeType) { // Try using the uri extension. const extension = shaka.media.ManifestParser.getExtension(uri); - mimeType = shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[extension]; + mimeType = { + 'mp4': 'video/mp4', + 'm4v': 'video/mp4', + 'm4a': 'audio/mp4', + 'webm': 'video/webm', + 'weba': 'audio/webm', + 'mkv': 'video/webm', // Chromium browsers supports it. + 'ts': 'video/mp2t', + 'ogv': 'video/ogg', + 'ogg': 'audio/ogg', + 'mpg': 'video/mpeg', + 'mpeg': 'video/mpeg', + 'm3u8': 'application/x-mpegurl', + 'mp3': 'audio/mpeg', + 'aac': 'audio/aac', + 'flac': 'audio/flac', + 'wav': 'audio/wav', + }[extension]; } // TODO: The load graph system has a design limitation that requires routing @@ -1985,16 +2002,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget { this.drmEngine_.configure(this.config_.drm); - const uri = has.uri || ''; - const extension = shaka.media.ManifestParser.getExtension(uri); - let mimeType = shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[extension]; - if (mimeType == 'application/x-mpegurl' && shaka.util.Platform.isApple()) { - mimeType = 'application/vnd.apple.mpegurl'; - } - if (!mimeType) { - mimeType = 'video/mp4'; - } - // TODO: Instead of feeding DrmEngine with Variants, we should refactor // DrmEngine so that it takes a minimal config derived from Variants. In // cases like this one or in removal of stored content, the details are @@ -2015,7 +2022,7 @@ shaka.Player = class extends shaka.util.FakeEventTarget { createSegmentIndex: () => Promise.resolve(), segmentIndex: null, mimeType: wants.mimeType ? - shaka.util.MimeUtils.getBasicType(wants.mimeType) : mimeType, + shaka.util.MimeUtils.getBasicType(wants.mimeType) : 'video/mp4', codecs: wants.mimeType ? shaka.util.MimeUtils.getCodecs(wants.mimeType) : '', encrypted: true, @@ -6069,30 +6076,6 @@ shaka.Player.supportPlugins_ = {}; shaka.Player.adManagerFactory_ = null; -/** - * @const {!Object.} - * @private - */ -shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_ = { - 'mp4': 'video/mp4', - 'm4v': 'video/mp4', - 'm4a': 'audio/mp4', - 'webm': 'video/webm', - 'weba': 'audio/webm', - 'mkv': 'video/webm', // Chromium browsers supports it. - 'ts': 'video/mp2t', - 'ogv': 'video/ogg', - 'ogg': 'audio/ogg', - 'mpg': 'video/mpeg', - 'mpeg': 'video/mpeg', - 'm3u8': 'application/x-mpegurl', - 'mp3': 'audio/mpeg', - 'aac': 'audio/aac', - 'flac': 'audio/flac', - 'wav': 'audio/wav', -}; - - /** * @const {string} */ diff --git a/test/media/drm_engine_unit.js b/test/media/drm_engine_unit.js index bc6d9f4150..9774af9c5c 100644 --- a/test/media/drm_engine_unit.js +++ b/test/media/drm_engine_unit.js @@ -2164,26 +2164,6 @@ function testDrmEngine(useMediaCapabilities) { }); }); - describe('isFairPlayKeySystem', () => { - it('should return true for FairPlay', () => { - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.apple.fps')).toBe(true); - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.apple.fps.1_0')).toBe(true); - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.apple.fps.2_0')).toBe(true); - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.apple.fps.3_0')).toBe(true); - }); - - it('should return false for non-FairPlay key systems', () => { - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.widevine.alpha')).toBe(false); - expect(shaka.media.DrmEngine.isFairPlayKeySystem( - 'com.abc.playready')).toBe(false); - }); - }); - describe('getDrmInfo', () => { it('includes correct info', async () => { // Leave only one drmInfo