Merge "Return codec buffers that are marked as having host endianness." into jb-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
eb194d5d3c
@@ -212,6 +212,25 @@ status_t JMediaCodec::getBuffers(
|
||||
}
|
||||
|
||||
jclass byteBufferClass = env->FindClass("java/nio/ByteBuffer");
|
||||
CHECK(byteBufferClass != NULL);
|
||||
|
||||
jmethodID orderID = env->GetMethodID(
|
||||
byteBufferClass,
|
||||
"order",
|
||||
"(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;");
|
||||
|
||||
CHECK(orderID != NULL);
|
||||
|
||||
jclass byteOrderClass = env->FindClass("java/nio/ByteOrder");
|
||||
CHECK(byteOrderClass != NULL);
|
||||
|
||||
jmethodID nativeOrderID = env->GetStaticMethodID(
|
||||
byteOrderClass, "nativeOrder", "()Ljava/nio/ByteOrder;");
|
||||
CHECK(nativeOrderID != NULL);
|
||||
|
||||
jobject nativeByteOrderObj =
|
||||
env->CallStaticObjectMethod(byteOrderClass, nativeOrderID);
|
||||
CHECK(nativeByteOrderObj != NULL);
|
||||
|
||||
*bufArray = (jobjectArray)env->NewObjectArray(
|
||||
buffers.size(), byteBufferClass, NULL);
|
||||
@@ -224,6 +243,11 @@ status_t JMediaCodec::getBuffers(
|
||||
buffer->base(),
|
||||
buffer->capacity());
|
||||
|
||||
jobject me = env->CallObjectMethod(
|
||||
byteBuffer, orderID, nativeByteOrderObj);
|
||||
env->DeleteLocalRef(me);
|
||||
me = NULL;
|
||||
|
||||
env->SetObjectArrayElement(
|
||||
*bufArray, i, byteBuffer);
|
||||
|
||||
@@ -231,6 +255,9 @@ status_t JMediaCodec::getBuffers(
|
||||
byteBuffer = NULL;
|
||||
}
|
||||
|
||||
env->DeleteLocalRef(nativeByteOrderObj);
|
||||
nativeByteOrderObj = NULL;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user