Chromium Code Reviews| Index: remoting/protocol/protobuf_video_writer.cc |
| diff --git a/remoting/protocol/protobuf_video_writer.cc b/remoting/protocol/protobuf_video_writer.cc |
| index 88941c42e6adb6572b7a67c3c8d0896c708fc89a..200d4eeb95d0a9e648e31cdd760c7c1fcf0d9f5a 100644 |
| --- a/remoting/protocol/protobuf_video_writer.cc |
| +++ b/remoting/protocol/protobuf_video_writer.cc |
| @@ -17,16 +17,20 @@ namespace remoting { |
| namespace protocol { |
| ProtobufVideoWriter::ProtobufVideoWriter(base::MessageLoopProxy* message_loop) |
| - : buffered_writer_(new BufferedSocketWriter(message_loop)) { |
| + : session_(NULL), |
| + buffered_writer_(new BufferedSocketWriter(message_loop)) { |
| } |
| -ProtobufVideoWriter::~ProtobufVideoWriter() { } |
| +ProtobufVideoWriter::~ProtobufVideoWriter() { |
| + Close(); |
| +} |
| void ProtobufVideoWriter::Init(protocol::Session* session, |
| const InitializedCallback& callback) { |
| + session_ = session; |
| initialized_callback_ = callback; |
| - session->CreateStreamChannel( |
| + session_->CreateStreamChannel( |
| kVideoChannelName, |
| base::Bind(&ProtobufVideoWriter::OnChannelReady, base::Unretained(this))); |
| } |
| @@ -48,6 +52,8 @@ void ProtobufVideoWriter::OnChannelReady(net::StreamSocket* socket) { |
| void ProtobufVideoWriter::Close() { |
| buffered_writer_->Close(); |
| channel_.reset(); |
| + if (session_) |
| + session_->CancelChannelCreation(kVideoChannelName); |
|
Wez
2011/11/15 22:29:13
Clear |session_| here, or move this code into the
Sergey Ulanov
2011/11/16 00:01:33
Done.
|
| } |
| void ProtobufVideoWriter::ProcessVideoPacket(const VideoPacket* packet, |