From bbf389c7af503141ae49e4458e087e9d49eed5f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Tue, 26 Sep 2017 14:05:05 +0200 Subject: [PATCH] Delete redundant logic for setting is_first_packet_in_frame A value for this flag was derived in RtpReceiverImpl::IncomingRtpPacket. For audio, it was never used, and for video, it was overridden by the result from RtpDepacketizer::ParsedPayload. Bug: webrtc:7135 Change-Id: I597a57ca77d13b9a9145a9ee5e6624c1986777b9 Reviewed-on: https://webrtc-review.googlesource.com/3660 Commit-Queue: Niels Moller Reviewed-by: Danil Chapovalov Cr-Commit-Position: refs/heads/master@{#19985} --- modules/rtp_rtcp/source/rtp_receiver_audio.cc | 3 +-- modules/rtp_rtcp/source/rtp_receiver_audio.h | 3 +-- modules/rtp_rtcp/source/rtp_receiver_impl.cc | 26 ++----------------- modules/rtp_rtcp/source/rtp_receiver_impl.h | 3 --- .../rtp_rtcp/source/rtp_receiver_strategy.h | 6 ++--- modules/rtp_rtcp/source/rtp_receiver_video.cc | 4 +-- modules/rtp_rtcp/source/rtp_receiver_video.h | 3 +-- 7 files changed, 8 insertions(+), 40 deletions(-) diff --git a/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/modules/rtp_rtcp/source/rtp_receiver_audio.cc index ee3b866aa1..d399ad53a9 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_audio.cc +++ b/modules/rtp_rtcp/source/rtp_receiver_audio.cc @@ -133,8 +133,7 @@ int32_t RTPReceiverAudio::ParseRtpPacket(WebRtcRTPHeader* rtp_header, bool is_red, const uint8_t* payload, size_t payload_length, - int64_t timestamp_ms, - bool is_first_packet) { + int64_t timestamp_ms) { TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "Audio::ParseRtp", "seqnum", rtp_header->header.sequenceNumber, "timestamp", rtp_header->header.timestamp); diff --git a/modules/rtp_rtcp/source/rtp_receiver_audio.h b/modules/rtp_rtcp/source/rtp_receiver_audio.h index e91b7bccfb..14026d07d4 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_audio.h +++ b/modules/rtp_rtcp/source/rtp_receiver_audio.h @@ -49,8 +49,7 @@ class RTPReceiverAudio : public RTPReceiverStrategy, bool is_red, const uint8_t* packet, size_t payload_length, - int64_t timestamp_ms, - bool is_first_packet) override; + int64_t timestamp_ms) override; RTPAliveType ProcessDeadOrAlive(uint16_t last_payload_length) const override; diff --git a/modules/rtp_rtcp/source/rtp_receiver_impl.cc b/modules/rtp_rtcp/source/rtp_receiver_impl.cc index 040ece3ec3..c200c1f398 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_impl.cc +++ b/modules/rtp_rtcp/source/rtp_receiver_impl.cc @@ -65,14 +65,11 @@ RtpReceiverImpl::RtpReceiverImpl(Clock* clock, rtp_payload_registry_(rtp_payload_registry), rtp_media_receiver_(rtp_media_receiver), cb_rtp_feedback_(incoming_messages_callback), - last_receive_time_(0), - last_received_payload_length_(0), ssrc_(0), num_csrcs_(0), current_remote_csrc_(), last_received_timestamp_(0), - last_received_frame_time_ms_(-1), - last_received_sequence_number_(0) { + last_received_frame_time_ms_(-1) { assert(incoming_messages_callback); memset(current_remote_csrc_, 0, sizeof(current_remote_csrc_)); @@ -169,23 +166,9 @@ bool RtpReceiverImpl::IncomingRtpPacket( : rtc::Optional(); UpdateSources(audio_level); - size_t payload_data_length = payload_length - rtp_header.paddingLength; - - bool is_first_packet_in_frame = false; - { - rtc::CritScope lock(&critical_section_rtp_receiver_); - if (HaveReceivedFrame()) { - is_first_packet_in_frame = - last_received_sequence_number_ + 1 == rtp_header.sequenceNumber && - last_received_timestamp_ != rtp_header.timestamp; - } else { - is_first_packet_in_frame = true; - } - } - int32_t ret_val = rtp_media_receiver_->ParseRtpPacket( &webrtc_rtp_header, payload_specific, is_red, payload, payload_length, - clock_->TimeInMilliseconds(), is_first_packet_in_frame); + clock_->TimeInMilliseconds()); if (ret_val < 0) { return false; @@ -194,15 +177,11 @@ bool RtpReceiverImpl::IncomingRtpPacket( { rtc::CritScope lock(&critical_section_rtp_receiver_); - last_receive_time_ = clock_->TimeInMilliseconds(); - last_received_payload_length_ = payload_data_length; - if (in_order) { if (last_received_timestamp_ != rtp_header.timestamp) { last_received_timestamp_ = rtp_header.timestamp; last_received_frame_time_ms_ = clock_->TimeInMilliseconds(); } - last_received_sequence_number_ = rtp_header.sequenceNumber; } } return true; @@ -285,7 +264,6 @@ void RtpReceiverImpl::CheckSSRCChanged(const RTPHeader& rtp_header) { new_ssrc = true; last_received_timestamp_ = 0; - last_received_sequence_number_ = 0; last_received_frame_time_ms_ = -1; // Do we have a SSRC? Then the stream is restarted. diff --git a/modules/rtp_rtcp/source/rtp_receiver_impl.h b/modules/rtp_rtcp/source/rtp_receiver_impl.h index e7e5acccfa..fa64b7f73b 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_impl.h +++ b/modules/rtp_rtcp/source/rtp_receiver_impl.h @@ -89,8 +89,6 @@ class RtpReceiverImpl : public RtpReceiver { RtpFeedback* cb_rtp_feedback_; rtc::CriticalSection critical_section_rtp_receiver_; - int64_t last_receive_time_; - size_t last_received_payload_length_; // SSRCs. uint32_t ssrc_; @@ -99,7 +97,6 @@ class RtpReceiverImpl : public RtpReceiver { uint32_t last_received_timestamp_; int64_t last_received_frame_time_ms_; - uint16_t last_received_sequence_number_; std::unordered_map::iterator> iterator_by_csrc_; diff --git a/modules/rtp_rtcp/source/rtp_receiver_strategy.h b/modules/rtp_rtcp/source/rtp_receiver_strategy.h index 150bf42078..af1868e9f5 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_strategy.h +++ b/modules/rtp_rtcp/source/rtp_receiver_strategy.h @@ -36,15 +36,13 @@ class RTPReceiverStrategy { // Implementations are encouraged to use the provided packet buffer and RTP // header as arguments to the callback; implementations are also allowed to // make changes in the data as necessary. The specific_payload argument - // provides audio or video-specific data. The is_first_packet argument is true - // if this packet is either the first packet ever or the first in its frame. + // provides audio or video-specific data. virtual int32_t ParseRtpPacket(WebRtcRTPHeader* rtp_header, const PayloadUnion& specific_payload, bool is_red, const uint8_t* payload, size_t payload_length, - int64_t timestamp_ms, - bool is_first_packet) = 0; + int64_t timestamp_ms) = 0; virtual TelephoneEventHandler* GetTelephoneEventHandler() = 0; diff --git a/modules/rtp_rtcp/source/rtp_receiver_video.cc b/modules/rtp_rtcp/source/rtp_receiver_video.cc index 14fe4ad2ad..5cd2137a47 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_video.cc +++ b/modules/rtp_rtcp/source/rtp_receiver_video.cc @@ -54,8 +54,7 @@ int32_t RTPReceiverVideo::ParseRtpPacket(WebRtcRTPHeader* rtp_header, bool is_red, const uint8_t* payload, size_t payload_length, - int64_t timestamp_ms, - bool is_first_packet) { + int64_t timestamp_ms) { TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "Video::ParseRtp", "seqnum", rtp_header->header.sequenceNumber, "timestamp", rtp_header->header.timestamp); @@ -82,7 +81,6 @@ int32_t RTPReceiverVideo::ParseRtpPacket(WebRtcRTPHeader* rtp_header, return -1; } - rtp_header->type.Video.is_first_packet_in_frame = is_first_packet; RtpDepacketizer::ParsedPayload parsed_payload; if (!depacketizer->Parse(&parsed_payload, payload, payload_data_length)) return -1; diff --git a/modules/rtp_rtcp/source/rtp_receiver_video.h b/modules/rtp_rtcp/source/rtp_receiver_video.h index 8ffea218fe..97159b350d 100644 --- a/modules/rtp_rtcp/source/rtp_receiver_video.h +++ b/modules/rtp_rtcp/source/rtp_receiver_video.h @@ -30,8 +30,7 @@ class RTPReceiverVideo : public RTPReceiverStrategy { bool is_red, const uint8_t* packet, size_t packet_length, - int64_t timestamp, - bool is_first_packet) override; + int64_t timestamp) override; TelephoneEventHandler* GetTelephoneEventHandler() override { return NULL; }