| 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..c326ccff6bede1e3e93e5605be72be86a672df7d 100644
|
| --- a/talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| +++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc
|
| @@ -740,9 +740,6 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
| j_render_frame_id_(GetMethodID(
|
| jni, GetObjectClass(jni, j_callbacks), "renderFrame",
|
| "(Lorg/webrtc/VideoRenderer$I420Frame;)V")),
|
| - j_can_apply_rotation_id_(GetMethodID(
|
| - jni, GetObjectClass(jni, j_callbacks),
|
| - "canApplyRotation", "()Z")),
|
| j_frame_class_(jni,
|
| FindClass(jni, "org/webrtc/VideoRenderer$I420Frame")),
|
| j_i420_frame_ctor_id_(GetMethodID(
|
| @@ -750,9 +747,7 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
| j_texture_frame_ctor_id_(GetMethodID(
|
| jni, *j_frame_class_, "<init>",
|
| "(IIILjava/lang/Object;I)V")),
|
| - j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")),
|
| - can_apply_rotation_set_(false),
|
| - can_apply_rotation_(false) {
|
| + j_byte_buffer_class_(jni, FindClass(jni, "java/nio/ByteBuffer")) {
|
| CHECK_EXCEPTION(jni);
|
| }
|
|
|
| @@ -760,38 +755,16 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
|
|
| void RenderFrame(const cricket::VideoFrame* video_frame) override {
|
| ScopedLocalRefFrame local_ref_frame(jni());
|
| -
|
| - // Calling CanApplyRotation here to ensure can_apply_rotation_ is set.
|
| - CanApplyRotation();
|
| -
|
| - const cricket::VideoFrame* frame =
|
| - can_apply_rotation_ ? video_frame
|
| - : video_frame->GetCopyWithRotationApplied();
|
| - if (frame->GetNativeHandle() != NULL) {
|
| - jobject j_frame = CricketToJavaTextureFrame(frame);
|
| - jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
|
| - CHECK_EXCEPTION(jni());
|
| - } else {
|
| - jobject j_frame = CricketToJavaI420Frame(frame);
|
| - jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
|
| - CHECK_EXCEPTION(jni());
|
| - }
|
| + jobject j_frame = (video_frame->GetNativeHandle() != nullptr)
|
| + ? CricketToJavaTextureFrame(video_frame)
|
| + : CricketToJavaI420Frame(video_frame);
|
| + jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
|
| + CHECK_EXCEPTION(jni());
|
| }
|
|
|
| // TODO(guoweis): Report that rotation is supported as RenderFrame calls
|
| // GetCopyWithRotationApplied.
|
| - virtual bool CanApplyRotation() override {
|
| - if (can_apply_rotation_set_) {
|
| - return can_apply_rotation_;
|
| - }
|
| - ScopedLocalRefFrame local_ref_frame(jni());
|
| - jboolean ret =
|
| - jni()->CallBooleanMethod(*j_callbacks_, j_can_apply_rotation_id_);
|
| - CHECK_EXCEPTION(jni());
|
| - can_apply_rotation_ = ret;
|
| - can_apply_rotation_set_ = true;
|
| - return ret;
|
| - }
|
| + virtual bool CanApplyRotation() override { return true; }
|
|
|
| private:
|
| // Return a VideoRenderer.I420Frame referring to the data in |frame|.
|
| @@ -839,13 +812,10 @@ class JavaVideoRendererWrapper : public VideoRendererInterface {
|
|
|
| ScopedGlobalRef<jobject> j_callbacks_;
|
| jmethodID j_render_frame_id_;
|
| - jmethodID j_can_apply_rotation_id_;
|
| ScopedGlobalRef<jclass> j_frame_class_;
|
| jmethodID j_i420_frame_ctor_id_;
|
| jmethodID j_texture_frame_ctor_id_;
|
| ScopedGlobalRef<jclass> j_byte_buffer_class_;
|
| - bool can_apply_rotation_set_;
|
| - bool can_apply_rotation_;
|
| };
|
|
|
|
|
|
|