Reland "Delete test/constants.h"
This reverts commit 4f36b7a478c2763463c7a9ea970548ec68bc3ea6. Reason for revert: Failing tests fixed. Original change's description: > Revert "Delete test/constants.h" > > This reverts commit 389b1672a32f2dd49af6c6ed40e8ddf394b986de. > > Reason for revert: Causes failure (and empty result list) in CallPerfTest.PadsToMinTransmitBitrate > > Original change's description: > > Delete test/constants.h > > > > It's not possible to use constants.h for all RTP extensions > > after the number of extensions exceeds 14, which is the maximum > > number of one-byte RTP extensions. This is because some extensions > > would have to be assigned a number greater than 14, even if the > > test only involves 14 extensions or less. > > > > For uniformity's sake, this CL also edits some files to use an > > enum as the files involved in this CL, rather than free-floating > > const-ints. > > > > Bug: webrtc:10288 > > Change-Id: Ib5e58ad72c4d3756f4c4f6521f140ec59617f3f5 > > Reviewed-on: https://webrtc-review.googlesource.com/c/123048 > > Commit-Queue: Elad Alon <eladalon@webrtc.org> > > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Erik Språng <sprang@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#26728} > > TBR=danilchap@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org > > Bug: webrtc:10288, chromium:933127 > Change-Id: If1de0bd8992137c52bf0b877b3cb0a2bafc809d4 > Reviewed-on: https://webrtc-review.googlesource.com/c/123381 > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#26744} TBR=danilchap@webrtc.org,oprypin@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org Change-Id: I65e391325d3a6df6db3c0739185e2002e70fb954 Bug: webrtc:10288, chromium:933127 Reviewed-on: https://webrtc-review.googlesource.com/c/123384 Reviewed-by: Elad Alon <eladalon@webrtc.org> Commit-Queue: Elad Alon <eladalon@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26750}
This commit is contained in:
parent
1925b5a1d3
commit
d8d3248d95
@ -8,8 +8,11 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "test/call_test.h"
|
||||
#include "test/constants.h"
|
||||
#include "test/field_trial.h"
|
||||
#include "test/gtest.h"
|
||||
#include "test/rtcp_packet_parser.h"
|
||||
@ -18,6 +21,11 @@ namespace webrtc {
|
||||
namespace test {
|
||||
namespace {
|
||||
|
||||
enum : int { // The first valid value is 1.
|
||||
kAudioLevelExtensionId = 1,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
};
|
||||
|
||||
class AudioSendTest : public SendTest {
|
||||
public:
|
||||
AudioSendTest() : SendTest(CallTest::kDefaultTimeoutMs) {}
|
||||
@ -103,8 +111,8 @@ TEST_F(AudioSendStreamCallTest, SupportsAudioLevel) {
|
||||
class AudioLevelObserver : public AudioSendTest {
|
||||
public:
|
||||
AudioLevelObserver() : AudioSendTest() {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionAudioLevel, test::kAudioLevelExtensionId));
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(kRtpExtensionAudioLevel,
|
||||
kAudioLevelExtensionId));
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
@ -127,8 +135,8 @@ TEST_F(AudioSendStreamCallTest, SupportsAudioLevel) {
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAudioLevelUri, test::kAudioLevelExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelExtensionId));
|
||||
}
|
||||
|
||||
void PerformTest() override {
|
||||
|
||||
@ -23,6 +23,10 @@ namespace webrtc {
|
||||
namespace test {
|
||||
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
};
|
||||
|
||||
// Wait a second between stopping sending and stopping receiving audio.
|
||||
constexpr int kExtraProcessTimeMs = 1000;
|
||||
} // namespace
|
||||
|
||||
@ -51,8 +51,19 @@
|
||||
using webrtc::test::DriftingClock;
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class CallPerfTest : public test::CallTest {
|
||||
public:
|
||||
CallPerfTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
|
||||
protected:
|
||||
enum class FecMode { kOn, kOff };
|
||||
enum class CreateOrder { kAudioFirst, kVideoFirst };
|
||||
|
||||
@ -22,7 +22,10 @@
|
||||
namespace webrtc {
|
||||
|
||||
namespace {
|
||||
const int kAudioLevelExtensionId = 9;
|
||||
enum : int { // The first valid value is 1.
|
||||
kAudioLevelExtensionId = 1,
|
||||
};
|
||||
|
||||
const uint16_t kSeqNum = 33;
|
||||
const uint32_t kSsrc = 725242;
|
||||
const uint8_t kAudioLevel = 0x5a;
|
||||
|
||||
@ -40,16 +40,19 @@
|
||||
namespace webrtc {
|
||||
|
||||
namespace {
|
||||
const int kTransmissionTimeOffsetExtensionId = 1;
|
||||
const int kAbsoluteSendTimeExtensionId = 14;
|
||||
const int kTransportSequenceNumberExtensionId = 13;
|
||||
const int kVideoTimingExtensionId = 12;
|
||||
const int kMidExtensionId = 11;
|
||||
const int kGenericDescriptorId = 10;
|
||||
const int kAudioLevelExtensionId = 9;
|
||||
const int kRidExtensionId = 8;
|
||||
const int kRepairedRidExtensionId = 7;
|
||||
const int kVideoRotationExtensionId = 5;
|
||||
enum : int { // The first valid value is 1.
|
||||
kAbsoluteSendTimeExtensionId = 1,
|
||||
kAudioLevelExtensionId,
|
||||
kGenericDescriptorId,
|
||||
kMidExtensionId,
|
||||
kRepairedRidExtensionId,
|
||||
kRidExtensionId,
|
||||
kTransmissionTimeOffsetExtensionId,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
kVideoRotationExtensionId,
|
||||
kVideoTimingExtensionId,
|
||||
};
|
||||
|
||||
const int kPayload = 100;
|
||||
const int kRtxPayload = 98;
|
||||
const uint32_t kTimestamp = 10;
|
||||
|
||||
@ -34,13 +34,16 @@ namespace {
|
||||
|
||||
using ::testing::ElementsAre;
|
||||
|
||||
constexpr int kTransmissionTimeOffsetExtensionId = 1;
|
||||
constexpr int kAbsoluteSendTimeExtensionId = 14;
|
||||
constexpr int kTransportSequenceNumberExtensionId = 13;
|
||||
constexpr int kVideoTimingExtensionId = 12;
|
||||
constexpr int kGenericDescriptorId = 10;
|
||||
constexpr int kFrameMarkingExtensionId = 6;
|
||||
constexpr int kVideoRotationExtensionId = 5;
|
||||
enum : int { // The first valid value is 1.
|
||||
kAbsoluteSendTimeExtensionId = 1,
|
||||
kFrameMarkingExtensionId,
|
||||
kGenericDescriptorId,
|
||||
kTransmissionTimeOffsetExtensionId,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
kVideoRotationExtensionId,
|
||||
kVideoTimingExtensionId,
|
||||
};
|
||||
|
||||
constexpr int kPayload = 100;
|
||||
constexpr uint32_t kTimestamp = 10;
|
||||
constexpr uint16_t kSeqNum = 33;
|
||||
|
||||
@ -656,8 +656,6 @@ rtc_source_set("test_common") {
|
||||
sources = [
|
||||
"call_test.cc",
|
||||
"call_test.h",
|
||||
"constants.cc",
|
||||
"constants.h",
|
||||
"drifting_clock.cc",
|
||||
"drifting_clock.h",
|
||||
"encoder_settings.cc",
|
||||
@ -748,6 +746,7 @@ rtc_source_set("test_common") {
|
||||
"../video",
|
||||
"//testing/gtest",
|
||||
"//third_party/abseil-cpp/absl/memory",
|
||||
"//third_party/abseil-cpp/absl/types:optional",
|
||||
]
|
||||
if (!is_android && !build_with_chromium) {
|
||||
deps += [ "../modules/video_capture:video_capture_internal_impl" ]
|
||||
|
||||
@ -65,6 +65,29 @@ CallTest::~CallTest() {
|
||||
});
|
||||
}
|
||||
|
||||
void CallTest::RegisterRtpExtension(const RtpExtension& extension) {
|
||||
for (const RtpExtension& registered_extension : rtp_extensions_) {
|
||||
if (registered_extension.id == extension.id) {
|
||||
ASSERT_EQ(registered_extension.uri, extension.uri)
|
||||
<< "Different URIs associated with ID " << extension.id << ".";
|
||||
ASSERT_EQ(registered_extension.encrypt, extension.encrypt)
|
||||
<< "Encryption mismatch associated with ID " << extension.id << ".";
|
||||
return;
|
||||
} else { // Different IDs.
|
||||
// Different IDs referring to the same extension probably indicate
|
||||
// a mistake in the test.
|
||||
ASSERT_FALSE(registered_extension.uri == extension.uri &&
|
||||
registered_extension.encrypt == extension.encrypt)
|
||||
<< "URI " << extension.uri
|
||||
<< (extension.encrypt ? " with " : " without ")
|
||||
<< "encryption already registered with a different "
|
||||
<< "ID (" << extension.id << " vs. " << registered_extension.id
|
||||
<< ").";
|
||||
}
|
||||
}
|
||||
rtp_extensions_.push_back(extension);
|
||||
}
|
||||
|
||||
void CallTest::RunBaseTest(BaseTest* test) {
|
||||
task_queue_.SendTask([this, test]() {
|
||||
num_video_streams_ = test->GetNumVideoStreams();
|
||||
@ -235,25 +258,23 @@ void CallTest::CreateVideoSendConfig(VideoSendStream::Config* video_config,
|
||||
video_config->rtp.payload_name = "FAKE";
|
||||
video_config->rtp.payload_type = kFakeVideoSendPayloadType;
|
||||
video_config->rtp.extmap_allow_mixed = true;
|
||||
video_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
video_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kVideoContentTypeUri, kVideoContentTypeExtensionId));
|
||||
video_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kGenericFrameDescriptorUri, kGenericDescriptorExtensionId));
|
||||
AddRtpExtensionByUri(RtpExtension::kTransportSequenceNumberUri,
|
||||
&video_config->rtp.extensions);
|
||||
AddRtpExtensionByUri(RtpExtension::kVideoContentTypeUri,
|
||||
&video_config->rtp.extensions);
|
||||
AddRtpExtensionByUri(RtpExtension::kGenericFrameDescriptorUri,
|
||||
&video_config->rtp.extensions);
|
||||
if (video_encoder_configs_.empty()) {
|
||||
video_encoder_configs_.emplace_back();
|
||||
FillEncoderConfiguration(kVideoCodecGeneric, num_video_streams,
|
||||
&video_encoder_configs_.back());
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < num_video_streams; ++i)
|
||||
video_config->rtp.ssrcs.push_back(kVideoSendSsrcs[num_used_ssrcs + i]);
|
||||
video_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationExtensionId));
|
||||
video_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kColorSpaceUri, kColorSpaceExtensionId));
|
||||
AddRtpExtensionByUri(RtpExtension::kVideoRotationUri,
|
||||
&video_config->rtp.extensions);
|
||||
AddRtpExtensionByUri(RtpExtension::kColorSpaceUri,
|
||||
&video_config->rtp.extensions);
|
||||
}
|
||||
|
||||
void CallTest::CreateAudioAndFecSendConfigs(size_t num_audio_streams,
|
||||
@ -666,6 +687,25 @@ FlexfecReceiveStream::Config* CallTest::GetFlexFecConfig() {
|
||||
return &flexfec_receive_configs_[0];
|
||||
}
|
||||
|
||||
absl::optional<RtpExtension> CallTest::GetRtpExtensionByUri(
|
||||
const std::string& uri) const {
|
||||
for (const auto& extension : rtp_extensions_) {
|
||||
if (extension.uri == uri) {
|
||||
return extension;
|
||||
}
|
||||
}
|
||||
return absl::nullopt;
|
||||
}
|
||||
|
||||
void CallTest::AddRtpExtensionByUri(
|
||||
const std::string& uri,
|
||||
std::vector<RtpExtension>* extensions) const {
|
||||
const absl::optional<RtpExtension> extension = GetRtpExtensionByUri(uri);
|
||||
if (extension) {
|
||||
extensions->push_back(*extension);
|
||||
}
|
||||
}
|
||||
|
||||
constexpr size_t CallTest::kNumSsrcs;
|
||||
const int CallTest::kDefaultWidth;
|
||||
const int CallTest::kDefaultHeight;
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "absl/types/optional.h"
|
||||
#include "api/test/video/function_video_decoder_factory.h"
|
||||
#include "api/test/video/function_video_encoder_factory.h"
|
||||
#include "api/video/video_bitrate_allocator_factory.h"
|
||||
@ -71,6 +72,8 @@ class CallTest : public ::testing::Test {
|
||||
static const std::map<uint8_t, MediaType> payload_type_map_;
|
||||
|
||||
protected:
|
||||
void RegisterRtpExtension(const RtpExtension& extension);
|
||||
|
||||
// RunBaseTest overwrites the audio_state of the send and receive Call configs
|
||||
// to simplify test code.
|
||||
void RunBaseTest(BaseTest* test);
|
||||
@ -216,6 +219,13 @@ class CallTest : public ::testing::Test {
|
||||
SingleThreadedTaskQueueForTesting task_queue_;
|
||||
|
||||
private:
|
||||
absl::optional<RtpExtension> GetRtpExtensionByUri(
|
||||
const std::string& uri) const;
|
||||
|
||||
void AddRtpExtensionByUri(const std::string& uri,
|
||||
std::vector<RtpExtension>* extensions) const;
|
||||
|
||||
std::vector<RtpExtension> rtp_extensions_;
|
||||
rtc::scoped_refptr<AudioProcessing> apm_send_;
|
||||
rtc::scoped_refptr<AudioProcessing> apm_recv_;
|
||||
rtc::scoped_refptr<TestAudioDeviceModule> fake_send_audio_device_;
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "test/constants.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace test {
|
||||
|
||||
const int kAudioLevelExtensionId = 5;
|
||||
const int kTOffsetExtensionId = 6;
|
||||
const int kAbsSendTimeExtensionId = 7;
|
||||
const int kTransportSequenceNumberExtensionId = 8;
|
||||
const int kVideoRotationExtensionId = 9;
|
||||
const int kVideoContentTypeExtensionId = 10;
|
||||
const int kVideoTimingExtensionId = 11;
|
||||
const int kGenericDescriptorExtensionId = 12;
|
||||
const int kColorSpaceExtensionId = 13;
|
||||
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
namespace webrtc {
|
||||
namespace test {
|
||||
|
||||
extern const int kAudioLevelExtensionId;
|
||||
extern const int kTOffsetExtensionId;
|
||||
extern const int kAbsSendTimeExtensionId;
|
||||
extern const int kTransportSequenceNumberExtensionId;
|
||||
extern const int kVideoRotationExtensionId;
|
||||
extern const int kVideoContentTypeExtensionId;
|
||||
extern const int kVideoTimingExtensionId;
|
||||
extern const int kGenericDescriptorExtensionId;
|
||||
extern const int kColorSpaceExtensionId;
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
@ -12,6 +12,7 @@
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "api/test/simulated_network.h"
|
||||
@ -21,7 +22,6 @@
|
||||
#include "rtc_base/critical_section.h"
|
||||
#include "rtc_base/event.h"
|
||||
#include "system_wrappers/include/field_trial.h"
|
||||
#include "test/constants.h"
|
||||
#include "test/direct_transport.h"
|
||||
#include "test/gtest.h"
|
||||
|
||||
@ -71,14 +71,7 @@ class RtpRtcpObserver {
|
||||
protected:
|
||||
RtpRtcpObserver() : RtpRtcpObserver(0) {}
|
||||
explicit RtpRtcpObserver(int event_timeout_ms)
|
||||
: parser_(RtpHeaderParser::Create()), timeout_ms_(event_timeout_ms) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset,
|
||||
kTOffsetExtensionId);
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
|
||||
kAbsSendTimeExtensionId);
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kTransportSequenceNumberExtensionId);
|
||||
}
|
||||
: parser_(RtpHeaderParser::Create()), timeout_ms_(event_timeout_ms) {}
|
||||
|
||||
rtc::Event observation_complete_;
|
||||
const std::unique_ptr<RtpHeaderParser> parser_;
|
||||
|
||||
@ -27,8 +27,13 @@
|
||||
namespace webrtc {
|
||||
namespace test {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
kVideoContentTypeExtensionId,
|
||||
kVideoRotationRtpExtensionId,
|
||||
};
|
||||
|
||||
constexpr int kDefaultMaxQp = cricket::WebRtcVideoChannel::kDefaultQpMax;
|
||||
const int kVideoRotationRtpExtensionId = 4;
|
||||
uint8_t CodecTypeToPayloadType(VideoCodecType codec_type) {
|
||||
switch (codec_type) {
|
||||
case VideoCodecType::kVideoCodecGeneric:
|
||||
|
||||
@ -26,6 +26,11 @@
|
||||
#include "test/video_encoder_proxy_factory.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kAbsSendTimeExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class BandwidthEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
@ -42,8 +47,8 @@ TEST_F(BandwidthEndToEndTest, ReceiveStreamSendsRemb) {
|
||||
std::vector<VideoReceiveStream::Config>* receive_configs,
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
(*receive_configs)[0].rtp.remb = true;
|
||||
(*receive_configs)[0].rtp.transport_cc = false;
|
||||
}
|
||||
@ -87,8 +92,8 @@ class BandwidthStatsTest : public test::EndToEndTest {
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
if (!send_side_bwe_) {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
(*receive_configs)[0].rtp.remb = true;
|
||||
(*receive_configs)[0].rtp.transport_cc = false;
|
||||
}
|
||||
|
||||
@ -27,11 +27,22 @@
|
||||
#include "test/gtest.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kColorSpaceExtensionId = 1,
|
||||
kVideoRotationExtensionId,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class CodecEndToEndTest : public test::CallTest,
|
||||
public testing::WithParamInterface<std::string> {
|
||||
public:
|
||||
CodecEndToEndTest() : field_trial_(GetParam()) {}
|
||||
CodecEndToEndTest() : field_trial_(GetParam()) {
|
||||
RegisterRtpExtension(
|
||||
RtpExtension(RtpExtension::kColorSpaceUri, kColorSpaceExtensionId));
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoRotationUri,
|
||||
kVideoRotationExtensionId));
|
||||
}
|
||||
|
||||
private:
|
||||
test::ScopedFieldTrials field_trial_;
|
||||
@ -224,7 +235,10 @@ TEST_P(CodecEndToEndTest, SendsAndReceivesMultiplexVideoRotation90) {
|
||||
class EndToEndTestH264 : public test::CallTest,
|
||||
public testing::WithParamInterface<std::string> {
|
||||
public:
|
||||
EndToEndTestH264() : field_trial_(GetParam()) {}
|
||||
EndToEndTestH264() : field_trial_(GetParam()) {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoRotationUri,
|
||||
kVideoRotationExtensionId));
|
||||
}
|
||||
|
||||
private:
|
||||
test::ScopedFieldTrials field_trial_;
|
||||
|
||||
@ -43,8 +43,20 @@
|
||||
#include "test/single_threaded_task_queue.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kColorSpaceExtensionId = 1,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class ExtendedReportsEndToEndTest : public test::CallTest {};
|
||||
class ExtendedReportsEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
ExtendedReportsEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
};
|
||||
|
||||
class RtcpXrObserver : public test::EndToEndTest {
|
||||
public:
|
||||
|
||||
@ -22,10 +22,21 @@
|
||||
#include "test/rtcp_packet_parser.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
kVideoRotationExtensionId,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class FecEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
FecEndToEndTest() = default;
|
||||
FecEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoRotationUri,
|
||||
kVideoRotationExtensionId));
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(FecEndToEndTest, ReceivesUlpfec) {
|
||||
|
||||
@ -17,10 +17,18 @@
|
||||
#include "test/gtest.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kGenericDescriptorExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class FrameEncryptionEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
FrameEncryptionEndToEndTest() = default;
|
||||
FrameEncryptionEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kGenericFrameDescriptorUri,
|
||||
kGenericDescriptorExtensionId));
|
||||
}
|
||||
|
||||
private:
|
||||
// GenericDescriptor is required for FrameEncryption to work.
|
||||
|
||||
@ -16,8 +16,22 @@
|
||||
#include "test/gtest.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
kVideoContentTypeExtensionId,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class HistogramTest : public test::CallTest {
|
||||
public:
|
||||
HistogramTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoContentTypeUri,
|
||||
kVideoContentTypeExtensionId));
|
||||
}
|
||||
|
||||
protected:
|
||||
void VerifyHistogramStats(bool use_rtx, bool use_fec, bool screenshare);
|
||||
};
|
||||
|
||||
@ -15,9 +15,21 @@
|
||||
#include "test/call_test.h"
|
||||
#include "test/field_trial.h"
|
||||
#include "test/gtest.h"
|
||||
namespace webrtc {
|
||||
|
||||
class ProbingEndToEndTest : public test::CallTest {};
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class ProbingEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
ProbingEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
};
|
||||
|
||||
class ProbingTest : public test::EndToEndTest {
|
||||
public:
|
||||
|
||||
@ -21,9 +21,18 @@
|
||||
#include "test/rtcp_packet_parser.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kVideoRotationExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class RetransmissionEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
RetransmissionEndToEndTest() = default;
|
||||
RetransmissionEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoRotationUri,
|
||||
kVideoRotationExtensionId));
|
||||
}
|
||||
|
||||
protected:
|
||||
void DecodesRetransmittedFrame(bool enable_rtx, bool enable_red);
|
||||
|
||||
@ -18,6 +18,11 @@
|
||||
#include "test/rtcp_packet_parser.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class RtpRtcpEndToEndTest : public test::CallTest {
|
||||
protected:
|
||||
@ -530,7 +535,7 @@ TEST_F(RtpRtcpEndToEndTest, DISABLED_TestFlexfecRtpStatePreservation) {
|
||||
flexfec_receive_config.transport_cc = true;
|
||||
flexfec_receive_config.rtp_header_extensions.emplace_back(
|
||||
RtpExtension::kTransportSequenceNumberUri,
|
||||
test::kTransportSequenceNumberExtensionId);
|
||||
kTransportSequenceNumberExtensionId);
|
||||
flexfec_receive_configs_.push_back(flexfec_receive_config);
|
||||
|
||||
CreateFlexfecStreams();
|
||||
|
||||
@ -24,7 +24,19 @@
|
||||
#include "test/rtcp_packet_parser.h"
|
||||
|
||||
namespace webrtc {
|
||||
class StatsEndToEndTest : public test::CallTest {};
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kVideoContentTypeExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class StatsEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
StatsEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kVideoContentTypeUri,
|
||||
kVideoContentTypeExtensionId));
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(StatsEndToEndTest, GetStats) {
|
||||
static const int kStartBitrateBps = 3000000;
|
||||
|
||||
@ -21,12 +21,21 @@
|
||||
#include "video/end_to_end_tests/multi_stream_tester.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kTransportSequenceNumberExtensionId = 1,
|
||||
};
|
||||
} // namespace
|
||||
|
||||
class TransportFeedbackEndToEndTest : public test::CallTest {};
|
||||
class TransportFeedbackEndToEndTest : public test::CallTest {
|
||||
public:
|
||||
TransportFeedbackEndToEndTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
static const int kExtensionId = 5;
|
||||
|
||||
class RtpExtensionHeaderObserver : public test::DirectTransport {
|
||||
public:
|
||||
RtpExtensionHeaderObserver(
|
||||
@ -50,7 +59,7 @@ TEST_F(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
retransmit_observed_(false),
|
||||
started_(false) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kExtensionId);
|
||||
kTransportSequenceNumberExtensionId);
|
||||
}
|
||||
virtual ~RtpExtensionHeaderObserver() {}
|
||||
|
||||
@ -174,8 +183,9 @@ TEST_F(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
VideoEncoderConfig* encoder_config,
|
||||
test::FrameGeneratorCapturer** frame_generator) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kTransportSequenceNumberUri, kExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
|
||||
// Force some padding to be sent. Note that since we do send media
|
||||
// packets we can not guarantee that a padding only packet is sent.
|
||||
@ -201,8 +211,9 @@ TEST_F(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) {
|
||||
VideoReceiveStream::Config* receive_config) override {
|
||||
receive_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
|
||||
receive_config->rtp.extensions.clear();
|
||||
receive_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kTransportSequenceNumberUri, kExtensionId));
|
||||
receive_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
receive_config->renderer = &fake_renderer_;
|
||||
}
|
||||
|
||||
@ -291,14 +302,14 @@ class TransportFeedbackTester : public test::EndToEndTest {
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri, kExtensionId));
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
(*receive_configs)[0].rtp.extensions.clear();
|
||||
(*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
|
||||
(*receive_configs)[0].rtp.transport_cc = feedback_enabled_;
|
||||
}
|
||||
|
||||
private:
|
||||
static const int kExtensionId = 5;
|
||||
const bool feedback_enabled_;
|
||||
const size_t num_video_streams_;
|
||||
const size_t num_audio_streams_;
|
||||
@ -426,7 +437,6 @@ TEST_F(TransportFeedbackEndToEndTest,
|
||||
|
||||
TEST_F(TransportFeedbackEndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
||||
test::ScopedFieldTrials field_trials("WebRTC-Audio-SendSideBwe/Enabled/");
|
||||
static constexpr int kExtensionId = 8;
|
||||
static constexpr size_t kMinPacketsToWaitFor = 50;
|
||||
class TransportSequenceNumberTest : public test::EndToEndTest {
|
||||
public:
|
||||
@ -435,7 +445,7 @@ TEST_F(TransportFeedbackEndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
||||
video_observed_(false),
|
||||
audio_observed_(false) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kExtensionId);
|
||||
kTransportSequenceNumberExtensionId);
|
||||
}
|
||||
|
||||
size_t GetNumVideoStreams() const override { return 1; }
|
||||
@ -445,8 +455,9 @@ TEST_F(TransportFeedbackEndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kTransportSequenceNumberUri, kExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
(*receive_configs)[0].rtp.extensions.clear();
|
||||
(*receive_configs)[0].rtp.extensions = send_config->rtp.extensions;
|
||||
}
|
||||
|
||||
@ -47,6 +47,14 @@
|
||||
namespace webrtc {
|
||||
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kAbsSendTimeExtensionId = 1,
|
||||
kGenericFrameDescriptorExtensionId,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
kVideoContentTypeExtensionId,
|
||||
kVideoTimingExtensionId,
|
||||
};
|
||||
|
||||
constexpr char kSyncGroup[] = "av_sync";
|
||||
constexpr int kOpusMinBitrateBps = 6000;
|
||||
constexpr int kOpusBitrateFbBps = 32000;
|
||||
@ -710,10 +718,10 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
|
||||
if (params_.call.send_side_bwe) {
|
||||
video_send_configs_[video_idx].rtp.extensions.emplace_back(
|
||||
RtpExtension::kTransportSequenceNumberUri,
|
||||
test::kTransportSequenceNumberExtensionId);
|
||||
kTransportSequenceNumberExtensionId);
|
||||
} else {
|
||||
video_send_configs_[video_idx].rtp.extensions.emplace_back(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId);
|
||||
RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId);
|
||||
}
|
||||
|
||||
if (params_.call.generic_descriptor) {
|
||||
@ -724,13 +732,13 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
|
||||
|
||||
video_send_configs_[video_idx].rtp.extensions.emplace_back(
|
||||
RtpExtension::kGenericFrameDescriptorUri,
|
||||
test::kGenericDescriptorExtensionId);
|
||||
kGenericFrameDescriptorExtensionId);
|
||||
}
|
||||
|
||||
video_send_configs_[video_idx].rtp.extensions.emplace_back(
|
||||
RtpExtension::kVideoContentTypeUri, test::kVideoContentTypeExtensionId);
|
||||
RtpExtension::kVideoContentTypeUri, kVideoContentTypeExtensionId);
|
||||
video_send_configs_[video_idx].rtp.extensions.emplace_back(
|
||||
RtpExtension::kVideoTimingUri, test::kVideoTimingExtensionId);
|
||||
RtpExtension::kVideoTimingUri, kVideoTimingExtensionId);
|
||||
|
||||
video_encoder_configs_[video_idx].video_format.name =
|
||||
params_.video[video_idx].codec;
|
||||
@ -878,10 +886,10 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
|
||||
if (params_.call.send_side_bwe) {
|
||||
GetFlexFecConfig()->rtp_header_extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
test::kTransportSequenceNumberExtensionId));
|
||||
kTransportSequenceNumberExtensionId));
|
||||
} else {
|
||||
GetFlexFecConfig()->rtp_header_extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
GetFlexFecConfig()->rtp_header_extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -919,10 +927,10 @@ void VideoQualityTest::SetupThumbnails(Transport* send_transport,
|
||||
if (params_.call.send_side_bwe) {
|
||||
thumbnail_send_config.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
test::kTransportSequenceNumberExtensionId));
|
||||
kTransportSequenceNumberExtensionId));
|
||||
} else {
|
||||
thumbnail_send_config.rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
thumbnail_send_config.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
}
|
||||
|
||||
VideoEncoderConfig thumbnail_encoder_config;
|
||||
@ -1354,7 +1362,7 @@ void VideoQualityTest::SetupAudio(Transport* transport) {
|
||||
if (params_.call.send_side_bwe) {
|
||||
audio_send_config.rtp.extensions.push_back(
|
||||
webrtc::RtpExtension(webrtc::RtpExtension::kTransportSequenceNumberUri,
|
||||
test::kTransportSequenceNumberExtensionId));
|
||||
kTransportSequenceNumberExtensionId));
|
||||
audio_send_config.min_bitrate_bps = kOpusMinBitrateBps;
|
||||
audio_send_config.max_bitrate_bps = kOpusBitrateFbBps;
|
||||
audio_send_config.send_codec_spec->transport_cc_enabled = true;
|
||||
|
||||
@ -73,6 +73,15 @@ class VideoSendStreamPeer {
|
||||
} // namespace test
|
||||
|
||||
namespace {
|
||||
enum : int { // The first valid value is 1.
|
||||
kAbsSendTimeExtensionId = 1,
|
||||
kTimestampOffsetExtensionId,
|
||||
kTransportSequenceNumberExtensionId,
|
||||
kVideoContentTypeExtensionId,
|
||||
kVideoRotationExtensionId,
|
||||
kVideoTimingExtensionId,
|
||||
};
|
||||
|
||||
constexpr int64_t kRtcpIntervalMs = 1000;
|
||||
|
||||
enum VideoFormat {
|
||||
@ -84,6 +93,12 @@ enum VideoFormat {
|
||||
VideoFrame CreateVideoFrame(int width, int height, uint8_t data);
|
||||
|
||||
class VideoSendStreamTest : public test::CallTest {
|
||||
public:
|
||||
VideoSendStreamTest() {
|
||||
RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
|
||||
protected:
|
||||
void TestNackRetransmission(uint32_t retransmit_ssrc,
|
||||
uint8_t retransmit_payload_type);
|
||||
@ -163,7 +178,7 @@ TEST_F(VideoSendStreamTest, SupportsAbsoluteSendTime) {
|
||||
public:
|
||||
AbsoluteSendTimeObserver() : SendTest(kDefaultTimeoutMs) {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionAbsoluteSendTime, test::kAbsSendTimeExtensionId));
|
||||
kRtpExtensionAbsoluteSendTime, kAbsSendTimeExtensionId));
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
@ -193,8 +208,8 @@ TEST_F(VideoSendStreamTest, SupportsAbsoluteSendTime) {
|
||||
std::vector<VideoReceiveStream::Config>* receive_configs,
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
}
|
||||
|
||||
void PerformTest() override {
|
||||
@ -215,7 +230,7 @@ TEST_F(VideoSendStreamTest, SupportsTransmissionTimeOffset) {
|
||||
Clock::GetRealTimeClock(), kEncodeDelayMs);
|
||||
}) {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionTransmissionTimeOffset, test::kTOffsetExtensionId));
|
||||
kRtpExtensionTransmissionTimeOffset, kTimestampOffsetExtensionId));
|
||||
}
|
||||
|
||||
private:
|
||||
@ -239,7 +254,7 @@ TEST_F(VideoSendStreamTest, SupportsTransmissionTimeOffset) {
|
||||
send_config->encoder_settings.encoder_factory = &encoder_factory_;
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kTimestampOffsetUri, test::kTOffsetExtensionId));
|
||||
RtpExtension::kTimestampOffsetUri, kTimestampOffsetExtensionId));
|
||||
}
|
||||
|
||||
void PerformTest() override {
|
||||
@ -253,7 +268,7 @@ TEST_F(VideoSendStreamTest, SupportsTransmissionTimeOffset) {
|
||||
}
|
||||
|
||||
TEST_F(VideoSendStreamTest, SupportsTransportWideSequenceNumbers) {
|
||||
static const uint8_t kExtensionId = test::kTransportSequenceNumberExtensionId;
|
||||
static const uint8_t kExtensionId = kTransportSequenceNumberExtensionId;
|
||||
class TransportWideSequenceNumberObserver : public test::SendTest {
|
||||
public:
|
||||
TransportWideSequenceNumberObserver()
|
||||
@ -301,7 +316,7 @@ TEST_F(VideoSendStreamTest, SupportsVideoRotation) {
|
||||
public:
|
||||
VideoRotationObserver() : SendTest(kDefaultTimeoutMs) {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionVideoRotation, test::kVideoRotationExtensionId));
|
||||
kRtpExtensionVideoRotation, kVideoRotationExtensionId));
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
@ -322,7 +337,7 @@ TEST_F(VideoSendStreamTest, SupportsVideoRotation) {
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kVideoRotationUri, test::kVideoRotationExtensionId));
|
||||
RtpExtension::kVideoRotationUri, kVideoRotationExtensionId));
|
||||
}
|
||||
|
||||
void OnFrameGeneratorCapturerCreated(
|
||||
@ -344,7 +359,7 @@ TEST_F(VideoSendStreamTest, SupportsVideoContentType) {
|
||||
VideoContentTypeObserver()
|
||||
: SendTest(kDefaultTimeoutMs), first_frame_sent_(false) {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionVideoContentType, test::kVideoContentTypeExtensionId));
|
||||
kRtpExtensionVideoContentType, kVideoContentTypeExtensionId));
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
@ -367,9 +382,8 @@ TEST_F(VideoSendStreamTest, SupportsVideoContentType) {
|
||||
std::vector<VideoReceiveStream::Config>* receive_configs,
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kVideoContentTypeUri,
|
||||
test::kVideoContentTypeExtensionId));
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kVideoContentTypeUri, kVideoContentTypeExtensionId));
|
||||
encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen;
|
||||
}
|
||||
|
||||
@ -389,8 +403,8 @@ TEST_F(VideoSendStreamTest, SupportsVideoTimingFrames) {
|
||||
public:
|
||||
VideoTimingObserver()
|
||||
: SendTest(kDefaultTimeoutMs), first_frame_sent_(false) {
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(
|
||||
kRtpExtensionVideoTiming, test::kVideoTimingExtensionId));
|
||||
EXPECT_TRUE(parser_->RegisterRtpHeaderExtension(kRtpExtensionVideoTiming,
|
||||
kVideoTimingExtensionId));
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
@ -412,8 +426,8 @@ TEST_F(VideoSendStreamTest, SupportsVideoTimingFrames) {
|
||||
std::vector<VideoReceiveStream::Config>* receive_configs,
|
||||
VideoEncoderConfig* encoder_config) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kVideoTimingUri, test::kVideoTimingExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kVideoTimingUri, kVideoTimingExtensionId));
|
||||
}
|
||||
|
||||
void PerformTest() override {
|
||||
@ -464,7 +478,12 @@ class UlpfecObserver : public test::EndToEndTest {
|
||||
expect_ulpfec_(expect_ulpfec),
|
||||
sent_media_(false),
|
||||
sent_ulpfec_(false),
|
||||
header_extensions_enabled_(header_extensions_enabled) {}
|
||||
header_extensions_enabled_(header_extensions_enabled) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
|
||||
kAbsSendTimeExtensionId);
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kTransportSequenceNumberExtensionId);
|
||||
}
|
||||
|
||||
// Some of the test cases are expected to time out and thus we are using
|
||||
// a shorter timeout window than the default here.
|
||||
@ -564,12 +583,11 @@ class UlpfecObserver : public test::EndToEndTest {
|
||||
VideoSendStreamTest::kRedPayloadType;
|
||||
send_config->rtp.ulpfec.ulpfec_payload_type =
|
||||
VideoSendStreamTest::kUlpfecPayloadType;
|
||||
EXPECT_FALSE(send_config->rtp.extensions.empty());
|
||||
if (!header_extensions_enabled_) {
|
||||
send_config->rtp.extensions.clear();
|
||||
} else {
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
}
|
||||
encoder_config->codec_type = PayloadStringToCodecType(payload_name_);
|
||||
(*receive_configs)[0].rtp.red_payload_type =
|
||||
@ -687,7 +705,14 @@ class FlexfecObserver : public test::EndToEndTest {
|
||||
sent_media_(false),
|
||||
sent_flexfec_(false),
|
||||
header_extensions_enabled_(header_extensions_enabled),
|
||||
num_video_streams_(num_video_streams) {}
|
||||
num_video_streams_(num_video_streams) {
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
|
||||
kAbsSendTimeExtensionId);
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset,
|
||||
kTimestampOffsetExtensionId);
|
||||
parser_->RegisterRtpHeaderExtension(kRtpExtensionTransportSequenceNumber,
|
||||
kTransportSequenceNumberExtensionId);
|
||||
}
|
||||
|
||||
size_t GetNumFlexfecStreams() const override { return 1; }
|
||||
size_t GetNumVideoStreams() const override { return num_video_streams_; }
|
||||
@ -751,10 +776,10 @@ class FlexfecObserver : public test::EndToEndTest {
|
||||
send_config->encoder_settings.encoder_factory = encoder_factory_;
|
||||
send_config->rtp.payload_name = payload_name_;
|
||||
if (header_extensions_enabled_) {
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kAbsSendTimeUri, test::kAbsSendTimeExtensionId));
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kTimestampOffsetUri, test::kTOffsetExtensionId));
|
||||
RtpExtension::kTimestampOffsetUri, kTimestampOffsetExtensionId));
|
||||
} else {
|
||||
send_config->rtp.extensions.clear();
|
||||
}
|
||||
@ -1628,7 +1653,7 @@ TEST_F(VideoSendStreamTest, MinTransmitBitrateRespectsRemb) {
|
||||
TEST_F(VideoSendStreamTest, ChangingNetworkRoute) {
|
||||
static const int kStartBitrateBps = 300000;
|
||||
static const int kNewMaxBitrateBps = 1234567;
|
||||
static const uint8_t kExtensionId = test::kTransportSequenceNumberExtensionId;
|
||||
static const uint8_t kExtensionId = kTransportSequenceNumberExtensionId;
|
||||
class ChangingNetworkRouteTest : public test::EndToEndTest {
|
||||
public:
|
||||
explicit ChangingNetworkRouteTest(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user