Revert "Transport sequence number should be set also for retransmissions."
After this CL, video_engine_test started failing flakily in different bots for different CLs. TBR=sprang@webrtc.org Review URL: https://codereview.webrtc.org/1393553003 . Cr-Commit-Position: refs/heads/master@{#10188}
This commit is contained in:
parent
a295320639
commit
10950692d6
@ -695,7 +695,6 @@ int32_t RTPSender::ReSendPacket(uint16_t packet_id, int64_t min_resend_time) {
|
||||
size_t length = IP_PACKET_SIZE;
|
||||
uint8_t data_buffer[IP_PACKET_SIZE];
|
||||
int64_t capture_time_ms;
|
||||
|
||||
if (!packet_history_.GetPacketAndSetSendTime(packet_id, min_resend_time, true,
|
||||
data_buffer, &length,
|
||||
&capture_time_ms)) {
|
||||
@ -923,8 +922,8 @@ bool RTPSender::PrepareAndSendPacket(uint8_t* buffer,
|
||||
// TODO(sprang): Potentially too much overhead in IsRegistered()?
|
||||
bool using_transport_seq = rtp_header_extension_map_.IsRegistered(
|
||||
kRtpExtensionTransportSequenceNumber) &&
|
||||
transport_sequence_number_allocator_;
|
||||
|
||||
transport_sequence_number_allocator_ &&
|
||||
!is_retransmit;
|
||||
PacketOptions options;
|
||||
if (using_transport_seq) {
|
||||
options.packet_id =
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include "webrtc/call.h"
|
||||
#include "webrtc/call/transport_adapter.h"
|
||||
#include "webrtc/frame_callback.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/byte_io.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
|
||||
#include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
|
||||
#include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
|
||||
@ -1336,6 +1335,9 @@ TEST_F(EndToEndTest, SendsAndReceivesMultipleStreams) {
|
||||
}
|
||||
|
||||
TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
// TODO(sprang): Extend this to verify received values once send-side BWE
|
||||
// is in place.
|
||||
|
||||
static const int kExtensionId = 5;
|
||||
|
||||
class RtpExtensionHeaderObserver : public test::DirectTransport {
|
||||
@ -1345,8 +1347,7 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
parser_(RtpHeaderParser::Create()),
|
||||
last_seq_(0),
|
||||
padding_observed_(false),
|
||||
rtx_padding_observed_(false),
|
||||
retransmit_observed_(false) {
|
||||
rtx_padding_observed_(false) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kExtensionId);
|
||||
}
|
||||
@ -1360,8 +1361,6 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
|
||||
RTPHeader header;
|
||||
EXPECT_TRUE(parser_->Parse(data, length, &header));
|
||||
bool drop_packet = false;
|
||||
|
||||
if (header.extension.hasTransportSequenceNumber) {
|
||||
EXPECT_EQ(options.packet_id,
|
||||
header.extension.transportSequenceNumber);
|
||||
@ -1371,25 +1370,12 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
}
|
||||
last_seq_ = header.extension.transportSequenceNumber;
|
||||
|
||||
// Drop every 20th packet, so we get retransmits.
|
||||
if (header.sequenceNumber % 20 == 0) {
|
||||
dropped_seq_.insert(header.sequenceNumber);
|
||||
drop_packet = true;
|
||||
}
|
||||
|
||||
size_t payload_length =
|
||||
length - (header.headerLength + header.paddingLength);
|
||||
if (payload_length == 0) {
|
||||
padding_observed_ = true;
|
||||
} else if (header.payloadType == kSendRtxPayloadType) {
|
||||
uint16_t original_sequence_number =
|
||||
ByteReader<uint16_t>::ReadBigEndian(&data[header.headerLength]);
|
||||
if (dropped_seq_.find(original_sequence_number) !=
|
||||
dropped_seq_.end()) {
|
||||
retransmit_observed_ = true;
|
||||
} else {
|
||||
rtx_padding_observed_ = true;
|
||||
}
|
||||
rtx_padding_observed_ = true;
|
||||
} else {
|
||||
streams_observed_.insert(header.ssrc);
|
||||
}
|
||||
@ -1397,14 +1383,12 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
if (IsDone())
|
||||
done_->Set();
|
||||
}
|
||||
if (drop_packet)
|
||||
return true;
|
||||
return test::DirectTransport::SendRtp(data, length, options);
|
||||
}
|
||||
|
||||
bool IsDone() {
|
||||
return streams_observed_.size() == MultiStreamTest::kNumStreams &&
|
||||
padding_observed_ && retransmit_observed_ && rtx_padding_observed_;
|
||||
padding_observed_ && rtx_padding_observed_;
|
||||
}
|
||||
|
||||
EventTypeWrapper Wait() { return done_->Wait(kDefaultTimeoutMs); }
|
||||
@ -1413,10 +1397,8 @@ TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
rtc::scoped_ptr<RtpHeaderParser> parser_;
|
||||
uint16_t last_seq_;
|
||||
std::set<uint32_t> streams_observed_;
|
||||
std::set<uint16_t> dropped_seq_;
|
||||
bool padding_observed_;
|
||||
bool rtx_padding_observed_;
|
||||
bool retransmit_observed_;
|
||||
};
|
||||
|
||||
class TransportSequenceNumberTester : public MultiStreamTest {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user