aboutsummaryrefslogtreecommitdiff
path: root/talk/app/webrtc/java/jni/native_handle_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'talk/app/webrtc/java/jni/native_handle_impl.cc')
-rw-r--r--talk/app/webrtc/java/jni/native_handle_impl.cc36
1 files changed, 32 insertions, 4 deletions
diff --git a/talk/app/webrtc/java/jni/native_handle_impl.cc b/talk/app/webrtc/java/jni/native_handle_impl.cc
index ed9ad8e891..ac3e0455df 100644
--- a/talk/app/webrtc/java/jni/native_handle_impl.cc
+++ b/talk/app/webrtc/java/jni/native_handle_impl.cc
@@ -31,9 +31,9 @@
namespace webrtc_jni {
-NativeHandleImpl::NativeHandleImpl(JNIEnv* jni,
- jint j_oes_texture_id,
- jfloatArray j_transform_matrix)
+NativeTextureHandleImpl::NativeTextureHandleImpl(JNIEnv* jni,
+ jint j_oes_texture_id,
+ jfloatArray j_transform_matrix)
: oes_texture_id(j_oes_texture_id) {
RTC_CHECK_EQ(16, jni->GetArrayLength(j_transform_matrix));
jfloat* transform_matrix_ptr =
@@ -44,10 +44,38 @@ NativeHandleImpl::NativeHandleImpl(JNIEnv* jni,
jni->ReleaseFloatArrayElements(j_transform_matrix, transform_matrix_ptr, 0);
}
+NativeHandleImpl::NativeHandleImpl() : texture_object_(NULL), texture_id_(-1) {}
+
+void* NativeHandleImpl::GetHandle() {
+ return texture_object_;
+}
+
+int NativeHandleImpl::GetTextureId() {
+ return texture_id_;
+}
+
+void NativeHandleImpl::SetTextureObject(void* texture_object, int texture_id) {
+ texture_object_ = reinterpret_cast<jobject>(texture_object);
+ texture_id_ = texture_id;
+}
+
+JniNativeHandleBuffer::JniNativeHandleBuffer(void* native_handle,
+ int width,
+ int height)
+ : NativeHandleBuffer(native_handle, width, height) {}
+
+rtc::scoped_refptr<webrtc::VideoFrameBuffer>
+JniNativeHandleBuffer::NativeToI420Buffer() {
+ // TODO(pbos): Implement before using this in the encoder pipeline (or
+ // remove the RTC_CHECK() in VideoCapture).
+ RTC_NOTREACHED();
+ return nullptr;
+}
+
AndroidTextureBuffer::AndroidTextureBuffer(
int width,
int height,
- const NativeHandleImpl& native_handle,
+ const NativeTextureHandleImpl& native_handle,
const rtc::Callback0<void>& no_longer_used)
: webrtc::NativeHandleBuffer(&native_handle_, width, height),
native_handle_(native_handle),