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 3 // found in the LICENSE file. 4 5 #include "content/renderer/media/android/proxy_media_keys.h" 6 7 #include <vector> 8 9 #include "base/basictypes.h" 10 #include "base/logging.h" 11 #include "content/renderer/media/android/webmediaplayer_proxy_android.h" 12 #include "content/renderer/media/crypto/key_systems.h" 13 14 namespace content { 15 16 ProxyMediaKeys::ProxyMediaKeys(WebMediaPlayerProxyAndroid* proxy, 17 int media_keys_id) 18 : proxy_(proxy), media_keys_id_(media_keys_id) { 19 DCHECK(proxy_); 20 } 21 22 void ProxyMediaKeys::InitializeCDM(const std::string& key_system) { 23 std::vector<uint8> uuid = GetUUID(key_system); 24 DCHECK(!uuid.empty()); 25 proxy_->InitializeCDM(media_keys_id_, uuid); 26 } 27 28 bool ProxyMediaKeys::GenerateKeyRequest(const std::string& type, 29 const uint8* init_data, 30 int init_data_length) { 31 proxy_->GenerateKeyRequest( 32 media_keys_id_, 33 type, 34 std::vector<uint8>(init_data, init_data + init_data_length)); 35 return true; 36 } 37 38 void ProxyMediaKeys::AddKey(const uint8* key, int key_length, 39 const uint8* init_data, int init_data_length, 40 const std::string& session_id) { 41 proxy_->AddKey(media_keys_id_, 42 std::vector<uint8>(key, key + key_length), 43 std::vector<uint8>(init_data, init_data + init_data_length), 44 session_id); 45 } 46 47 void ProxyMediaKeys::CancelKeyRequest(const std::string& session_id) { 48 proxy_->CancelKeyRequest(media_keys_id_, session_id); 49 } 50 51 } // namespace content 52