Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: webkit/plugins/ppapi/content_decryptor_delegate.h

Issue 20165002: Move webkit/plugins/ppapi to content/renderer/pepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: more more clang fun Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/plugins/ppapi/common.h ('k') | webkit/plugins/ppapi/content_decryptor_delegate.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/content_decryptor_delegate.h
===================================================================
--- webkit/plugins/ppapi/content_decryptor_delegate.h (revision 213561)
+++ webkit/plugins/ppapi/content_decryptor_delegate.h (working copy)
@@ -1,195 +0,0 @@
-// Copyright (c) 2012 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_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
-#define WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
-
-#include <queue>
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "media/base/decryptor.h"
-#include "media/base/media_keys.h"
-#include "media/base/sample_format.h"
-#include "ppapi/c/private/pp_content_decryptor.h"
-#include "ppapi/c/private/ppp_content_decryptor_private.h"
-#include "ui/gfx/size.h"
-#include "webkit/plugins/webkit_plugins_export.h"
-
-namespace media {
-class AudioDecoderConfig;
-class DecoderBuffer;
-class VideoDecoderConfig;
-}
-
-namespace webkit {
-namespace ppapi {
-
-class PPB_Buffer_Impl;
-
-class WEBKIT_PLUGINS_EXPORT ContentDecryptorDelegate {
- public:
- // ContentDecryptorDelegate does not take ownership of
- // |plugin_decryption_interface|. Therefore |plugin_decryption_interface|
- // must outlive this object.
- ContentDecryptorDelegate(
- PP_Instance pp_instance,
- const PPP_ContentDecryptor_Private* plugin_decryption_interface);
-
- void Initialize(const std::string& key_system);
-
- void SetKeyEventCallbacks(const media::KeyAddedCB& key_added_cb,
- const media::KeyErrorCB& key_error_cb,
- const media::KeyMessageCB& key_message_cb);
-
- // Provides access to PPP_ContentDecryptor_Private.
- bool GenerateKeyRequest(const std::string& type,
- const uint8* init_data,
- int init_data_length);
- bool AddKey(const std::string& session_id,
- const uint8* key,
- int key_length,
- const uint8* init_data,
- int init_data_length);
- bool CancelKeyRequest(const std::string& session_id);
- bool Decrypt(media::Decryptor::StreamType stream_type,
- const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
- const media::Decryptor::DecryptCB& decrypt_cb);
- bool CancelDecrypt(media::Decryptor::StreamType stream_type);
- bool InitializeAudioDecoder(
- const media::AudioDecoderConfig& decoder_config,
- const media::Decryptor::DecoderInitCB& decoder_init_cb);
- bool InitializeVideoDecoder(
- const media::VideoDecoderConfig& decoder_config,
- const media::Decryptor::DecoderInitCB& decoder_init_cb);
- // TODO(tomfinegan): Add callback args for DeinitializeDecoder() and
- // ResetDecoder()
- bool DeinitializeDecoder(media::Decryptor::StreamType stream_type);
- bool ResetDecoder(media::Decryptor::StreamType stream_type);
- // Note: These methods can be used with unencrypted data.
- bool DecryptAndDecodeAudio(
- const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
- const media::Decryptor::AudioDecodeCB& audio_decode_cb);
- bool DecryptAndDecodeVideo(
- const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
- const media::Decryptor::VideoDecodeCB& video_decode_cb);
-
- // PPB_ContentDecryptor_Private dispatching methods.
- // TODO(ddorwin): Remove this method.
- void NeedKey(PP_Var key_system, PP_Var session_id, PP_Var init_data);
- // TODO(ddorwin): Remove key_system_var parameter from these methods.
- void KeyAdded(PP_Var key_system, PP_Var session_id);
- void KeyMessage(PP_Var key_system,
- PP_Var session_id,
- PP_Var message,
- PP_Var default_url);
- void KeyError(PP_Var key_system,
- PP_Var session_id,
- int32_t media_error,
- int32_t system_code);
- void DeliverBlock(PP_Resource decrypted_block,
- const PP_DecryptedBlockInfo* block_info);
- void DecoderInitializeDone(PP_DecryptorStreamType decoder_type,
- uint32_t request_id,
- PP_Bool success);
- void DecoderDeinitializeDone(PP_DecryptorStreamType decoder_type,
- uint32_t request_id);
- void DecoderResetDone(PP_DecryptorStreamType decoder_type,
- uint32_t request_id);
- void DeliverFrame(PP_Resource decrypted_frame,
- const PP_DecryptedFrameInfo* frame_info);
- void DeliverSamples(PP_Resource audio_frames,
- const PP_DecryptedBlockInfo* block_info);
-
- private:
- // Cancels the pending decrypt-and-decode callback for |stream_type|.
- void CancelDecode(media::Decryptor::StreamType stream_type);
-
- // Fills |resource| with a PPB_Buffer_Impl and copies the data from
- // |encrypted_buffer| into the buffer resource. This method reuses
- // |audio_input_resource_| and |video_input_resource_| to reduce the latency
- // in requesting new PPB_Buffer_Impl resources. The caller must make sure that
- // |audio_input_resource_| or |video_input_resource_| is available before
- // calling this method.
- //
- // An end of stream |encrypted_buffer| is represented as a null |resource|.
- //
- // Returns true upon success and false if any error happened.
- bool MakeMediaBufferResource(
- media::Decryptor::StreamType stream_type,
- const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
- scoped_refptr<PPB_Buffer_Impl>* resource);
-
- void FreeBuffer(uint32_t buffer_id);
-
- void SetBufferToFreeInTrackingInfo(PP_DecryptTrackingInfo* tracking_info);
-
- // Deserializes audio data stored in |audio_frames| into individual audio
- // buffers in |frames|. Returns true upon success.
- bool DeserializeAudioFrames(PP_Resource audio_frames,
- size_t data_size,
- media::Decryptor::AudioBuffers* frames);
-
- const PP_Instance pp_instance_;
- const PPP_ContentDecryptor_Private* const plugin_decryption_interface_;
-
- // TODO(ddorwin): Remove after updating the Pepper API to not use key system.
- std::string key_system_;
-
- // Callbacks for firing key events.
- media::KeyAddedCB key_added_cb_;
- media::KeyErrorCB key_error_cb_;
- media::KeyMessageCB key_message_cb_;
-
- gfx::Size natural_size_;
-
- // Request ID for tracking pending content decryption callbacks.
- // Note that zero indicates an invalid request ID.
- // TODO(xhwang): Add completion callbacks for Reset/Stop and remove the use
- // of request IDs.
- uint32_t next_decryption_request_id_;
-
- uint32_t pending_audio_decrypt_request_id_;
- media::Decryptor::DecryptCB pending_audio_decrypt_cb_;
-
- uint32_t pending_video_decrypt_request_id_;
- media::Decryptor::DecryptCB pending_video_decrypt_cb_;
-
- uint32_t pending_audio_decoder_init_request_id_;
- media::Decryptor::DecoderInitCB pending_audio_decoder_init_cb_;
-
- uint32_t pending_video_decoder_init_request_id_;
- media::Decryptor::DecoderInitCB pending_video_decoder_init_cb_;
-
- uint32_t pending_audio_decode_request_id_;
- media::Decryptor::AudioDecodeCB pending_audio_decode_cb_;
-
- uint32_t pending_video_decode_request_id_;
- media::Decryptor::VideoDecodeCB pending_video_decode_cb_;
-
- // Cached audio and video input buffers. See MakeMediaBufferResource.
- scoped_refptr<PPB_Buffer_Impl> audio_input_resource_;
- scoped_refptr<PPB_Buffer_Impl> video_input_resource_;
-
- std::queue<uint32_t> free_buffers_;
-
- base::WeakPtrFactory<ContentDecryptorDelegate> weak_ptr_factory_;
- base::WeakPtr<ContentDecryptorDelegate> weak_this_;
-
- // Keep track of audio parameters.
- media::SampleFormat audio_sample_format_;
- int audio_samples_per_second_;
- int audio_channel_count_;
- int audio_bytes_per_frame_;
-
- DISALLOW_COPY_AND_ASSIGN(ContentDecryptorDelegate);
-};
-
-} // namespace ppapi
-} // namespace webkit
-
-#endif // WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
« no previous file with comments | « webkit/plugins/ppapi/common.h ('k') | webkit/plugins/ppapi/content_decryptor_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698