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

Side by Side Diff: content/renderer/media/android/proxy_media_keys.cc

Issue 193523002: Encrypted Media: Implement IPC based SetCdm(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/renderer/media/android/proxy_media_keys.h" 5 #include "content/renderer/media/android/proxy_media_keys.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "content/renderer/media/android/renderer_media_player_manager.h" 11 #include "content/renderer/media/android/renderer_media_player_manager.h"
12 #include "content/renderer/media/crypto/key_systems.h" 12 #include "content/renderer/media/crypto/key_systems.h"
13 13
14 namespace content { 14 namespace content {
15 15
16 ProxyMediaKeys::ProxyMediaKeys( 16 ProxyMediaKeys::ProxyMediaKeys(
17 RendererMediaPlayerManager* manager, 17 RendererMediaPlayerManager* manager,
18 int cdm_id, 18 int cdm_id,
19 const media::SessionCreatedCB& session_created_cb, 19 const media::SessionCreatedCB& session_created_cb,
20 const media::SessionMessageCB& session_message_cb, 20 const media::SessionMessageCB& session_message_cb,
21 const media::SessionReadyCB& session_ready_cb, 21 const media::SessionReadyCB& session_ready_cb,
22 const media::SessionClosedCB& session_closed_cb, 22 const media::SessionClosedCB& session_closed_cb,
23 const media::SessionErrorCB& session_error_cb) 23 const media::SessionErrorCB& session_error_cb)
24 : manager_(manager), 24 : manager_(manager),
25 cdm_id_(cdm_id), 25 cdm_id_(cdm_id),
ddorwin 2014/03/11 18:05:14 Let's make this class responsible for initializing
xhwang 2014/03/12 01:07:52 Done.
26 session_created_cb_(session_created_cb), 26 session_created_cb_(session_created_cb),
27 session_message_cb_(session_message_cb), 27 session_message_cb_(session_message_cb),
28 session_ready_cb_(session_ready_cb), 28 session_ready_cb_(session_ready_cb),
29 session_closed_cb_(session_closed_cb), 29 session_closed_cb_(session_closed_cb),
30 session_error_cb_(session_error_cb) { 30 session_error_cb_(session_error_cb) {
31 DCHECK(manager_); 31 DCHECK(manager_);
32 DCHECK_NE(cdm_id, media::MediaKeys::kInvalidCdmId);
32 } 33 }
33 34
34 ProxyMediaKeys::~ProxyMediaKeys() { 35 ProxyMediaKeys::~ProxyMediaKeys() {
35 manager_->DestroyCdm(cdm_id_); 36 manager_->DestroyCdm(cdm_id_);
36 } 37 }
37 38
38 void ProxyMediaKeys::InitializeCdm(const std::string& key_system, 39 void ProxyMediaKeys::InitializeCdm(const std::string& key_system,
39 const GURL& frame_url) { 40 const GURL& frame_url) {
40 manager_->InitializeCdm(cdm_id_, this, key_system, frame_url); 41 manager_->InitializeCdm(cdm_id_, this, key_system, frame_url);
41 } 42 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 manager_->UpdateSession( 80 manager_->UpdateSession(
80 cdm_id_, 81 cdm_id_,
81 session_id, 82 session_id,
82 std::vector<uint8>(response, response + response_length)); 83 std::vector<uint8>(response, response + response_length));
83 } 84 }
84 85
85 void ProxyMediaKeys::ReleaseSession(uint32 session_id) { 86 void ProxyMediaKeys::ReleaseSession(uint32 session_id) {
86 manager_->ReleaseSession(cdm_id_, session_id); 87 manager_->ReleaseSession(cdm_id_, session_id);
87 } 88 }
88 89
90 int ProxyMediaKeys::GetCdmId() {
91 return cdm_id_;
92 }
93
89 void ProxyMediaKeys::OnSessionCreated(uint32 session_id, 94 void ProxyMediaKeys::OnSessionCreated(uint32 session_id,
90 const std::string& web_session_id) { 95 const std::string& web_session_id) {
91 session_created_cb_.Run(session_id, web_session_id); 96 session_created_cb_.Run(session_id, web_session_id);
92 } 97 }
93 98
94 void ProxyMediaKeys::OnSessionMessage(uint32 session_id, 99 void ProxyMediaKeys::OnSessionMessage(uint32 session_id,
95 const std::vector<uint8>& message, 100 const std::vector<uint8>& message,
96 const std::string& destination_url) { 101 const std::string& destination_url) {
97 session_message_cb_.Run(session_id, message, destination_url); 102 session_message_cb_.Run(session_id, message, destination_url);
98 } 103 }
99 104
100 void ProxyMediaKeys::OnSessionReady(uint32 session_id) { 105 void ProxyMediaKeys::OnSessionReady(uint32 session_id) {
101 session_ready_cb_.Run(session_id); 106 session_ready_cb_.Run(session_id);
102 } 107 }
103 108
104 void ProxyMediaKeys::OnSessionClosed(uint32 session_id) { 109 void ProxyMediaKeys::OnSessionClosed(uint32 session_id) {
105 session_closed_cb_.Run(session_id); 110 session_closed_cb_.Run(session_id);
106 } 111 }
107 112
108 void ProxyMediaKeys::OnSessionError(uint32 session_id, 113 void ProxyMediaKeys::OnSessionError(uint32 session_id,
109 media::MediaKeys::KeyError error_code, 114 media::MediaKeys::KeyError error_code,
110 uint32 system_code) { 115 uint32 system_code) {
111 session_error_cb_.Run(session_id, error_code, system_code); 116 session_error_cb_.Run(session_id, error_code, system_code);
112 } 117 }
113 118
114 } // namespace content 119 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698