| 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 8f8cfc6e9760d7d7ec1a92094e18b07c1ac43f1c..10450525f76f18a0451018b7c3452a7ebc738c5f 100644
|
| --- a/remoting/client/jni/jni_frame_consumer.cc
|
| +++ b/remoting/client/jni/jni_frame_consumer.cc
|
| @@ -11,34 +11,6 @@
|
| #include "remoting/client/jni/chromoting_jni_runtime.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
|
|
|
| -namespace {
|
| -
|
| -// Allocates its buffer within a Java direct byte buffer, where it can be
|
| -// accessed by both native and managed code.
|
| -class DirectDesktopFrame : public webrtc::BasicDesktopFrame {
|
| - public:
|
| - DirectDesktopFrame(int width, int height);
|
| -
|
| - virtual ~DirectDesktopFrame();
|
| -
|
| - jobject buffer() const {
|
| - return buffer_;
|
| - }
|
| -
|
| - private:
|
| - jobject buffer_;
|
| -};
|
| -
|
| -DirectDesktopFrame::DirectDesktopFrame(int width, int height)
|
| - : webrtc::BasicDesktopFrame(webrtc::DesktopSize(width, height)) {
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - buffer_ = env->NewDirectByteBuffer(data(), stride()*height);
|
| -}
|
| -
|
| -DirectDesktopFrame::~DirectDesktopFrame() {}
|
| -
|
| -} // namespace
|
| -
|
| namespace remoting {
|
|
|
| JniFrameConsumer::JniFrameConsumer(ChromotingJniRuntime* jni_runtime)
|
| @@ -69,7 +41,9 @@ void JniFrameConsumer::ApplyBuffer(const SkISize& view_size,
|
| DCHECK(jni_runtime_->display_task_runner()->BelongsToCurrentThread());
|
|
|
| scoped_ptr<webrtc::DesktopFrame> buffer_scoped(buffer);
|
| - jni_runtime_->RedrawCanvas();
|
| +
|
| + jni_runtime_->UpdateImageBuffer(view_size.width(), view_size.height(),
|
| + buffer->data());
|
|
|
| if (view_size.width() > view_size_.width() ||
|
| view_size.height() > view_size_.height()) {
|
| @@ -118,14 +92,8 @@ void JniFrameConsumer::AllocateBuffer() {
|
| return;
|
| }
|
|
|
| - DirectDesktopFrame* buffer = new DirectDesktopFrame(view_size_.width(),
|
| - view_size_.height());
|
| -
|
| - // Update Java's reference to the buffer and record of its dimensions.
|
| - jni_runtime_->UpdateImageBuffer(view_size_.width(),
|
| - view_size_.height(),
|
| - buffer->buffer());
|
| -
|
| + webrtc::DesktopSize size(view_size_.width(), view_size_.height());
|
| + webrtc::DesktopFrame* buffer = new webrtc::BasicDesktopFrame(size);
|
| frame_producer_->DrawBuffer(buffer);
|
| }
|
| }
|
|
|