class Widevine
Defined at line 4841 of file fidling/gen/sdk/fidl/fuchsia.media.drm/fuchsia.media.drm/hlcpp/fuchsia/media/drm/cpp/fidl.h
A service hub providing access to the Widevine key system.
If the client closes the `Widevine` channel, derived
`ContentDecryptionModule`s will remain active.
Public Members
static const char[] Name_
Public Methods
void ~Widevine ()
void GetProperties (GetPropertiesCallback callback)
Get various static properties of the `KeySystem` implementation.
The properties include the capabilities and requirements of the
`KeySystem`, such as whether the implementation is hardware-based or
whether it requires client-provided data stores to operate.
- response `properties` the properties of the `KeySystem`
implementation.
void AddDataStore (uint32_t data_store_id, ::fuchsia::media::drm::DataStoreParams data_store_params, AddDataStoreCallback callback)
Adds a client data store to the `KeySystem`.
DRM systems generate data on behalf of clients as part of provisioning
and license management. This data is only usable by the DRM system, but
the client is the owner of the data. The client controls the lifetime of
the data and can select which data set is to be used for a
[`ContentDecryptionModule`].
+ request `data_store_id` a client-assigned identifier for the data
store. The identifier is scoped to the `KeySystem` channel. It is
invalid for the client to provide [`NO_DATA_STORE`] or an already
added `data_store_id` and the server should close the channel.
+ request `data_store_params` the parameters to be used for this data
store.
void DestroyDataStoreAndConfirm (uint32_t data_store_id, DestroyDataStoreAndConfirmCallback callback)
Destroys the client data store.
This method permanently removes this data store and all of its contents.
All provisioning and license data will be removed and any active
[`ContentDecryptionModule`] using this data store will be closed.
+ request `data_store_id` the client-assigned identifier for the data
store to be removed. It is invalid for the client to provide
[`NO_DATA_STORE`] or a `data_store_id` value that has not previously
been added or has been previously destroyed.
void CreateContentDecryptionModule2 (uint32_t data_store_id, ::fidl::InterfaceRequest< ::fuchsia::media::drm::ContentDecryptionModule> cdm)
Creates a new [`ContentDecryptionModule`].
Creates a `ContentDecryptionModule` that will use the associated data
store, if provided. If [`NO_DATA_STORE`] is provided for the
`data_store_id`, then the created `ContentDecryptionModule` will only
support [`LicenseSession`]s of [`LicenseSessionType.TEMPORARY`] type.
If a `data_store_id` is provided, then the created
`ContentDecryptionModule` will persist data to that data store. If the
`KeySystem` requires a data store and `NO_DATA_STORE` was provided or
the `KeySystem` does not support data stores and one was provided, then
the server should close the `cdm`.
If the `data_store_id` does not exist, the `cdm` will be closed with a
`ZX_ERR_NOT_FOUND` epitaph.
+ request `data_store_id` the data store that should be used by the
`ContentDecryptionModule`.
+ request `cdm` the server endpoint of the `ContentDecryptionModule`.