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

Side by Side Diff: webkit/media/crypto/ppapi_decryptor.cc

Issue 11226019: Encrypted Media: Replace DecryptorClient with key event callbacks. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 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 unified diff | Download patch
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 #include "webkit/media/crypto/ppapi_decryptor.h" 5 #include "webkit/media/crypto/ppapi_decryptor.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 void PpapiDecryptor::CancelDecrypt(StreamType stream_type) { 112 void PpapiDecryptor::CancelDecrypt(StreamType stream_type) {
113 DVLOG(1) << "CancelDecrypt() - stream_type: " << stream_type; 113 DVLOG(1) << "CancelDecrypt() - stream_type: " << stream_type;
114 // TODO(xhwang): Implement CancelDecrypt() in PluginInstance and call it here. 114 // TODO(xhwang): Implement CancelDecrypt() in PluginInstance and call it here.
115 } 115 }
116 116
117 void PpapiDecryptor::InitializeAudioDecoder( 117 void PpapiDecryptor::InitializeAudioDecoder(
118 scoped_ptr<media::AudioDecoderConfig> config, 118 scoped_ptr<media::AudioDecoderConfig> config,
119 const DecoderInitCB& init_cb, 119 const DecoderInitCB& init_cb,
120 const KeyAddedCB& key_added_cb) { 120 const OnKeyAddedCB& key_added_cb) {
121 if (!render_loop_proxy_->BelongsToCurrentThread()) { 121 if (!render_loop_proxy_->BelongsToCurrentThread()) {
122 render_loop_proxy_->PostTask(FROM_HERE, base::Bind( 122 render_loop_proxy_->PostTask(FROM_HERE, base::Bind(
123 &PpapiDecryptor::InitializeAudioDecoder, weak_this_, 123 &PpapiDecryptor::InitializeAudioDecoder, weak_this_,
124 base::Passed(&config), init_cb, key_added_cb)); 124 base::Passed(&config), init_cb, key_added_cb));
125 return; 125 return;
126 } 126 }
127 127
128 DVLOG(2) << "InitializeAudioDecoder()"; 128 DVLOG(2) << "InitializeAudioDecoder()";
129 DCHECK(config->is_encrypted()); 129 DCHECK(config->is_encrypted());
130 DCHECK(config->IsValidConfig()); 130 DCHECK(config->IsValidConfig());
(...skipping 10 matching lines...) Expand all
141 base::ResetAndReturn(&audio_decoder_init_cb_).Run(false); 141 base::ResetAndReturn(&audio_decoder_init_cb_).Run(false);
142 #if 0 142 #if 0
143 return; 143 return;
144 } 144 }
145 #endif 145 #endif
146 } 146 }
147 147
148 void PpapiDecryptor::InitializeVideoDecoder( 148 void PpapiDecryptor::InitializeVideoDecoder(
149 scoped_ptr<media::VideoDecoderConfig> config, 149 scoped_ptr<media::VideoDecoderConfig> config,
150 const DecoderInitCB& init_cb, 150 const DecoderInitCB& init_cb,
151 const KeyAddedCB& key_added_cb) { 151 const OnKeyAddedCB& key_added_cb) {
152 if (!render_loop_proxy_->BelongsToCurrentThread()) { 152 if (!render_loop_proxy_->BelongsToCurrentThread()) {
153 render_loop_proxy_->PostTask(FROM_HERE, base::Bind( 153 render_loop_proxy_->PostTask(FROM_HERE, base::Bind(
154 &PpapiDecryptor::InitializeVideoDecoder, weak_this_, 154 &PpapiDecryptor::InitializeVideoDecoder, weak_this_,
155 base::Passed(&config), init_cb, key_added_cb)); 155 base::Passed(&config), init_cb, key_added_cb));
156 return; 156 return;
157 } 157 }
158 158
159 DVLOG(2) << "InitializeVideoDecoder()"; 159 DVLOG(2) << "InitializeVideoDecoder()";
160 DCHECK(config->is_encrypted()); 160 DCHECK(config->is_encrypted());
161 DCHECK(config->IsValidConfig()); 161 DCHECK(config->IsValidConfig());
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 cdm_plugin_->DeinitializeDecoder(); 226 cdm_plugin_->DeinitializeDecoder();
227 } 227 }
228 228
229 void PpapiDecryptor::ReportFailureToCallPlugin(const std::string& key_system, 229 void PpapiDecryptor::ReportFailureToCallPlugin(const std::string& key_system,
230 const std::string& session_id) { 230 const std::string& session_id) {
231 DVLOG(1) << "Failed to call plugin."; 231 DVLOG(1) << "Failed to call plugin.";
232 client_->KeyError(key_system, session_id, kUnknownError, 0); 232 client_->KeyError(key_system, session_id, kUnknownError, 0);
233 } 233 }
234 234
235 void PpapiDecryptor::OnDecoderInitialized(StreamType stream_type, 235 void PpapiDecryptor::OnDecoderInitialized(StreamType stream_type,
236 const KeyAddedCB& key_added_cb, 236 const OnKeyAddedCB& key_added_cb,
237 bool success) { 237 bool success) {
238 DCHECK(!key_added_cb.is_null()); 238 DCHECK(!key_added_cb.is_null());
239 239
240 switch (stream_type) { 240 switch (stream_type) {
241 case kAudio: 241 case kAudio:
242 DCHECK(audio_key_added_cb_.is_null()); 242 DCHECK(audio_key_added_cb_.is_null());
243 DCHECK(!audio_decoder_init_cb_.is_null()); 243 DCHECK(!audio_decoder_init_cb_.is_null());
244 if (success) 244 if (success)
245 audio_key_added_cb_ = key_added_cb; 245 audio_key_added_cb_ = key_added_cb;
246 base::ResetAndReturn(&audio_decoder_init_cb_).Run(success); 246 base::ResetAndReturn(&audio_decoder_init_cb_).Run(success);
247 break; 247 break;
248 248
249 case kVideo: 249 case kVideo:
250 DCHECK(video_key_added_cb_.is_null()); 250 DCHECK(video_key_added_cb_.is_null());
251 DCHECK(!video_decoder_init_cb_.is_null()); 251 DCHECK(!video_decoder_init_cb_.is_null());
252 if (success) 252 if (success)
253 video_key_added_cb_ = key_added_cb; 253 video_key_added_cb_ = key_added_cb;
254 base::ResetAndReturn(&video_decoder_init_cb_).Run(success); 254 base::ResetAndReturn(&video_decoder_init_cb_).Run(success);
255 break; 255 break;
256 256
257 default: 257 default:
258 NOTREACHED(); 258 NOTREACHED();
259 } 259 }
260 } 260 }
261 261
262 } // namespace webkit_media 262 } // namespace webkit_media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698