Bug 1245789 - Added support for --enable-eme=widevine and expose MOZ_$(keySystem)_EME in dom/media/{eme,gmp}. r=glandium
authorChris Pearce <cpearce@mozilla.com>
Fri, 26 Feb 2016 14:01:41 +1300
changeset 292726 0b14f30da67f5cba9c6f6243a0a73dc36ab08b69
parent 292725 b4e76b374690de4baf1c6ece8acc13a995faadac
child 292727 d69c88b741832f1546d90a0a233d9cfe76dc873c
push id74962
push usercpearce@mozilla.com
push dateTue, 12 Apr 2016 04:14:58 +0000
treeherdermozilla-inbound@85a28619dd12 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1245789
milestone48.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1245789 - Added support for --enable-eme=widevine and expose MOZ_$(keySystem)_EME in dom/media/{eme,gmp}. r=glandium We need to not build Widevine by default, and when enabled we will need to be able to ifdef on MOZ_WIDEVINE_EME (see next patch) so that we can not build the code on platforms where it can't possibly work (Android specifcally, as Widevine isn't available as a Chromium plugin there). MozReview-Commit-ID: Avgz5NRcl9v
dom/media/eme/moz.build
dom/media/gmp/moz.build
toolkit/moz.configure
--- a/dom/media/eme/moz.build
+++ b/dom/media/eme/moz.build
@@ -1,14 +1,17 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+for cdm in CONFIG['MOZ_EME_MODULES']:
+    DEFINES['MOZ_%s_EME' % cdm.upper()] = True
+
 EXPORTS.mozilla.dom += [
     'MediaEncryptedEvent.h',
     'MediaKeyError.h',
     'MediaKeyMessageEvent.h',
     'MediaKeys.h',
     'MediaKeySession.h',
     'MediaKeyStatusMap.h',
     'MediaKeySystemAccess.h',
--- a/dom/media/gmp/moz.build
+++ b/dom/media/gmp/moz.build
@@ -1,14 +1,17 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+for cdm in CONFIG['MOZ_EME_MODULES']:
+    DEFINES['MOZ_%s_EME' % cdm.upper()] = True
+
 XPIDL_MODULE = 'content_geckomediaplugins'
 
 XPIDL_SOURCES += [
     'mozIGeckoMediaPluginChromeService.idl',
     'mozIGeckoMediaPluginService.idl',
 ]
 
 EXPORTS += [
@@ -109,17 +112,17 @@ UNIFIED_SOURCES += [
     'GMPVideoPlaneImpl.cpp',
 ]
 
 if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin'):
   DIRS += [
       'rlz',
   ]
 
-if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Linux'):
+if 'widevine' in CONFIG['MOZ_EME_MODULES']:
   DIRS += [
       'widevine-adapter',
   ]
 
 IPDL_SOURCES += [
   'GMPTypes.ipdlh',
   'PGMP.ipdl',
   'PGMPAudioDecoder.ipdl',
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -325,17 +325,17 @@ def fmp4(value, target, wmf, applemedia)
         return True
 
 set_config('MOZ_FMP4', fmp4)
 set_define('MOZ_FMP4', fmp4)
 add_old_configure_assignment('MOZ_FMP4', fmp4)
 
 # EME Support
 # ==============================================================
-option('--enable-eme', nargs='*', choices=('adobe',),
+option('--enable-eme', nargs='*', choices=('adobe','widevine',),
        help='Enable support for Encrypted Media Extensions')
 
 @depends('--enable-eme', fmp4)
 def eme(value, fmp4):
     enabled = bool(value)
     if value.origin == 'default':
         enabled = enabled or fmp4
     if enabled and not fmp4: