blob: fc4d0403c8848ba067ef253227fb1775e271749c [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MEDIA_CDM_STUB_STUB_CDM_H_
#define MEDIA_CDM_STUB_STUB_CDM_H_
#include "base/basictypes.h"
#include "media/cdm/ppapi/api/content_decryption_module.h"
namespace media {
typedef cdm::ContentDecryptionModule_8 StubCdmInterface;
// Dummy implementation of the cdm::ContentDecryptionModule interface.
class StubCdm : public StubCdmInterface {
public:
explicit StubCdm(Host* host);
~StubCdm() override;
// StubCdmInterface implementation.
void Initialize(bool allow_distinctive_identifier,
bool allow_persistent_state) override;
void CreateSessionAndGenerateRequest(uint32 promise_id,
cdm::SessionType session_type,
cdm::InitDataType init_data_type,
const uint8* init_data,
uint32 init_data_size) override;
void LoadSession(uint32 promise_id,
cdm::SessionType session_type,
const char* session_id,
uint32_t session_id_length) override;
void UpdateSession(uint32 promise_id,
const char* session_id,
uint32_t session_id_length,
const uint8* response,
uint32 response_size) override;
void CloseSession(uint32 promise_id,
const char* session_id,
uint32_t session_id_length) override;
void RemoveSession(uint32 promise_id,
const char* session_id,
uint32_t session_id_length) override;
void SetServerCertificate(uint32 promise_id,
const uint8_t* server_certificate_data,
uint32_t server_certificate_data_size) override;
void TimerExpired(void* context) override;
cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer,
cdm::DecryptedBlock* decrypted_block) override;
cdm::Status InitializeAudioDecoder(
const cdm::AudioDecoderConfig& audio_decoder_config) override;
cdm::Status InitializeVideoDecoder(
const cdm::VideoDecoderConfig& video_decoder_config) override;
void DeinitializeDecoder(cdm::StreamType decoder_type) override;
void ResetDecoder(cdm::StreamType decoder_type) override;
cdm::Status DecryptAndDecodeFrame(const cdm::InputBuffer& encrypted_buffer,
cdm::VideoFrame* video_frame) override;
cdm::Status DecryptAndDecodeSamples(const cdm::InputBuffer& encrypted_buffer,
cdm::AudioFrames* audio_frames) override;
void Destroy() override;
void OnPlatformChallengeResponse(
const cdm::PlatformChallengeResponse& response) override;
void OnQueryOutputProtectionStatus(cdm::QueryResult result,
uint32_t link_mask,
uint32_t output_protection_mask) override;
private:
// Helper function that rejects the promise specified by |promise_id|.
void FailRequest(uint32 promise_id);
Host* host_;
uint32 next_session_id_;
DISALLOW_COPY_AND_ASSIGN(StubCdm);
};
} // namespace media
#endif // MEDIA_CDM_STUB_STUB_CDM_H_