Remove add/removal of RTP modules in PacketRouter.

PacketRouter still relies on SendingMedia() which is set to false for
the disabled modules.

BUG=webrtc:5494
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1739283002 .

Cr-Commit-Position: refs/heads/master@{#11788}
This commit is contained in:
Peter Boström
2016-02-26 16:37:15 +01:00
parent 8b79b07a55
commit f8136bac63
2 changed files with 5 additions and 20 deletions

View File

@ -120,8 +120,7 @@ ViEChannel::ViEChannel(Transport* transport,
&send_bitrate_observer_,
&send_frame_count_observer_,
&send_side_delay_observer_,
max_rtp_streams)),
num_active_rtp_rtcp_modules_(1) {
max_rtp_streams)) {
vie_receiver_.SetRtpRtcpModule(rtp_rtcp_modules_[0]);
if (sender_) {
RTC_DCHECK(send_payload_router_);
@ -138,15 +137,16 @@ int32_t ViEChannel::Init() {
module_process_thread_->RegisterModule(vie_receiver_.GetReceiveStatistics());
// RTP/RTCP initialization.
for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
module_process_thread_->RegisterModule(rtp_rtcp);
packet_router_->AddRtpModule(rtp_rtcp);
}
rtp_rtcp_modules_[0]->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp);
if (paced_sender_) {
for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
rtp_rtcp->SetStorePacketsStatus(true, kMinSendSidePacketHistorySize);
}
packet_router_->AddRtpModule(rtp_rtcp_modules_[0]);
if (sender_) {
send_payload_router_->SetSendingRtpModules(1);
RTC_DCHECK(!send_payload_router_->active());
@ -170,9 +170,8 @@ ViEChannel::~ViEChannel() {
if (sender_) {
send_payload_router_->SetSendingRtpModules(0);
}
for (size_t i = 0; i < num_active_rtp_rtcp_modules_; ++i)
packet_router_->RemoveRtpModule(rtp_rtcp_modules_[i]);
for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
packet_router_->RemoveRtpModule(rtp_rtcp);
module_process_thread_->DeRegisterModule(rtp_rtcp);
delete rtp_rtcp;
}
@ -250,13 +249,6 @@ int32_t ViEChannel::SetSendCodec(const VideoCodec& video_codec,
size_t num_active_modules = video_codec.numberOfSimulcastStreams > 0
? video_codec.numberOfSimulcastStreams
: 1;
size_t num_prev_active_modules;
{
// Cache which modules are active so StartSend can know which ones to start.
rtc::CritScope lock(&crit_);
num_prev_active_modules = num_active_rtp_rtcp_modules_;
num_active_rtp_rtcp_modules_ = num_active_modules;
}
for (size_t i = 0; i < num_active_modules; ++i)
registered_modules.push_back(rtp_rtcp_modules_[i]);
@ -269,12 +261,6 @@ int32_t ViEChannel::SetSendCodec(const VideoCodec& video_codec,
send_payload_router_->set_active(is_sending);
// Deregister previously registered modules.
for (size_t i = num_active_modules; i < num_prev_active_modules; ++i)
packet_router_->RemoveRtpModule(rtp_rtcp_modules_[i]);
// Register new active modules.
for (size_t i = num_prev_active_modules; i < num_active_modules; ++i)
packet_router_->AddRtpModule(rtp_rtcp_modules_[i]);
return 0;
}

View File

@ -313,7 +313,6 @@ class ViEChannel : public VCMFrameTypeCallback,
// RtpRtcp modules, declared last as they use other members on construction.
const std::vector<RtpRtcp*> rtp_rtcp_modules_;
size_t num_active_rtp_rtcp_modules_ GUARDED_BY(crit_);
};
} // namespace webrtc