| Index: remoting/protocol/protobuf_video_writer.cc
|
| diff --git a/remoting/protocol/protobuf_video_writer.cc b/remoting/protocol/protobuf_video_writer.cc
|
| index a03a4e696008e6697b3fc79ef6272421eb42b6f0..2d37f6577edb21ef7b256319c4a7bc5cdcc72d51 100644
|
| --- a/remoting/protocol/protobuf_video_writer.cc
|
| +++ b/remoting/protocol/protobuf_video_writer.cc
|
| @@ -1,10 +1,13 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| #include "remoting/protocol/protobuf_video_writer.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/rtp_writer.h"
|
| #include "remoting/protocol/session.h"
|
| @@ -17,14 +20,35 @@ ProtobufVideoWriter::ProtobufVideoWriter() { }
|
|
|
| ProtobufVideoWriter::~ProtobufVideoWriter() { }
|
|
|
| -void ProtobufVideoWriter::Init(protocol::Session* session) {
|
| +void ProtobufVideoWriter::Init(protocol::Session* session,
|
| + const InitializedCallback& callback) {
|
| + initialized_callback_ = callback;
|
| +
|
| + session->CreateStreamChannel(
|
| + kVideoChannelName,
|
| + base::Bind(&ProtobufVideoWriter::OnChannelReady, base::Unretained(this)));
|
| +}
|
| +
|
| +void ProtobufVideoWriter::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);
|
| buffered_writer_ = new BufferedSocketWriter();
|
| // TODO(sergeyu): Provide WriteFailedCallback for the buffered writer.
|
| - buffered_writer_->Init(session->video_channel(), NULL);
|
| + buffered_writer_->Init(socket, NULL);
|
| +
|
| + initialized_callback_.Run(true);
|
| }
|
|
|
| void ProtobufVideoWriter::Close() {
|
| buffered_writer_->Close();
|
| + channel_.reset();
|
| }
|
|
|
| void ProtobufVideoWriter::ProcessVideoPacket(const VideoPacket* packet,
|
|
|