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:
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user