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. 4 5 #include "remoting/protocol/host_video_dispatcher.h" 6 7 #include "base/bind.h" 8 #include "net/socket/stream_socket.h" 9 #include "remoting/base/constants.h" 10 #include "remoting/proto/video.pb.h" 11 #include "remoting/protocol/message_serialization.h" 12 13 namespace remoting { 14 namespace protocol { 15 16 HostVideoDispatcher::HostVideoDispatcher() 17 : ChannelDispatcherBase(kVideoChannelName) { 18 } 19 20 HostVideoDispatcher::~HostVideoDispatcher() { 21 } 22 23 void HostVideoDispatcher::OnInitialized() { 24 // TODO(sergeyu): Provide WriteFailedCallback for the buffered writer. 25 writer_.Init(channel(), BufferedSocketWriter::WriteFailedCallback()); 26 } 27 28 void HostVideoDispatcher::ProcessVideoPacket(scoped_ptr<VideoPacket> packet, 29 const base::Closure& done) { 30 writer_.Write(SerializeAndFrameMessage(*packet), done); 31 } 32 33 } // namespace protocol 34 } // namespace remoting 35