Roll src/third_party/WebKit 176b227:44a3ab6 (svn 200849:200851)
[chromium-blink-merge.git] / remoting / protocol / host_video_dispatcher.cc
blob4a752fbb74fa5300b5ec629044638f6ab4461344
1 // Copyright 2014 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.
5 #include "remoting/protocol/host_video_dispatcher.h"
7 #include "base/bind.h"
8 #include "net/socket/stream_socket.h"
9 #include "remoting/base/constants.h"
10 #include "remoting/protocol/message_serialization.h"
11 #include "remoting/protocol/video_feedback_stub.h"
13 namespace remoting {
14 namespace protocol {
16 HostVideoDispatcher::HostVideoDispatcher()
17 : ChannelDispatcherBase(kVideoChannelName),
18 parser_(
19 base::Bind(&HostVideoDispatcher::OnVideoAck, base::Unretained(this)),
20 reader()),
21 video_feedback_stub_(nullptr) {
24 HostVideoDispatcher::~HostVideoDispatcher() {
27 void HostVideoDispatcher::ProcessVideoPacket(scoped_ptr<VideoPacket> packet,
28 const base::Closure& done) {
29 writer()->Write(SerializeAndFrameMessage(*packet), done);
32 void HostVideoDispatcher::OnVideoAck(scoped_ptr<VideoAck> ack,
33 const base::Closure& done) {
34 if (video_feedback_stub_)
35 video_feedback_stub_->ProcessVideoAck(ack.Pass());
37 done.Run();
40 } // namespace protocol
41 } // namespace remoting