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 c39e0f9ca3e288f403602a9eb7b08c3668e18a0c..c13cf597f560943f07c1e56559765b79d5ee5bb8 100644 |
--- a/media/base/android/ndk_media_codec_bridge.cc |
+++ b/media/base/android/ndk_media_codec_bridge.cc |
@@ -136,6 +136,7 @@ MediaCodecStatus NdkMediaCodecBridge::QueueSecureInputBuffer( |
const std::vector<char>& iv, |
const SubsampleEntry* subsamples, |
int subsamples_size, |
+ const EncryptionScheme& encryption_scheme, |
const base::TimeDelta& presentation_time) { |
if (data_size > |
base::checked_cast<size_t>(std::numeric_limits<int32_t>::max())) { |
@@ -145,6 +146,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; |