Index: webrtc/video/video_send_stream.cc |
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc |
index 21a22dc9143203aaf075f2bab2adfe13a7029442..555b68c94d6ef47e5fa371e4533fd3e123c07c85 100644 |
--- a/webrtc/video/video_send_stream.cc |
+++ b/webrtc/video/video_send_stream.cc |
@@ -449,7 +449,6 @@ VideoSendStream::VideoSendStream( |
VideoSendStream::~VideoSendStream() { |
LOG(LS_INFO) << "~VideoSendStream: " << config_.ToString(); |
- bitrate_allocator_->RemoveObserver(this); |
Stop(); |
// Stop the encoder thread permanently. |
@@ -457,6 +456,10 @@ VideoSendStream::~VideoSendStream() { |
encoder_wakeup_event_.Set(); |
encoder_thread_.Stop(); |
+ // This needs to happen after stopping the encoder thread, |
+ // since the encoder thread calls AddObserver. |
+ bitrate_allocator_->RemoveObserver(this); |
+ |
module_process_thread_->DeRegisterModule(&overuse_detector_); |
vie_channel_.RegisterSendFrameCountObserver(nullptr); |
vie_channel_.RegisterSendBitrateObserver(nullptr); |