Index: media/base/android/media_codec_bridge.cc |
diff --git a/media/base/android/media_codec_bridge.cc b/media/base/android/media_codec_bridge.cc |
index f076b218e1a6f3baf45eac97276dc656f4b7f0dd..a6d2d4b9970709c6caef7a374a09f194e99aac77 100644 |
--- a/media/base/android/media_codec_bridge.cc |
+++ b/media/base/android/media_codec_bridge.cc |
@@ -711,6 +711,18 @@ int64 AudioCodecBridge::PlayOutputBuffer(int index, size_t size) { |
env, media_codec(), byte_array.obj()); |
} |
+int64 AudioCodecBridge::PlayOutputBuffer(uint8* buffer, size_t size) { |
+ DCHECK(buffer); |
+ DCHECK_NE(0u, size); |
+ int numBytes = base::checked_cast<int>(size); |
+ JNIEnv* env = AttachCurrentThread(); |
+ |
+ ScopedJavaLocalRef<jbyteArray> byte_array = |
+ base::android::ToJavaByteArray(env, buffer, numBytes); |
+ return Java_MediaCodecBridge_playOutputBuffer(env, media_codec(), |
+ byte_array.obj()); |
+} |
+ |
void AudioCodecBridge::SetVolume(double volume) { |
JNIEnv* env = AttachCurrentThread(); |
Java_MediaCodecBridge_setVolume(env, media_codec(), volume); |