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

Side by Side Diff: media/base/android/media_codec_bridge.cc

Issue 2058113002: Add 'cbcs' encryption scheme support in Android media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/base/android/media_codec_bridge.h" 5 #include "media/base/android/media_codec_bridge.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "media/base/subsample_entry.h" 12 #include "media/base/subsample_entry.h"
13 13
14 namespace media { 14 namespace media {
15 15
16 MediaCodecBridge::MediaCodecBridge() {} 16 MediaCodecBridge::MediaCodecBridge() {}
17 17
18 MediaCodecBridge::~MediaCodecBridge() {} 18 MediaCodecBridge::~MediaCodecBridge() {}
19 19
20 MediaCodecStatus MediaCodecBridge::QueueSecureInputBuffer( 20 MediaCodecStatus MediaCodecBridge::QueueSecureInputBuffer(
21 int index, 21 int index,
22 const uint8_t* data, 22 const uint8_t* data,
23 size_t data_size, 23 size_t data_size,
24 const std::string& key_id, 24 const std::string& key_id,
25 const std::string& iv, 25 const std::string& iv,
26 const std::vector<SubsampleEntry>& subsamples, 26 const std::vector<SubsampleEntry>& subsamples,
27 const EncryptionScheme& encryption_scheme,
27 base::TimeDelta presentation_time) { 28 base::TimeDelta presentation_time) {
28 const std::vector<char> key_vec(key_id.begin(), key_id.end()); 29 const std::vector<char> key_vec(key_id.begin(), key_id.end());
29 const std::vector<char> iv_vec(iv.begin(), iv.end()); 30 const std::vector<char> iv_vec(iv.begin(), iv.end());
30 return QueueSecureInputBuffer(index, data, data_size, key_vec, iv_vec, 31 return QueueSecureInputBuffer(index, data, data_size, key_vec, iv_vec,
31 subsamples.empty() ? nullptr : &subsamples[0], 32 subsamples.empty() ? nullptr : &subsamples[0],
32 (int)subsamples.size(), presentation_time); 33 (int)subsamples.size(), encryption_scheme,
34 presentation_time);
33 } 35 }
34 36
35 MediaCodecStatus MediaCodecBridge::CopyFromOutputBuffer(int index, 37 MediaCodecStatus MediaCodecBridge::CopyFromOutputBuffer(int index,
36 size_t offset, 38 size_t offset,
37 void* dst, 39 void* dst,
38 size_t num) { 40 size_t num) {
39 const uint8_t* src_data = nullptr; 41 const uint8_t* src_data = nullptr;
40 size_t src_capacity = 0; 42 size_t src_capacity = 0;
41 MediaCodecStatus status = 43 MediaCodecStatus status =
42 GetOutputBufferAddress(index, offset, &src_data, &src_capacity); 44 GetOutputBufferAddress(index, offset, &src_data, &src_capacity);
(...skipping 19 matching lines...) Expand all
62 LOG(ERROR) << "Input buffer size " << size 64 LOG(ERROR) << "Input buffer size " << size
63 << " exceeds MediaCodec input buffer capacity: " << capacity; 65 << " exceeds MediaCodec input buffer capacity: " << capacity;
64 return false; 66 return false;
65 } 67 }
66 68
67 memcpy(dst, data, size); 69 memcpy(dst, data, size);
68 return true; 70 return true;
69 } 71 }
70 72
71 } // namespace media 73 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698