Files
ce_cdm/README.upgrading
Joey Parrish 1955c9c2c9 Source release v2.2.0-0-903 + third_party libs
Change-Id: I03f670eaeb052bc741abb347be06f8ddc58418e7
2014-12-19 11:07:36 -08:00

144 lines
5.0 KiB
Plaintext

README.upgrading for Widevine CDM Partner Kit v2.2
Date: 12/16/2014
This document provides details on important changes between versions of the
Widevine CDM. Some upgrades 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.2.0:
=====
New gyp variables have been introduced to make the build more configurable:
* privacy_crypto_impl
This replaces the variable 'disable_privacy_crypto'. To achieve the same
effect, set the value to 'dummy'. Defaults to 'openssl'.
ContentDecryptionModule_1::GenerateKeyRequest did not previously require the
'type' parameter to be supplied. This is now required, and must be set to the
content's MIME type.
ContentDecryptionModule_1::Decrypt* previously required subsamples. This is no
longer required. WebM content, for example, does not contain subsamples.
ContentDecryptionModule_1::Decrypt* did not previously set the size of a
decrypted Buffer. This has been fixed.
New CDM/Host interfaces, CDM_4/Host_4, have been introduced. CDM_1/Host_1 will
continue to be supported until the end of Q1, 2015. The new interface includes
many fixes and improvements, updates to reflect the evolving EME standard, and
the introduction of offline playback APIs.
New in v2.1.6:
=====
The following methods have been removed from the CDM interface (class
ContentDecryptionModule):
* CancelKeyRequest
The following methods have been added to the CDM interface (class
ContentDecryptionModule):
* CloseSession
Previous versions of the CDM did not dispatch key errors (Host::SendKeyError)
on failure. This has been fixed. If you added workarounds to your Host,
please remove them to avoid duplicate key errors.
New in v2.1.5:
=====
New gyp variables have been introduced to make the build more configurable:
* protobuf_lib_type and protobuf_lib
These, along with 'protoc_dir', form a new protobuf configuration model
and replace the variables 'protobuf_source_dir', 'use_system_protobuf',
and 'protobuf_gyp'. For details, see platforms/global_config.gypi.
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.