Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Unified Diff: webrtc/video/rtp_stream_receiver.cc

Issue 2720603002: Remove |running_| state from NackModule to avoid running a tight loop. (Closed)
Patch Set: earlier check in FrameContinuous Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/video_coding/nack_module.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/rtp_stream_receiver.cc
diff --git a/webrtc/video/rtp_stream_receiver.cc b/webrtc/video/rtp_stream_receiver.cc
index b8ebc77a5bf691558897bdb0f82623cbe0a79371..e964d10fd809f54b6b75dc2df41eb44af2ee132a 100644
--- a/webrtc/video/rtp_stream_receiver.cc
+++ b/webrtc/video/rtp_stream_receiver.cc
@@ -186,11 +186,11 @@ RtpStreamReceiver::RtpStreamReceiver(
process_thread_->RegisterModule(rtp_rtcp_.get());
- nack_module_.reset(
- new NackModule(clock_, nack_sender, keyframe_request_sender));
- if (config_.rtp.nack.rtp_history_ms == 0)
- nack_module_->Stop();
- process_thread_->RegisterModule(nack_module_.get());
+ if (config_.rtp.nack.rtp_history_ms != 0) {
+ nack_module_.reset(
+ new NackModule(clock_, nack_sender, keyframe_request_sender));
+ process_thread_->RegisterModule(nack_module_.get());
+ }
packet_buffer_ = video_coding::PacketBuffer::Create(
clock_, kPacketBufferStartSize, kPacketBufferMaxSixe, this);
@@ -198,9 +198,11 @@ RtpStreamReceiver::RtpStreamReceiver(
}
RtpStreamReceiver::~RtpStreamReceiver() {
- process_thread_->DeRegisterModule(rtp_rtcp_.get());
+ if (nack_module_) {
+ process_thread_->DeRegisterModule(nack_module_.get());
+ }
- process_thread_->DeRegisterModule(nack_module_.get());
+ process_thread_->DeRegisterModule(rtp_rtcp_.get());
packet_router_->RemoveRtpModule(rtp_rtcp_.get());
rtp_rtcp_->SetREMBStatus(false);
@@ -246,7 +248,8 @@ int32_t RtpStreamReceiver::OnReceivedPayloadData(
rtp_header_with_ntp.ntp_time_ms =
ntp_estimator_.Estimate(rtp_header->header.timestamp);
VCMPacket packet(payload_data, payload_size, rtp_header_with_ntp);
- packet.timesNacked = nack_module_->OnReceivedPacket(packet);
+ packet.timesNacked =
+ nack_module_ ? nack_module_->OnReceivedPacket(packet) : -1;
if (packet.codec == kVideoCodecH264) {
// Only when we start to receive packets will we know what payload type
@@ -405,7 +408,8 @@ void RtpStreamReceiver::OnCompleteFrame(
}
void RtpStreamReceiver::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
- nack_module_->UpdateRtt(max_rtt_ms);
+ if (nack_module_)
+ nack_module_->UpdateRtt(max_rtt_ms);
}
// TODO(nisse): Drop return value.
@@ -534,6 +538,9 @@ bool RtpStreamReceiver::DeliverRtcp(const uint8_t* rtcp_packet,
}
void RtpStreamReceiver::FrameContinuous(uint16_t picture_id) {
+ if (!nack_module_)
+ return;
+
int seq_num = -1;
{
rtc::CritScope lock(&last_seq_num_cs_);
« no previous file with comments | « webrtc/modules/video_coding/nack_module.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698