From fef85ef152ab176fd96dbe3047c8025136fa8560 Mon Sep 17 00:00:00 2001 From: Ashok Bhat Date: Wed, 5 Mar 2014 15:06:05 +0000 Subject: [PATCH] Cast CallVoidMethod's size_t parameters to jint offset and size variables are passed to set method of MediaCodec.BufferInfo java class. The corresponding actual parameters of set method are of int type in java. These variables are expected to fit in jint as they indicate the offset and size of data in a media codec buffer. The variables are cast to jint, prior to passing to java method, to avoid problems caused by automatic type promotion of parameters when passed to a variadic function, CallVoidMethod. Change-Id: I39e202306f1b7122448c947f6d275f00251bb33a Signed-off-by: Ashok Bhat --- media/jni/android_media_MediaCodec.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 221ea57f8ed8c..5fd5dee6b2c7c 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -192,7 +192,7 @@ status_t JMediaCodec::dequeueOutputBuffer( env, env->FindClass("android/media/MediaCodec$BufferInfo")); jmethodID method = env->GetMethodID(clazz.get(), "set", "(IIJI)V"); - env->CallVoidMethod(bufferInfo, method, offset, size, timeUs, flags); + env->CallVoidMethod(bufferInfo, method, (jint)offset, (jint)size, timeUs, flags); return OK; }