From 8dde197788f39e7a890ca022663bc5c7b50f9004 Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Thu, 25 Oct 2012 13:06:22 +0000 Subject: [PATCH] Only remove encoder state feedback for send channels. BUG=1000 TEST=See bug Review URL: https://webrtc-codereview.appspot.com/938004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2994 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/video_engine/vie_channel_manager.cc | 6 +++++- webrtc/video_engine/vie_encoder.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/webrtc/video_engine/vie_channel_manager.cc b/webrtc/video_engine/vie_channel_manager.cc index 9fabd8d41c..13be55c8aa 100644 --- a/webrtc/video_engine/vie_channel_manager.cc +++ b/webrtc/video_engine/vie_channel_manager.cc @@ -229,7 +229,11 @@ int ViEChannelManager::DeleteChannel(int channel_id) { group = FindGroup(channel_id); group->SetChannelRembStatus(channel_id, false, false, vie_channel, vie_encoder); - group->GetEncoderStateFeedback()->RemoveEncoder(vie_encoder); + + // Remove the feedback if we're owning the encoder. + if (vie_encoder->channel_id() == channel_id) { + group->GetEncoderStateFeedback()->RemoveEncoder(vie_encoder); + } unsigned int remote_ssrc = 0; vie_channel->GetRemoteSSRC(&remote_ssrc); diff --git a/webrtc/video_engine/vie_encoder.h b/webrtc/video_engine/vie_encoder.h index 339390f235..ea552bf063 100644 --- a/webrtc/video_engine/vie_encoder.h +++ b/webrtc/video_engine/vie_encoder.h @@ -152,6 +152,7 @@ class ViEEncoder // Disables recording of debugging information. virtual int StopDebugRecording(); + int channel_id() const { return channel_id_; } protected: // Called by BitrateObserver. void OnNetworkChanged(const uint32_t bitrate_bps,