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

Side by Side Diff: webkit/plugins/ppapi/content_decryptor_delegate.h

Issue 11411053: Reuse PPB_Buffer_Impl in ContentDecryptorDelegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_ 5 #ifndef WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
6 #define WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_ 6 #define WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "media/base/decryptor.h" 13 #include "media/base/decryptor.h"
14 #include "ppapi/c/private/pp_content_decryptor.h" 14 #include "ppapi/c/private/pp_content_decryptor.h"
15 #include "ppapi/c/private/ppp_content_decryptor_private.h" 15 #include "ppapi/c/private/ppp_content_decryptor_private.h"
16 #include "ppapi/shared_impl/scoped_pp_resource.h"
16 #include "webkit/plugins/webkit_plugins_export.h" 17 #include "webkit/plugins/webkit_plugins_export.h"
17 18
18 namespace media { 19 namespace media {
19 class AudioDecoderConfig; 20 class AudioDecoderConfig;
20 class DecoderBuffer; 21 class DecoderBuffer;
21 class DecryptorClient; 22 class DecryptorClient;
22 class VideoDecoderConfig; 23 class VideoDecoderConfig;
23 } 24 }
24 25
25 namespace webkit { 26 namespace webkit {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 uint32_t request_id); 91 uint32_t request_id);
91 void DeliverFrame(PP_Resource decrypted_frame, 92 void DeliverFrame(PP_Resource decrypted_frame,
92 const PP_DecryptedFrameInfo* frame_info); 93 const PP_DecryptedFrameInfo* frame_info);
93 void DeliverSamples(PP_Resource audio_frames, 94 void DeliverSamples(PP_Resource audio_frames,
94 const PP_DecryptedBlockInfo* block_info); 95 const PP_DecryptedBlockInfo* block_info);
95 96
96 private: 97 private:
97 // Cancels the pending decrypt-and-decode callback for |stream_type|. 98 // Cancels the pending decrypt-and-decode callback for |stream_type|.
98 void CancelDecode(media::Decryptor::StreamType stream_type); 99 void CancelDecode(media::Decryptor::StreamType stream_type);
99 100
101 // Fills |resource| with a PP_Resource containing a PPB_Buffer_Impl and
102 // copies |data| into the buffer resource. This method reuses
ddorwin 2012/11/17 02:07:38 Why "create" and copy in a single function? First,
xhwang 2012/11/18 00:10:33 This memcpy is for input, which is usually small.
103 // |audio_input_resource_| and |video_input_resource_| to reduce the latency
104 // in requesting new PPB_Buffer_Impl resources. The caller must make sure that
105 // |audio_input_resource_| or |video_input_resource_| is available before
106 // calling this method.
107 // If |data| is NULL, fills |resource| with a PP_Resource with ID of 0.
108 // Returns true upon success and false if any error happened.
109 bool MakeMediaBufferResource(media::Decryptor::StreamType stream_type,
110 const uint8* data, int size,
111 ::ppapi::ScopedPPResource* resource);
112
100 const PP_Instance pp_instance_; 113 const PP_Instance pp_instance_;
101 const PPP_ContentDecryptor_Private* const plugin_decryption_interface_; 114 const PPP_ContentDecryptor_Private* const plugin_decryption_interface_;
102 115
103 media::DecryptorClient* decryptor_client_; 116 media::DecryptorClient* decryptor_client_;
104 117
105 // Request ID for tracking pending content decryption callbacks. 118 // Request ID for tracking pending content decryption callbacks.
106 // Note that zero indicates an invalid request ID. 119 // Note that zero indicates an invalid request ID.
107 // TODO(xhwang): Add completion callbacks for Reset/Stop and remove the use 120 // TODO(xhwang): Add completion callbacks for Reset/Stop and remove the use
108 // of request IDs. 121 // of request IDs.
109 uint32_t next_decryption_request_id_; 122 uint32_t next_decryption_request_id_;
110 123
111 uint32_t pending_audio_decrypt_request_id_; 124 uint32_t pending_audio_decrypt_request_id_;
112 media::Decryptor::DecryptCB pending_audio_decrypt_cb_; 125 media::Decryptor::DecryptCB pending_audio_decrypt_cb_;
113 126
114 uint32_t pending_video_decrypt_request_id_; 127 uint32_t pending_video_decrypt_request_id_;
115 media::Decryptor::DecryptCB pending_video_decrypt_cb_; 128 media::Decryptor::DecryptCB pending_video_decrypt_cb_;
116 129
117 uint32_t pending_audio_decoder_init_request_id_; 130 uint32_t pending_audio_decoder_init_request_id_;
118 media::Decryptor::DecoderInitCB pending_audio_decoder_init_cb_; 131 media::Decryptor::DecoderInitCB pending_audio_decoder_init_cb_;
119 132
120 uint32_t pending_video_decoder_init_request_id_; 133 uint32_t pending_video_decoder_init_request_id_;
121 media::Decryptor::DecoderInitCB pending_video_decoder_init_cb_; 134 media::Decryptor::DecoderInitCB pending_video_decoder_init_cb_;
122 135
123 uint32_t pending_audio_decode_request_id_; 136 uint32_t pending_audio_decode_request_id_;
124 media::Decryptor::AudioDecodeCB pending_audio_decode_cb_; 137 media::Decryptor::AudioDecodeCB pending_audio_decode_cb_;
125 138
126 uint32_t pending_video_decode_request_id_; 139 uint32_t pending_video_decode_request_id_;
127 media::Decryptor::VideoDecodeCB pending_video_decode_cb_; 140 media::Decryptor::VideoDecodeCB pending_video_decode_cb_;
128 141
142 // ScopedPPResource for audio and video input buffers.
ddorwin 2012/11/17 02:07:38 Maybe add // See MakeMediaBufferResource. for an
xhwang 2012/11/18 00:10:33 Done.
143 ::ppapi::ScopedPPResource audio_input_resource_;
144 int audio_input_resource_size_;
145 ::ppapi::ScopedPPResource video_input_resource_;
146 int video_input_resource_size_;
147
129 DISALLOW_COPY_AND_ASSIGN(ContentDecryptorDelegate); 148 DISALLOW_COPY_AND_ASSIGN(ContentDecryptorDelegate);
130 }; 149 };
131 150
132 } // namespace ppapi 151 } // namespace ppapi
133 } // namespace webkit 152 } // namespace webkit
134 153
135 #endif // WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_ 154 #endif // WEBKIT_PLUGINS_PPAPI_CONTENT_DECRYPTOR_DELEGATE_H_
OLDNEW
« no previous file with comments | « no previous file | webkit/plugins/ppapi/content_decryptor_delegate.cc » ('j') | webkit/plugins/ppapi/content_decryptor_delegate.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698