| Index: webkit/renderer/media/crypto/ppapi/clear_key_cdm.h
|
| diff --git a/webkit/renderer/media/crypto/ppapi/clear_key_cdm.h b/webkit/renderer/media/crypto/ppapi/clear_key_cdm.h
|
| deleted file mode 100644
|
| index d82f90dd8640604e5696e6a4a578c4dd5bc467dd..0000000000000000000000000000000000000000
|
| --- a/webkit/renderer/media/crypto/ppapi/clear_key_cdm.h
|
| +++ /dev/null
|
| @@ -1,170 +0,0 @@
|
| -// Copyright 2013 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 WEBKIT_RENDERER_MEDIA_CRYPTO_PPAPI_CLEAR_KEY_CDM_H_
|
| -#define WEBKIT_RENDERER_MEDIA_CRYPTO_PPAPI_CLEAR_KEY_CDM_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "media/crypto/aes_decryptor.h"
|
| -#include "webkit/renderer/media/crypto/ppapi/cdm/content_decryption_module.h"
|
| -
|
| -// Enable this to use the fake decoder for testing.
|
| -// TODO(tomfinegan): Move fake audio decoder into a separate class.
|
| -#if 0
|
| -#define CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER
|
| -#endif
|
| -
|
| -namespace media {
|
| -class DecoderBuffer;
|
| -}
|
| -
|
| -namespace webkit_media {
|
| -
|
| -class CdmVideoDecoder;
|
| -class FFmpegCdmAudioDecoder;
|
| -
|
| -// Clear key implementation of the cdm::ContentDecryptionModule interface.
|
| -class ClearKeyCdm : public cdm::ContentDecryptionModule {
|
| - public:
|
| - explicit ClearKeyCdm(cdm::Host* host);
|
| - virtual ~ClearKeyCdm();
|
| -
|
| - // ContentDecryptionModule implementation.
|
| - virtual cdm::Status GenerateKeyRequest(
|
| - const char* type, int type_size,
|
| - const uint8_t* init_data, int init_data_size) OVERRIDE;
|
| - virtual cdm::Status AddKey(const char* session_id, int session_id_size,
|
| - const uint8_t* key, int key_size,
|
| - const uint8_t* key_id, int key_id_size) OVERRIDE;
|
| - virtual cdm::Status CancelKeyRequest(const char* session_id,
|
| - int session_id_size) OVERRIDE;
|
| - virtual void TimerExpired(void* context) OVERRIDE;
|
| - virtual cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer,
|
| - cdm::DecryptedBlock* decrypted_block) OVERRIDE;
|
| - virtual cdm::Status InitializeAudioDecoder(
|
| - const cdm::AudioDecoderConfig& audio_decoder_config) OVERRIDE;
|
| - virtual cdm::Status InitializeVideoDecoder(
|
| - const cdm::VideoDecoderConfig& video_decoder_config) OVERRIDE;
|
| - virtual void DeinitializeDecoder(cdm::StreamType decoder_type) OVERRIDE;
|
| - virtual void ResetDecoder(cdm::StreamType decoder_type) OVERRIDE;
|
| - virtual cdm::Status DecryptAndDecodeFrame(
|
| - const cdm::InputBuffer& encrypted_buffer,
|
| - cdm::VideoFrame* video_frame) OVERRIDE;
|
| - virtual cdm::Status DecryptAndDecodeSamples(
|
| - const cdm::InputBuffer& encrypted_buffer,
|
| - cdm::AudioFrames* audio_frames) OVERRIDE;
|
| - virtual void Destroy() OVERRIDE;
|
| -
|
| - private:
|
| - // TODO(xhwang): After we removed DecryptorClient. We probably can also remove
|
| - // this Client class as well. Investigate this possibility.
|
| - class Client {
|
| - public:
|
| - enum Status {
|
| - kKeyAdded,
|
| - kKeyError,
|
| - kKeyMessage
|
| - };
|
| -
|
| - Client();
|
| - virtual ~Client();
|
| -
|
| - Status status() { return status_; }
|
| - const std::string& session_id() { return session_id_; }
|
| - const std::vector<uint8>& key_message() { return key_message_; }
|
| - const std::string& default_url() { return default_url_; }
|
| -
|
| - // Resets the Client to a clean state.
|
| - void Reset();
|
| -
|
| - void KeyAdded(const std::string& session_id);
|
| - void KeyError(const std::string& session_id,
|
| - media::MediaKeys::KeyError error_code,
|
| - int system_code);
|
| - void KeyMessage(const std::string& session_id,
|
| - const std::vector<uint8>& message,
|
| - const std::string& default_url);
|
| -
|
| - private:
|
| - Status status_;
|
| - std::string session_id_;
|
| - std::vector<uint8> key_message_;
|
| - std::string default_url_;
|
| - };
|
| -
|
| - // Prepares next heartbeat message and sets a timer for it.
|
| - void ScheduleNextHeartBeat();
|
| -
|
| - // Decrypts the |encrypted_buffer| and puts the result in |decrypted_buffer|.
|
| - // Returns cdm::kSuccess if decryption succeeded. The decrypted result is
|
| - // put in |decrypted_buffer|. If |encrypted_buffer| is empty, the
|
| - // |decrypted_buffer| is set to an empty (EOS) buffer.
|
| - // Returns cdm::kNoKey if no decryption key was available. In this case
|
| - // |decrypted_buffer| should be ignored by the caller.
|
| - // Returns cdm::kDecryptError if any decryption error occurred. In this case
|
| - // |decrypted_buffer| should be ignored by the caller.
|
| - cdm::Status DecryptToMediaDecoderBuffer(
|
| - const cdm::InputBuffer& encrypted_buffer,
|
| - scoped_refptr<media::DecoderBuffer>* decrypted_buffer);
|
| -
|
| -#if defined(CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER)
|
| - int64 CurrentTimeStampInMicroseconds() const;
|
| -
|
| - // Generates fake video frames with |duration_in_microseconds|.
|
| - // Returns the number of samples generated in the |audio_frames|.
|
| - int GenerateFakeAudioFramesFromDuration(int64 duration_in_microseconds,
|
| - cdm::AudioFrames* audio_frames) const;
|
| -
|
| - // Generates fake video frames given |input_timestamp|.
|
| - // Returns cdm::kSuccess if any audio frame is successfully generated.
|
| - cdm::Status GenerateFakeAudioFrames(int64 timestamp_in_microseconds,
|
| - cdm::AudioFrames* audio_frames);
|
| -#endif // CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER
|
| -
|
| - Client client_;
|
| - media::AesDecryptor decryptor_;
|
| -
|
| - // Protects the |client_| from being accessed by the |decryptor_|
|
| - // simultaneously.
|
| - base::Lock client_lock_;
|
| -
|
| - cdm::Host* host_;
|
| -
|
| - std::string heartbeat_session_id_;
|
| - std::string next_heartbeat_message_;
|
| -
|
| - // Timer delay in milliseconds for the next host_->SetTimer() call.
|
| - int64 timer_delay_ms_;
|
| -
|
| - // Indicates whether a timer has been set to prevent multiple timers from
|
| - // running.
|
| - bool timer_set_;
|
| -
|
| -#if defined(CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER)
|
| - int channel_count_;
|
| - int bits_per_channel_;
|
| - int samples_per_second_;
|
| - int64 output_timestamp_base_in_microseconds_;
|
| - int total_samples_generated_;
|
| -#endif // CLEAR_KEY_CDM_USE_FAKE_AUDIO_DECODER
|
| -
|
| -#if defined(CLEAR_KEY_CDM_USE_FFMPEG_DECODER)
|
| - scoped_ptr<FFmpegCdmAudioDecoder> audio_decoder_;
|
| -#endif // CLEAR_KEY_CDM_USE_FFMPEG_DECODER
|
| -
|
| - scoped_ptr<CdmVideoDecoder> video_decoder_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ClearKeyCdm);
|
| -};
|
| -
|
| -} // namespace webkit_media
|
| -
|
| -#endif // WEBKIT_RENDERER_MEDIA_CRYPTO_PPAPI_CLEAR_KEY_CDM_H_
|
|
|