| Index: remoting/client/jni/jni_frame_consumer.cc
|
| diff --git a/remoting/client/jni/jni_frame_consumer.cc b/remoting/client/jni/jni_frame_consumer.cc
|
| index 1e3fc0951e65ed73cc880feb51ba76b7097aeed2..71c9b148d8d9b4cc74e90fe64e70aafcbde85c54 100644
|
| --- a/remoting/client/jni/jni_frame_consumer.cc
|
| +++ b/remoting/client/jni/jni_frame_consumer.cc
|
| @@ -13,6 +13,7 @@
|
| #include "remoting/base/util.h"
|
| #include "remoting/client/jni/chromoting_jni_instance.h"
|
| #include "remoting/client/jni/chromoting_jni_runtime.h"
|
| +#include "remoting/client/jni/jni_client.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
|
| #include "ui/gfx/android/java_bitmap.h"
|
| @@ -21,7 +22,9 @@ namespace remoting {
|
|
|
| class JniFrameConsumer::Renderer {
|
| public:
|
| - Renderer(ChromotingJniRuntime* jni_runtime) : jni_runtime_(jni_runtime) {}
|
| + Renderer(ChromotingJniRuntime* jni_runtime, JniClient* jni_client) :
|
| + jni_runtime_(jni_runtime),
|
| + jni_client_(jni_client) {}
|
| ~Renderer() {
|
| DCHECK(jni_runtime_->display_task_runner()->BelongsToCurrentThread());
|
| }
|
| @@ -32,6 +35,8 @@ class JniFrameConsumer::Renderer {
|
| // Used to obtain task runner references and make calls to Java methods.
|
| ChromotingJniRuntime* jni_runtime_;
|
|
|
| + JniClient* jni_client_;
|
| +
|
| // This global reference is required, instead of a local reference, so it
|
| // remains valid for the lifetime of |bitmap_| - gfx::JavaBitmap does not
|
| // create its own global reference internally. And this global ref must be
|
| @@ -57,10 +62,10 @@ void JniFrameConsumer::Renderer::RenderFrame(
|
| bitmap_.reset();
|
| bitmap_global_ref_.Reset(
|
| env,
|
| - jni_runtime_->NewBitmap(frame->size().width(), frame->size().height())
|
| + jni_client_->NewBitmap(frame->size().width(), frame->size().height())
|
| .obj());
|
| bitmap_.reset(new gfx::JavaBitmap(bitmap_global_ref_.obj()));
|
| - jni_runtime_->UpdateFrameBitmap(bitmap_global_ref_.obj());
|
| + jni_client_->UpdateFrameBitmap(bitmap_global_ref_.obj());
|
| }
|
|
|
| // Copy pixels from |frame| into the Java Bitmap.
|
| @@ -79,12 +84,13 @@ void JniFrameConsumer::Renderer::RenderFrame(
|
| bitmap_->stride(), buffer_rect, i.rect());
|
| }
|
|
|
| - jni_runtime_->RedrawCanvas();
|
| + jni_client_->RedrawCanvas();
|
| }
|
|
|
| -JniFrameConsumer::JniFrameConsumer(ChromotingJniRuntime* jni_runtime)
|
| +JniFrameConsumer::JniFrameConsumer(ChromotingJniRuntime* jni_runtime,
|
| + JniClient* jni_client)
|
| : jni_runtime_(jni_runtime),
|
| - renderer_(new Renderer(jni_runtime)),
|
| + renderer_(new Renderer(jni_runtime, jni_client)),
|
| weak_factory_(this) {}
|
|
|
| JniFrameConsumer::~JniFrameConsumer() {
|
|
|