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

Side by Side Diff: media/cdm/ppapi/external_clear_key/clear_key_cdm.cc

Issue 1471043004: Convert various vector_as_array calls to vector::data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « media/cdm/cenc_utils.cc ('k') | media/cdm/proxy_decryptor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/cdm/ppapi/external_clear_key/clear_key_cdm.h" 5 #include "media/cdm/ppapi/external_clear_key/clear_key_cdm.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 #include <sstream> 9 #include <sstream>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/stl_util.h"
14 #include "base/time/time.h" 13 #include "base/time/time.h"
15 #include "base/trace_event/trace_event.h" 14 #include "base/trace_event/trace_event.h"
16 #include "media/base/cdm_callback_promise.h" 15 #include "media/base/cdm_callback_promise.h"
17 #include "media/base/cdm_key_information.h" 16 #include "media/base/cdm_key_information.h"
18 #include "media/base/decoder_buffer.h" 17 #include "media/base/decoder_buffer.h"
19 #include "media/base/decrypt_config.h" 18 #include "media/base/decrypt_config.h"
20 #include "media/base/key_systems.h" 19 #include "media/base/key_systems.h"
21 #include "media/cdm/json_web_key.h" 20 #include "media/cdm/json_web_key.h"
22 #include "media/cdm/ppapi/cdm_file_io_test.h" 21 #include "media/cdm/ppapi/cdm_file_io_test.h"
23 #include "media/cdm/ppapi/external_clear_key/cdm_video_decoder.h" 22 #include "media/cdm/ppapi/external_clear_key/cdm_video_decoder.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 196 }
198 197
199 // Shallow copy all the key information from |keys_info| into |keys_vector|. 198 // Shallow copy all the key information from |keys_info| into |keys_vector|.
200 // |keys_vector| is only valid for the lifetime of |keys_info| because it 199 // |keys_vector| is only valid for the lifetime of |keys_info| because it
201 // contains pointers into the latter. 200 // contains pointers into the latter.
202 void ConvertCdmKeysInfo(const std::vector<media::CdmKeyInformation*>& keys_info, 201 void ConvertCdmKeysInfo(const std::vector<media::CdmKeyInformation*>& keys_info,
203 std::vector<cdm::KeyInformation>* keys_vector) { 202 std::vector<cdm::KeyInformation>* keys_vector) {
204 keys_vector->reserve(keys_info.size()); 203 keys_vector->reserve(keys_info.size());
205 for (const auto& key_info : keys_info) { 204 for (const auto& key_info : keys_info) {
206 cdm::KeyInformation key; 205 cdm::KeyInformation key;
207 key.key_id = vector_as_array(&key_info->key_id); 206 key.key_id = key_info->key_id.data();
208 key.key_id_size = key_info->key_id.size(); 207 key.key_id_size = key_info->key_id.size();
209 key.status = ConvertKeyStatus(key_info->status); 208 key.status = ConvertKeyStatus(key_info->status);
210 key.system_code = key_info->system_code; 209 key.system_code = key_info->system_code;
211 keys_vector->push_back(key); 210 keys_vector->push_back(key);
212 } 211 }
213 } 212 }
214 213
215 void INITIALIZE_CDM_MODULE() { 214 void INITIALIZE_CDM_MODULE() {
216 DVLOG(1) << __FUNCTION__; 215 DVLOG(1) << __FUNCTION__;
217 #if defined(CLEAR_KEY_CDM_USE_FFMPEG_DECODER) 216 #if defined(CLEAR_KEY_CDM_USE_FFMPEG_DECODER)
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 } 739 }
741 740
742 // Loadable session has already been created, so pass this event on, 741 // Loadable session has already been created, so pass this event on,
743 // using the session_id callers expect to see. 742 // using the session_id callers expect to see.
744 new_session_id = std::string(kLoadableSessionId); 743 new_session_id = std::string(kLoadableSessionId);
745 } 744 }
746 745
747 std::vector<cdm::KeyInformation> keys_vector; 746 std::vector<cdm::KeyInformation> keys_vector;
748 ConvertCdmKeysInfo(keys_info.get(), &keys_vector); 747 ConvertCdmKeysInfo(keys_info.get(), &keys_vector);
749 host_->OnSessionKeysChange(new_session_id.data(), new_session_id.length(), 748 host_->OnSessionKeysChange(new_session_id.data(), new_session_id.length(),
750 has_additional_usable_key, 749 has_additional_usable_key, keys_vector.data(),
751 vector_as_array(&keys_vector), keys_vector.size()); 750 keys_vector.size());
752 } 751 }
753 752
754 void ClearKeyCdm::OnSessionClosed(const std::string& session_id) { 753 void ClearKeyCdm::OnSessionClosed(const std::string& session_id) {
755 std::string new_session_id = session_id; 754 std::string new_session_id = session_id;
756 if (new_session_id == session_id_for_emulated_loadsession_) 755 if (new_session_id == session_id_for_emulated_loadsession_)
757 new_session_id = std::string(kLoadableSessionId); 756 new_session_id = std::string(kLoadableSessionId);
758 host_->OnSessionClosed(new_session_id.data(), new_session_id.length()); 757 host_->OnSessionClosed(new_session_id.data(), new_session_id.length());
759 } 758 }
760 759
761 void ClearKeyCdm::OnSessionCreated(uint32 promise_id, 760 void ClearKeyCdm::OnSessionCreated(uint32 promise_id,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 // TODO(jrummell): Once the order of events is fixed in the spec, either 804 // TODO(jrummell): Once the order of events is fixed in the spec, either
806 // require the keyschange event to have happened, or remove this code. 805 // require the keyschange event to have happened, or remove this code.
807 // http://crbug.com/448225 806 // http://crbug.com/448225
808 if (has_received_keys_change_event_for_emulated_loadsession_) { 807 if (has_received_keys_change_event_for_emulated_loadsession_) {
809 std::vector<cdm::KeyInformation> keys_vector; 808 std::vector<cdm::KeyInformation> keys_vector;
810 CdmKeysInfo keys_info; 809 CdmKeysInfo keys_info;
811 keys_info.swap(keys_info_for_emulated_loadsession_); 810 keys_info.swap(keys_info_for_emulated_loadsession_);
812 has_received_keys_change_event_for_emulated_loadsession_ = false; 811 has_received_keys_change_event_for_emulated_loadsession_ = false;
813 DCHECK(!keys_vector.empty()); 812 DCHECK(!keys_vector.empty());
814 ConvertCdmKeysInfo(keys_info.get(), &keys_vector); 813 ConvertCdmKeysInfo(keys_info.get(), &keys_vector);
815 host_->OnSessionKeysChange( 814 host_->OnSessionKeysChange(kLoadableSessionId, strlen(kLoadableSessionId),
816 kLoadableSessionId, strlen(kLoadableSessionId), !keys_vector.empty(), 815 !keys_vector.empty(), keys_vector.data(),
817 vector_as_array(&keys_vector), keys_vector.size()); 816 keys_vector.size());
818 } 817 }
819 } 818 }
820 819
821 void ClearKeyCdm::OnPromiseResolved(uint32 promise_id) { 820 void ClearKeyCdm::OnPromiseResolved(uint32 promise_id) {
822 host_->OnResolvePromise(promise_id); 821 host_->OnResolvePromise(promise_id);
823 } 822 }
824 823
825 void ClearKeyCdm::OnPromiseFailed(uint32 promise_id, 824 void ClearKeyCdm::OnPromiseFailed(uint32 promise_id,
826 MediaKeys::Exception exception_code, 825 MediaKeys::Exception exception_code,
827 uint32 system_code, 826 uint32 system_code,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 void ClearKeyCdm::OnFileIOTestComplete(bool success) { 901 void ClearKeyCdm::OnFileIOTestComplete(bool success) {
903 DVLOG(1) << __FUNCTION__ << ": " << success; 902 DVLOG(1) << __FUNCTION__ << ": " << success;
904 std::string message = GetFileIOTestResultMessage(success); 903 std::string message = GetFileIOTestResultMessage(success);
905 host_->OnSessionMessage(last_session_id_.data(), last_session_id_.length(), 904 host_->OnSessionMessage(last_session_id_.data(), last_session_id_.length(),
906 cdm::kLicenseRequest, message.data(), 905 cdm::kLicenseRequest, message.data(),
907 message.length(), NULL, 0); 906 message.length(), NULL, 0);
908 file_io_test_runner_.reset(); 907 file_io_test_runner_.reset();
909 } 908 }
910 909
911 } // namespace media 910 } // namespace media
OLDNEW
« no previous file with comments | « media/cdm/cenc_utils.cc ('k') | media/cdm/proxy_decryptor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698