Index: remoting/protocol/fake_video_renderer.cc |
diff --git a/remoting/protocol/fake_video_renderer.cc b/remoting/protocol/fake_video_renderer.cc |
index faecf9b3555bbd88183f67e8a7346bf4dad3b04d..d30c4addbab027dedeaaf3c92a8dac2911056590 100644 |
--- a/remoting/protocol/fake_video_renderer.cc |
+++ b/remoting/protocol/fake_video_renderer.cc |
@@ -9,6 +9,7 @@ |
#include "base/callback.h" |
#include "base/logging.h" |
#include "remoting/proto/video.pb.h" |
+#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" |
namespace remoting { |
namespace protocol { |
@@ -16,10 +17,48 @@ namespace protocol { |
FakeVideoStub::FakeVideoStub() {} |
FakeVideoStub::~FakeVideoStub() {} |
+void FakeVideoStub::set_on_frame_callback(base::Closure on_frame_callback) { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ on_frame_callback_ = on_frame_callback; |
+} |
+ |
void FakeVideoStub::ProcessVideoPacket(scoped_ptr<VideoPacket> video_packet, |
const base::Closure& done) { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
received_packets_.push_back(std::move(video_packet)); |
- done.Run(); |
+ if (!done.is_null()) |
+ done.Run(); |
+ if (!on_frame_callback_.is_null()) |
+ on_frame_callback_.Run(); |
+} |
+ |
+FakeFrameConsumer::FakeFrameConsumer() {} |
+FakeFrameConsumer::~FakeFrameConsumer() {} |
+ |
+void FakeFrameConsumer::set_on_frame_callback(base::Closure on_frame_callback) { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ on_frame_callback_ = on_frame_callback; |
+} |
+ |
+scoped_ptr<webrtc::DesktopFrame> FakeFrameConsumer::AllocateFrame( |
+ const webrtc::DesktopSize& size) { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ return make_scoped_ptr(new webrtc::BasicDesktopFrame(size)); |
+} |
+ |
+void FakeFrameConsumer::DrawFrame(scoped_ptr<webrtc::DesktopFrame> frame, |
+ const base::Closure& done) { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ received_frames_.push_back(std::move(frame)); |
+ if (!done.is_null()) |
+ done.Run(); |
+ if (!on_frame_callback_.is_null()) |
+ on_frame_callback_.Run(); |
+} |
+ |
+FrameConsumer::PixelFormat FakeFrameConsumer::GetPixelFormat() { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ return FORMAT_BGRA; |
} |
FakeVideoRenderer::FakeVideoRenderer() {} |
@@ -28,12 +67,13 @@ FakeVideoRenderer::~FakeVideoRenderer() {} |
void FakeVideoRenderer::OnSessionConfig(const SessionConfig& config) {} |
FakeVideoStub* FakeVideoRenderer::GetVideoStub() { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
return &video_stub_; |
} |
-FrameConsumer* FakeVideoRenderer::GetFrameConsumer() { |
- NOTIMPLEMENTED(); |
- return nullptr; |
+FakeFrameConsumer* FakeVideoRenderer::GetFrameConsumer() { |
+ CHECK(thread_checker_.CalledOnValidThread()); |
+ return &frame_consumer_; |
} |
} // namespace protocol |