| Index: media/cdm/ppapi/cdm_adapter.h
|
| diff --git a/media/cdm/ppapi/cdm_adapter.h b/media/cdm/ppapi/cdm_adapter.h
|
| index 1a05ada7801e028341312f64eb4fed119c4aac96..64006326b157cdabeac51c75ab1e154577f84db3 100644
|
| --- a/media/cdm/ppapi/cdm_adapter.h
|
| +++ b/media/cdm/ppapi/cdm_adapter.h
|
| @@ -37,7 +37,8 @@ void* GetCdmHost(int host_interface_version, void* user_data);
|
| // Content Decryption Module (CDM).
|
| class CdmAdapter : public pp::Instance,
|
| public pp::ContentDecryptor_Private,
|
| - public cdm::Host_4 {
|
| + public cdm::Host_4,
|
| + public cdm::Host_5 {
|
| public:
|
| CdmAdapter(PP_Instance instance, pp::Module* module);
|
| virtual ~CdmAdapter();
|
| @@ -51,14 +52,17 @@ class CdmAdapter : public pp::Instance,
|
| // Note: Results of calls to these methods must be reported through the
|
| // PPB_ContentDecryptor_Private interface.
|
| virtual void Initialize(const std::string& key_system) OVERRIDE;
|
| - virtual void CreateSession(uint32_t session_id,
|
| - const std::string& content_type,
|
| - pp::VarArrayBuffer init_data) OVERRIDE;
|
| - virtual void LoadSession(uint32_t session_id,
|
| + virtual void CreateSession(uint32_t promise_id,
|
| + const std::string& init_data_type,
|
| + pp::VarArrayBuffer init_data,
|
| + PP_SessionType session_type) OVERRIDE;
|
| + virtual void LoadSession(uint32_t promise_id,
|
| const std::string& web_session_id) OVERRIDE;
|
| - virtual void UpdateSession(uint32_t session_id,
|
| + virtual void UpdateSession(uint32_t promise_id,
|
| + const std::string& web_session_id,
|
| pp::VarArrayBuffer response) OVERRIDE;
|
| - virtual void ReleaseSession(uint32_t session_id) OVERRIDE;
|
| + virtual void ReleaseSession(uint32_t promise_id,
|
| + const std::string& web_session_id) OVERRIDE;
|
| virtual void Decrypt(
|
| pp::Buffer_Dev encrypted_buffer,
|
| const PP_EncryptedBlockInfo& encrypted_block_info) OVERRIDE;
|
| @@ -77,10 +81,51 @@ class CdmAdapter : public pp::Instance,
|
| pp::Buffer_Dev encrypted_buffer,
|
| const PP_EncryptedBlockInfo& encrypted_block_info) OVERRIDE;
|
|
|
| - // cdm::Host implementation.
|
| + // cdm::Host_5 implementation.
|
| virtual cdm::Buffer* Allocate(uint32_t capacity) OVERRIDE;
|
| virtual void SetTimer(int64_t delay_ms, void* context) OVERRIDE;
|
| virtual double GetCurrentWallTimeInSeconds() OVERRIDE;
|
| + virtual void OnResolveNewSessionPromise(
|
| + uint32_t promise_id,
|
| + const char* web_session_id,
|
| + uint32_t web_session_id_length) OVERRIDE;
|
| + virtual void OnResolvePromise(uint32_t promise_id) OVERRIDE;
|
| + virtual void OnRejectPromise(uint32_t promise_id,
|
| + const char* error_name,
|
| + uint32_t error_name_length,
|
| + uint32_t system_code,
|
| + const char* error_message,
|
| + uint32_t error_message_length) OVERRIDE;
|
| + virtual void OnSessionMessage(const char* web_session_id,
|
| + uint32_t web_session_id_length,
|
| + const char* message,
|
| + uint32_t message_length,
|
| + const char* destination_url,
|
| + uint32_t destination_url_length) OVERRIDE;
|
| + virtual void OnSessionReady(const char* web_session_id,
|
| + uint32_t web_session_id_length) OVERRIDE;
|
| + virtual void OnSessionClosed(const char* web_session_id,
|
| + uint32_t web_session_id_length) OVERRIDE;
|
| + virtual void OnSessionError(const char* web_session_id,
|
| + uint32_t web_session_id_length,
|
| + const char* error_name,
|
| + uint32_t error_name_length,
|
| + uint32_t system_code,
|
| + const char* error_message,
|
| + uint32_t error_message_length) OVERRIDE;
|
| + virtual void SendPlatformChallenge(const char* service_id,
|
| + uint32_t service_id_length,
|
| + const char* challenge,
|
| + uint32_t challenge_length) OVERRIDE;
|
| + virtual void EnableOutputProtection(
|
| + uint32_t desired_protection_mask) OVERRIDE;
|
| + virtual void QueryOutputProtectionStatus() OVERRIDE;
|
| + virtual void OnDeferredInitializationDone(
|
| + cdm::StreamType stream_type,
|
| + cdm::Status decoder_status) OVERRIDE;
|
| + virtual cdm::FileIO* CreateFileIO(cdm::FileIOClient* client) OVERRIDE;
|
| +
|
| + // cdm::Host_4 extras
|
| virtual void OnSessionCreated(uint32_t session_id,
|
| const char* web_session_id,
|
| uint32_t web_session_id_length) OVERRIDE;
|
| @@ -94,40 +139,49 @@ class CdmAdapter : public pp::Instance,
|
| virtual void OnSessionError(uint32_t session_id,
|
| cdm::MediaKeyError error_code,
|
| uint32_t system_code) OVERRIDE;
|
| - virtual void SendPlatformChallenge(
|
| - const char* service_id, uint32_t service_id_length,
|
| - const char* challenge, uint32_t challenge_length) OVERRIDE;
|
| - virtual void EnableOutputProtection(
|
| - uint32_t desired_protection_mask) OVERRIDE;
|
| - virtual void QueryOutputProtectionStatus() OVERRIDE;
|
| - virtual void OnDeferredInitializationDone(
|
| - cdm::StreamType stream_type,
|
| - cdm::Status decoder_status) OVERRIDE;
|
| - virtual cdm::FileIO* CreateFileIO(cdm::FileIOClient* client) OVERRIDE;
|
|
|
| private:
|
| typedef linked_ptr<DecryptedBlockImpl> LinkedDecryptedBlock;
|
| typedef linked_ptr<VideoFrameImpl> LinkedVideoFrame;
|
| typedef linked_ptr<AudioFramesImpl> LinkedAudioFrames;
|
|
|
| + struct SessionError {
|
| + SessionError(std::string error_name,
|
| + uint32_t system_code,
|
| + std::string error_description);
|
| + std::string error_name;
|
| + uint32_t system_code;
|
| + std::string error_description;
|
| + };
|
| +
|
| bool CreateCdmInstance(const std::string& key_system);
|
|
|
| // <code>PPB_ContentDecryptor_Private</code> dispatchers. These are passed to
|
| // <code>callback_factory_</code> to ensure that calls into
|
| // <code>PPP_ContentDecryptor_Private</code> are asynchronous.
|
| - void SendSessionCreatedInternal(int32_t result,
|
| - uint32_t session_id,
|
| - const std::string& web_session_id);
|
| + void SendPromiseResolvedInternal(int32_t result, uint32_t promise_id);
|
| + void SendPromiseResolvedWithSessionInternal(
|
| + int32_t result,
|
| + uint32_t promise_id,
|
| + const std::string& web_session_id);
|
| + void SendPromiseRejectedInternal(int32_t result,
|
| + uint32_t promise_id,
|
| + const SessionError& error);
|
| void SendSessionMessageInternal(int32_t result,
|
| - uint32_t session_id,
|
| + const std::string& web_session_id,
|
| const std::vector<uint8>& message,
|
| - const std::string& default_url);
|
| - void SendSessionReadyInternal(int32_t result, uint32_t session_id);
|
| - void SendSessionClosedInternal(int32_t result, uint32_t session_id);
|
| + const std::string& destination_url);
|
| + void SendSessionReadyInternal(int32_t result,
|
| + const std::string& web_session_id);
|
| + void SendSessionClosedInternal(int32_t result,
|
| + const std::string& web_session_id);
|
| void SendSessionErrorInternal(int32_t result,
|
| - uint32_t session_id,
|
| - cdm::MediaKeyError error_code,
|
| - uint32_t system_code);
|
| + const std::string& web_session_id,
|
| + const SessionError& error);
|
| + void RejectPromise(uint32_t promise_id,
|
| + const std::string& error_name,
|
| + uint32_t system_code,
|
| + const std::string& error_message);
|
|
|
| void DeliverBlock(int32_t result,
|
| const cdm::Status& status,
|
|
|