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 <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19985}
This commit is contained in:
Niels Möller
2017-09-26 14:05:05 +02:00
committed by Commit Bot
parent 4d5030f8e6
commit bbf389c7af
7 changed files with 8 additions and 40 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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<uint8_t>();
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.

View File

@ -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<uint32_t, std::list<RtpSource>::iterator>
iterator_by_csrc_;

View File

@ -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;

View File

@ -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;

View File

@ -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; }