diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 22:31:43 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 22:31:43 +0000 |
commit | 19c28bfec867442cc416fa5a3108418e01c714fb (patch) | |
tree | e832b7ec5f9792c27152470d1b44046ff5a2fc6f /remoting/protocol/protobuf_video_reader.cc | |
parent | 8ec98cd25edd4f9329c0acefd98d4b6f69e4632d (diff) | |
download | chromium_src-19c28bfec867442cc416fa5a3108418e01c714fb.zip chromium_src-19c28bfec867442cc416fa5a3108418e01c714fb.tar.gz chromium_src-19c28bfec867442cc416fa5a3108418e01c714fb.tar.bz2 |
Remove video_channel() from Session interface
BUG=None
TEST=Unittests.
Review URL: http://codereview.chromium.org/7508044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96089 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol/protobuf_video_reader.cc')
-rw-r--r-- | remoting/protocol/protobuf_video_reader.cc | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/remoting/protocol/protobuf_video_reader.cc b/remoting/protocol/protobuf_video_reader.cc index a2b62388..f93f2fb 100644 --- a/remoting/protocol/protobuf_video_reader.cc +++ b/remoting/protocol/protobuf_video_reader.cc @@ -4,7 +4,10 @@ #include "remoting/protocol/protobuf_video_reader.h" +#include "base/bind.h" #include "base/task.h" +#include "net/socket/stream_socket.h" +#include "remoting/base/constants.h" #include "remoting/proto/video.pb.h" #include "remoting/protocol/session.h" @@ -19,11 +22,28 @@ ProtobufVideoReader::ProtobufVideoReader(VideoPacketFormat::Encoding encoding) ProtobufVideoReader::~ProtobufVideoReader() { } void ProtobufVideoReader::Init(protocol::Session* session, - VideoStub* video_stub) { - reader_.Init( - session->video_channel(), - NewCallback(this, &ProtobufVideoReader::OnNewData)); + VideoStub* video_stub, + const InitializedCallback& callback) { + initialized_callback_ = callback; video_stub_ = video_stub; + + session->CreateStreamChannel( + kVideoChannelName, + base::Bind(&ProtobufVideoReader::OnChannelReady, base::Unretained(this))); +} + +void ProtobufVideoReader::OnChannelReady(const std::string& name, + net::StreamSocket* socket) { + DCHECK_EQ(name, std::string(kVideoChannelName)); + if (!socket) { + initialized_callback_.Run(false); + return; + } + + DCHECK(!channel_.get()); + channel_.reset(socket); + reader_.Init(socket, NewCallback(this, &ProtobufVideoReader::OnNewData)); + initialized_callback_.Run(true); } void ProtobufVideoReader::OnNewData(VideoPacket* packet, Task* done_task) { |