Chromium Code Reviews| Index: webrtc/video/rtp_stream_receiver.cc |
| diff --git a/webrtc/video/rtp_stream_receiver.cc b/webrtc/video/rtp_stream_receiver.cc |
| index d2360858729993b3432006b746bc0c54516d729b..34cf8b9e90e1bd0b6804d65f1377729f4cc22d76 100644 |
| --- a/webrtc/video/rtp_stream_receiver.cc |
| +++ b/webrtc/video/rtp_stream_receiver.cc |
| @@ -199,25 +199,19 @@ RtpStreamReceiver::RtpStreamReceiver( |
| process_thread_->RegisterModule(rtp_rtcp_.get()); |
| - jitter_buffer_experiment_ = |
| - field_trial::FindFullName("WebRTC-NewVideoJitterBuffer") == "Enabled"; |
| + nack_module_.reset( |
| + new NackModule(clock_, nack_sender, keyframe_request_sender)); |
|
stefan-webrtc
2017/01/12 14:16:16
Move to initializer list if possible.
philipel
2017/01/12 16:41:35
I think it's better to do clean up in followup CLs
|
| + process_thread_->RegisterModule(nack_module_.get()); |
| - if (jitter_buffer_experiment_) { |
| - 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); |
| - reference_finder_.reset(new video_coding::RtpFrameReferenceFinder(this)); |
| - } |
| + packet_buffer_ = video_coding::PacketBuffer::Create( |
|
stefan-webrtc
2017/01/12 14:16:16
Same here.
|
| + clock_, kPacketBufferStartSize, kPacketBufferMaxSixe, this); |
| + reference_finder_.reset(new video_coding::RtpFrameReferenceFinder(this)); |
|
stefan-webrtc
2017/01/12 14:16:16
and here.
|
| } |
| RtpStreamReceiver::~RtpStreamReceiver() { |
| process_thread_->DeRegisterModule(rtp_rtcp_.get()); |
| - if (jitter_buffer_experiment_) |
| - process_thread_->DeRegisterModule(nack_module_.get()); |
| + process_thread_->DeRegisterModule(nack_module_.get()); |
| packet_router_->RemoveRtpModule(rtp_rtcp_.get()); |
| rtp_rtcp_->SetREMBStatus(false); |
| @@ -261,43 +255,35 @@ int32_t RtpStreamReceiver::OnReceivedPayloadData( |
| WebRtcRTPHeader rtp_header_with_ntp = *rtp_header; |
| rtp_header_with_ntp.ntp_time_ms = |
| ntp_estimator_.Estimate(rtp_header->header.timestamp); |
| - if (jitter_buffer_experiment_) { |
| - VCMPacket packet(payload_data, payload_size, rtp_header_with_ntp); |
| - timing_->IncomingTimestamp(packet.timestamp, clock_->TimeInMilliseconds()); |
| - packet.timesNacked = nack_module_->OnReceivedPacket(packet); |
| - |
| - if (packet.codec == kVideoCodecH264) { |
| - // Only when we start to receive packets will we know what payload type |
| - // that will be used. When we know the payload type insert the correct |
| - // sps/pps into the tracker. |
| - if (packet.payloadType != last_payload_type_) { |
| - last_payload_type_ = packet.payloadType; |
| - InsertSpsPpsIntoTracker(packet.payloadType); |
| - } |
| - |
| - switch (tracker_.CopyAndFixBitstream(&packet)) { |
| - case video_coding::H264SpsPpsTracker::kRequestKeyframe: |
| - keyframe_request_sender_->RequestKeyFrame(); |
| - FALLTHROUGH(); |
| - case video_coding::H264SpsPpsTracker::kDrop: |
| - return 0; |
| - case video_coding::H264SpsPpsTracker::kInsert: |
| - break; |
| - } |
| - } else { |
| - uint8_t* data = new uint8_t[packet.sizeBytes]; |
| - memcpy(data, packet.dataPtr, packet.sizeBytes); |
| - packet.dataPtr = data; |
| + VCMPacket packet(payload_data, payload_size, rtp_header_with_ntp); |
| + timing_->IncomingTimestamp(packet.timestamp, clock_->TimeInMilliseconds()); |
| + packet.timesNacked = nack_module_->OnReceivedPacket(packet); |
| + |
| + if (packet.codec == kVideoCodecH264) { |
| + // Only when we start to receive packets will we know what payload type |
| + // that will be used. When we know the payload type insert the correct |
| + // sps/pps into the tracker. |
| + if (packet.payloadType != last_payload_type_) { |
| + last_payload_type_ = packet.payloadType; |
| + InsertSpsPpsIntoTracker(packet.payloadType); |
| } |
| - packet_buffer_->InsertPacket(&packet); |
| - } else { |
| - if (video_receiver_->IncomingPacket(payload_data, payload_size, |
| - rtp_header_with_ntp) != 0) { |
| - // Check this... |
| - return -1; |
| + switch (tracker_.CopyAndFixBitstream(&packet)) { |
| + case video_coding::H264SpsPpsTracker::kRequestKeyframe: |
| + keyframe_request_sender_->RequestKeyFrame(); |
| + FALLTHROUGH(); |
| + case video_coding::H264SpsPpsTracker::kDrop: |
| + return 0; |
| + case video_coding::H264SpsPpsTracker::kInsert: |
| + break; |
| } |
| + } else { |
| + uint8_t* data = new uint8_t[packet.sizeBytes]; |
| + memcpy(data, packet.dataPtr, packet.sizeBytes); |
| + packet.dataPtr = data; |
| } |
| + |
| + packet_buffer_->InsertPacket(&packet); |
| return 0; |
| } |
| @@ -434,8 +420,7 @@ void RtpStreamReceiver::OnCompleteFrame( |
| } |
| void RtpStreamReceiver::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) { |
| - if (jitter_buffer_experiment_) |
| - nack_module_->UpdateRtt(max_rtt_ms); |
| + nack_module_->UpdateRtt(max_rtt_ms); |
| } |
| bool RtpStreamReceiver::ReceivePacket(const uint8_t* packet, |
| @@ -563,36 +548,32 @@ bool RtpStreamReceiver::DeliverRtcp(const uint8_t* rtcp_packet, |
| } |
| void RtpStreamReceiver::FrameContinuous(uint16_t picture_id) { |
| - if (jitter_buffer_experiment_) { |
| - int seq_num = -1; |
| - { |
| - rtc::CritScope lock(&last_seq_num_cs_); |
| - auto seq_num_it = last_seq_num_for_pic_id_.find(picture_id); |
| - if (seq_num_it != last_seq_num_for_pic_id_.end()) |
| - seq_num = seq_num_it->second; |
| - } |
| - if (seq_num != -1) |
| - nack_module_->ClearUpTo(seq_num); |
| + int seq_num = -1; |
| + { |
| + rtc::CritScope lock(&last_seq_num_cs_); |
| + auto seq_num_it = last_seq_num_for_pic_id_.find(picture_id); |
| + if (seq_num_it != last_seq_num_for_pic_id_.end()) |
| + seq_num = seq_num_it->second; |
| } |
| + if (seq_num != -1) |
| + nack_module_->ClearUpTo(seq_num); |
| } |
| void RtpStreamReceiver::FrameDecoded(uint16_t picture_id) { |
| - if (jitter_buffer_experiment_) { |
| - int seq_num = -1; |
| - { |
| - rtc::CritScope lock(&last_seq_num_cs_); |
| - auto seq_num_it = last_seq_num_for_pic_id_.find(picture_id); |
| - if (seq_num_it != last_seq_num_for_pic_id_.end()) { |
| - seq_num = seq_num_it->second; |
| - last_seq_num_for_pic_id_.erase(last_seq_num_for_pic_id_.begin(), |
| - ++seq_num_it); |
| - } |
| - } |
| - if (seq_num != -1) { |
| - packet_buffer_->ClearTo(seq_num); |
| - reference_finder_->ClearTo(seq_num); |
| + int seq_num = -1; |
| + { |
| + rtc::CritScope lock(&last_seq_num_cs_); |
| + auto seq_num_it = last_seq_num_for_pic_id_.find(picture_id); |
| + if (seq_num_it != last_seq_num_for_pic_id_.end()) { |
| + seq_num = seq_num_it->second; |
| + last_seq_num_for_pic_id_.erase(last_seq_num_for_pic_id_.begin(), |
| + ++seq_num_it); |
| } |
| } |
| + if (seq_num != -1) { |
| + packet_buffer_->ClearTo(seq_num); |
| + reference_finder_->ClearTo(seq_num); |
| + } |
| } |
| void RtpStreamReceiver::SignalNetworkState(NetworkState state) { |