Expose functionality to convert TextureBuffer to I420.
Bug: webrtc:8392 Change-Id: I79682efbef3aecbba904aa5047b229833fae25e8 Reviewed-on: https://webrtc-review.googlesource.com/8940 Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20313}
This commit is contained in:
committed by
Commit Bot
parent
6bf43d2818
commit
cb98b11b71
@ -11,7 +11,8 @@
|
||||
#include "rtc_base/refcount.h"
|
||||
#include "sdk/android/src/jni/jni_helpers.h"
|
||||
|
||||
namespace webrtc_jni {
|
||||
namespace webrtc {
|
||||
namespace jni {
|
||||
|
||||
JNI_FUNCTION_DECLARATION(void,
|
||||
JniCommon_nativeAddRef,
|
||||
@ -31,4 +32,24 @@ JNI_FUNCTION_DECLARATION(void,
|
||||
->Release();
|
||||
}
|
||||
|
||||
} // namespace webrtc_jni
|
||||
JNI_FUNCTION_DECLARATION(jobject,
|
||||
JniCommon_allocateNativeByteBuffer,
|
||||
JNIEnv* jni,
|
||||
jclass,
|
||||
jint size) {
|
||||
void* new_data = ::operator new(size);
|
||||
jobject byte_buffer = jni->NewDirectByteBuffer(new_data, size);
|
||||
return byte_buffer;
|
||||
}
|
||||
|
||||
JNI_FUNCTION_DECLARATION(void,
|
||||
JniCommon_freeNativeByteBuffer,
|
||||
JNIEnv* jni,
|
||||
jclass,
|
||||
jobject byte_buffer) {
|
||||
void* data = jni->GetDirectBufferAddress(byte_buffer);
|
||||
::operator delete(data);
|
||||
}
|
||||
|
||||
} // namespace jni
|
||||
} // namespace webrtc
|
||||
|
||||
@ -306,6 +306,8 @@ rtc::scoped_refptr<I420BufferInterface> AndroidTextureBuffer::ToI420() {
|
||||
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
||||
ScopedLocalRefFrame local_ref_frame(jni);
|
||||
|
||||
// TODO(sakal): This call to a deperecated method will be removed when
|
||||
// AndroidTextureBuffer is removed.
|
||||
jmethodID transform_mid = GetMethodID(
|
||||
jni,
|
||||
GetObjectClass(jni, surface_texture_helper_),
|
||||
|
||||
@ -65,23 +65,5 @@ Java_org_webrtc_VideoFileRenderer_nativeI420Scale(JNIEnv* jni,
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
Java_org_webrtc_VideoFileRenderer_nativeCreateNativeByteBuffer(JNIEnv* jni,
|
||||
jclass,
|
||||
jint size) {
|
||||
void* new_data = ::operator new(size);
|
||||
jobject byte_buffer = jni->NewDirectByteBuffer(new_data, size);
|
||||
return byte_buffer;
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
Java_org_webrtc_VideoFileRenderer_nativeFreeNativeByteBuffer(
|
||||
JNIEnv* jni,
|
||||
jclass,
|
||||
jobject byte_buffer) {
|
||||
void* data = jni->GetDirectBufferAddress(byte_buffer);
|
||||
::operator delete(data);
|
||||
}
|
||||
|
||||
} // namespace jni
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user