We broke the Chromecast build with our recent Roku changes. Cherry-picked from upstream. Change-Id: I7838d10b2ad0ef8b93d8b8510e96e7d4cfa2596a
115 lines
4.0 KiB
Plaintext
115 lines
4.0 KiB
Plaintext
README.upgrading for Widevine CDM Partner Kit v2.1
|
|
Date: 7/02/2014
|
|
|
|
This document provides details on important changes between versions of the
|
|
Widevine CDM. Some upgrades may require you to make changes to your
|
|
application, so please read carefully.
|
|
|
|
NOTE: All gyp variables have default values in platforms/global_config.gypi.
|
|
You may override these defaults in your platform-specific gypi.
|
|
|
|
|
|
New in v2.1.4:
|
|
=====
|
|
New gyp variables have been introduced to make the build more configurable:
|
|
* protobuf_gyp
|
|
For gyp-based projects with their own internal version of protobuf, allows
|
|
the path to the protobuf gyp file to be overridden. The default is
|
|
third_party/protobuf.gyp. Ignored if use_system_protobuf is 'true'.
|
|
|
|
|
|
New in v2.1.3:
|
|
=====
|
|
New gyp variables have been introduced to make the build more configurable:
|
|
* oemcrypto_v8
|
|
The current version of OEMCrypto is v9. Set to 'true' if your system
|
|
supplies OEMCrypto v8. Defaults to 'false'.
|
|
|
|
The CDM interface (class ContentDecryptionModule) has been simplified.
|
|
The following methods have been removed:
|
|
* InitializeAudioDecoder()
|
|
* InitializeVideoDecoder
|
|
* DeinitializeDecoder
|
|
* ResetDecoder
|
|
* DecryptAndDecodeFrame
|
|
* DecryptAndDecodeSamples
|
|
|
|
The Host interface (class Host) has been simplified.
|
|
The following methods have been removed:
|
|
* GetPrivateData
|
|
* PersistPlatformString
|
|
* GetPlatformByteArray
|
|
* SetPlatformByteArray
|
|
* PersistPlatformByteArray
|
|
|
|
The following Host methods have changed:
|
|
* GetPlatformString
|
|
Now does the job of GetPlatformByteArray as well.
|
|
* SetPlatformString
|
|
Now does the job of SetPlatformByteArray, PersistPlatformString, and
|
|
PersistPlatformByteArray as well.
|
|
* SetTimer
|
|
This should schedule a single callback, not a repeating timer. Multiple
|
|
timer callbacks may be scheduled by the CDM at once. All callbacks should
|
|
occur serially on the same thread/queue as all other calls into the CDM.
|
|
|
|
|
|
New in v2.1.2:
|
|
=====
|
|
The following file locations have changed:
|
|
|
|
./cdm/cdm_api_internal.gyp => ./cdm/cdm.gyp
|
|
./cdm/cdm_api_external.gyp => ./cdm/cdm_unittests.gyp
|
|
|
|
If you have your own gyp files which depend on CDM targets, please update them
|
|
accordingly.
|
|
|
|
./build.py will use the ninja build tool if available. Otherwise, it will
|
|
continue to use make.
|
|
|
|
The Host is no longer expected to allocate a Buffer before calling
|
|
ContentDecryptionModule::Decrypt. The CDM will now call Host::Allocate and
|
|
DecryptedBlock::SetBuffer as needed in its Decrypt method. To avoid the
|
|
potential for a memory leak, make sure that your Host implementation no
|
|
longer allocates a Buffer before calling Decrypt.
|
|
|
|
For more details on the Host interface, see "Widevine Security Integration
|
|
Guide for CENC: EME Supplement".
|
|
|
|
|
|
New in v2.1.1:
|
|
=====
|
|
The following file locations have changed:
|
|
|
|
./build/build.py => ./build.py
|
|
./build/platforms/ => ./platforms/
|
|
./build/global_config.gypi => ./platforms/global_config.gypi
|
|
./build/protoc.gypi => ./third_party/protoc.gypi
|
|
|
|
The file ./build/platforms/cdm_platforms.py no longer exists. Platform
|
|
definitions are now based on the folder structure in ./platforms rather than
|
|
a python-based config file.
|
|
|
|
The OEMCrypto interface has been updated to v9, and documentation has been
|
|
updated in oemcrypto/include. The following functions were added:
|
|
|
|
* OEMCrypto_GetHDCPCapability
|
|
* OEMCrypto_SupportsUsageTable
|
|
* OEMCrypto_UpdateUsageTable
|
|
* OEMCrypto_DeactivateUsageEntry
|
|
* OEMCrypto_ReportUsage
|
|
* OEMCrypto_DeleteUsageEntry
|
|
* OEMCrypto_DeleteUsageTable
|
|
|
|
The file ./platforms/x86-64/x86-64.gypi now contains examples of how settings
|
|
can be customized for a given platform.
|
|
|
|
New gyp variables have been introduced to make the build more configurable:
|
|
* use_system_protobuf
|
|
Allows building protobuf from source, rather than using a system-wide
|
|
installation of the library and its tools. Defaults to 'true'.
|
|
* protobuf_source_dir
|
|
The path to the protobuf sources. Ignored if use_system_protobuf is
|
|
'true'. The source dir is expected to have a valid config.h for the
|
|
platform.
|