Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: remoting/client/ios/bridge/frame_consumer_bridge.cc

Issue 2829853003: Remove crufty bridge code from old CRD iOS app. (Closed)
Patch Set: Fix remoting/display proto import issue. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "remoting/client/ios/bridge/frame_consumer_bridge.h"
6
7 #include "base/bind.h"
8 #include "base/logging.h"
9 #include "base/memory/ptr_util.h"
10 #include "base/synchronization/waitable_event.h"
11 #include "remoting/base/util.h"
12 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
13
14 namespace remoting {
15
16 FrameConsumerBridge::FrameConsumerBridge(ClientInstance* client_instance,
17 const OnFrameCallback callback)
18 : callback_(callback), runtime_(client_instance), weak_factory_(this) {}
19
20 FrameConsumerBridge::~FrameConsumerBridge() {}
21
22 std::unique_ptr<webrtc::DesktopFrame> FrameConsumerBridge::AllocateFrame(
23 const webrtc::DesktopSize& size) {
24 return base::WrapUnique(new webrtc::BasicDesktopFrame(size));
25 }
26
27 void FrameConsumerBridge::RenderFrame(
28 std::unique_ptr<webrtc::DesktopFrame> frame) {
29 DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread());
30 // Draw the frame
31 callback_.Run(frame.get());
32 }
33
34 void FrameConsumerBridge::DrawFrame(std::unique_ptr<webrtc::DesktopFrame> frame,
35 const base::Closure& done) {
36 DCHECK(runtime_->network_task_runner()->BelongsToCurrentThread());
37
38 runtime_->display_task_runner()->PostTaskAndReply(
39 FROM_HERE, base::Bind(&FrameConsumerBridge::RenderFrame,
40 weak_factory_.GetWeakPtr(), base::Passed(&frame)),
41 base::Bind(&FrameConsumerBridge::OnFrameRendered,
42 weak_factory_.GetWeakPtr(), done));
43 }
44
45 void FrameConsumerBridge::OnFrameRendered(const base::Closure& done) {
46 DCHECK(runtime_->network_task_runner()->BelongsToCurrentThread());
47
48 if (!done.is_null())
49 done.Run();
50 }
51
52 FrameConsumerBridge::PixelFormat FrameConsumerBridge::GetPixelFormat() {
53 return FORMAT_RGBA;
54 }
55
56 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/ios/bridge/frame_consumer_bridge.h ('k') | remoting/client/ios/bridge/frame_consumer_bridge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698