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, |