| Index: media/base/android/ndk_media_codec_bridge.cc
|
| diff --git a/media/base/android/ndk_media_codec_bridge.cc b/media/base/android/ndk_media_codec_bridge.cc
|
| index b7d757510c42d93e3aabb44cee96529b8812fd10..5fe8b5a9ca191310f4d38c1e52ef9bebc81bac30 100644
|
| --- a/media/base/android/ndk_media_codec_bridge.cc
|
| +++ b/media/base/android/ndk_media_codec_bridge.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/logging.h"
|
| #include "base/native_library.h"
|
| #include "base/strings/string_util.h"
|
| +#include "media/base/encryption_scheme.h"
|
| #include "media/base/subsample_entry.h"
|
|
|
| namespace {
|
| @@ -136,6 +137,7 @@ MediaCodecStatus NdkMediaCodecBridge::QueueSecureInputBuffer(
|
| const std::vector<char>& iv,
|
| const SubsampleEntry* subsamples,
|
| int subsamples_size,
|
| + const EncryptionScheme& encryption_scheme,
|
| base::TimeDelta presentation_time) {
|
| if (data_size >
|
| base::checked_cast<size_t>(std::numeric_limits<int32_t>::max())) {
|
| @@ -145,6 +147,9 @@ MediaCodecStatus NdkMediaCodecBridge::QueueSecureInputBuffer(
|
| return MEDIA_CODEC_ERROR;
|
| if (data && !FillInputBuffer(index, data, data_size))
|
| return MEDIA_CODEC_ERROR;
|
| + if (encryption_scheme.mode() != EncryptionScheme::CIPHER_MODE_AES_CTR ||
|
| + encryption_scheme.pattern().IsInEffect())
|
| + return MEDIA_CODEC_ERROR;
|
|
|
| int new_subsamples_size = subsamples_size == 0 ? 1 : subsamples_size;
|
| std::vector<size_t> clear_data, encrypted_data;
|
|
|