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/webrtc@2994 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_engine/vie_channel_manager.cc b/video_engine/vie_channel_manager.cc
index 9fabd8d..13be55c 100644
--- a/video_engine/vie_channel_manager.cc
+++ b/video_engine/vie_channel_manager.cc
@@ -229,7 +229,11 @@
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/video_engine/vie_encoder.h b/video_engine/vie_encoder.h
index 339390f..ea552bf 100644
--- a/video_engine/vie_encoder.h
+++ b/video_engine/vie_encoder.h
@@ -152,6 +152,7 @@
// 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,