| Index: talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| index bf0f0066294c5c9d77a5ebabc0ef2bf5d16a788b..b5134b9096c7f61648e50e955c4de58662aa826c 100644
|
| --- a/talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| +++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| @@ -746,10 +746,10 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
| j_frame_class_(jni,
|
| FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")),
|
| j_i420_frame_ctor_id_(GetMethodID(
|
| - jni, *j_frame_class_, "<init>", "(III[I[Ljava/nio/ByteBuffer;)V")),
|
| + jni, *j_frame_class_, "<init>", "(III[I[Ljava/nio/ByteBuffer;J)V")),
|
| j_texture_frame_ctor_id_(GetMethodID(
|
| jni, *j_frame_class_, "<init>",
|
| - "(IIILjava/lang/Object;I)V")),
|
| + "(IIILjava/lang/Object;IJ)V")),
|
| j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")),
|
| can_apply_rotation_set_(false),
|
| can_apply_rotation_(false) {
|
| @@ -817,7 +817,7 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
| *j_frame_class_, j_i420_frame_ctor_id_,
|
| frame->GetWidth(), frame->GetHeight(),
|
| static_cast<int>(frame->GetVideoRotation()),
|
| - strides, planes);
|
| + strides, planes, frame);
|
| }
|
|
|
| // Return a VideoRenderer.I420Frame referring texture object in |frame|.
|
| @@ -830,7 +830,7 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
| *j_frame_class_, j_texture_frame_ctor_id_,
|
| frame->GetWidth(), frame->GetHeight(),
|
| static_cast<int>(frame->GetVideoRotation()),
|
| - texture_object, texture_id);
|
| + texture_object, texture_id, frame);
|
| }
|
|
|
| JNIEnv* jni() {
|
| @@ -954,6 +954,17 @@ JOW(void, VideoRenderer_freeWrappedVideoRenderer)(JNIEnv*, jclass, jlong j_p) {
|
| delete reinterpret_cast<JavaVideoRendererWrapper*>(j_p);
|
| }
|
|
|
| +JOW(long, VideoRenderer_shallowCopyNativeFrame)(
|
| + JNIEnv* jni, jclass, jlong j_frame_ptr) {
|
| + return reinterpret_cast<long>(
|
| + reinterpret_cast<const cricket::VideoFrame*>(j_frame_ptr)->Copy());
|
| +}
|
| +
|
| +JOW(void, VideoRenderer_releaseNativeFrame)(
|
| + JNIEnv* jni, jclass, jlong j_frame_ptr) {
|
| + delete reinterpret_cast<const cricket::VideoFrame*>(j_frame_ptr);
|
| +}
|
| +
|
| JOW(void, MediaStreamTrack_free)(JNIEnv*, jclass, jlong j_p) {
|
| CHECK_RELEASE(reinterpret_cast<MediaStreamTrackInterface*>(j_p));
|
| }
|
|
|