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:
Alejandro Luebs 2015-10-06 12:27:02 -07:00
parent a295320639
commit 10950692d6
2 changed files with 8 additions and 27 deletions

View File

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

View File

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