Add --dependency_descriptor flag to video_loopback.

Bug: webrtc:14801
Change-Id: I8151f66ceb118a7abd40bbdc5bff71b5fdf66cb5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/289961
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38977}
This commit is contained in:
philipel 2022-12-30 13:21:07 +01:00 committed by WebRTC LUCI CQ
parent a282bfca8d
commit 7496ff655a
3 changed files with 14 additions and 1 deletions

View File

@ -37,6 +37,7 @@ class VideoQualityTestFixtureInterface {
struct CallConfig {
bool send_side_bwe = false;
bool generic_descriptor = false;
bool dependency_descriptor = false;
BitrateConstraints call_bitrate_config;
int num_thumbnails = 0;
// Indicates if secondary_(video|ss|screenshare) structures are used.

View File

@ -171,6 +171,8 @@ ABSL_FLAG(bool, send_side_bwe, true, "Use send-side bandwidth estimation");
ABSL_FLAG(bool, generic_descriptor, false, "Use the generic frame descriptor.");
ABSL_FLAG(bool, dependency_descriptor, false, "Use the dependency descriptor.");
ABSL_FLAG(bool, allow_reordering, false, "Allow packet reordering to occur");
ABSL_FLAG(bool, use_ulpfec, false, "Use RED+ULPFEC forward error correction.");
@ -378,6 +380,8 @@ void Loopback() {
VideoQualityTest::Params params;
params.call.send_side_bwe = absl::GetFlag(FLAGS_send_side_bwe);
params.call.generic_descriptor = absl::GetFlag(FLAGS_generic_descriptor);
params.call.dependency_descriptor =
absl::GetFlag(FLAGS_dependency_descriptor);
params.call.call_bitrate_config = call_bitrate_config;
params.video[0].enabled = absl::GetFlag(FLAGS_video);

View File

@ -710,7 +710,9 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
std::string generic_codec_name;
webrtc::VideoEncoder::EncoderInfo encoder_info;
for (size_t video_idx = 0; video_idx < num_video_streams_; ++video_idx) {
video_send_configs_.push_back(VideoSendStream::Config(send_transport));
VideoSendStream::Config config(send_transport);
config.rtp.extmap_allow_mixed = true;
video_send_configs_.push_back(std::move(config));
video_encoder_configs_.push_back(VideoEncoderConfig());
num_video_substreams = params_.ss[video_idx].streams.size();
RTC_CHECK_GT(num_video_substreams, 0);
@ -769,6 +771,12 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
kGenericFrameDescriptorExtensionId00);
}
if (params_.call.dependency_descriptor) {
video_send_configs_[video_idx].rtp.extensions.emplace_back(
RtpExtension::kDependencyDescriptorUri,
kRtpExtensionGenericFrameDescriptor02);
}
video_send_configs_[video_idx].rtp.extensions.emplace_back(
RtpExtension::kVideoContentTypeUri, kVideoContentTypeExtensionId);
video_send_configs_[video_idx].rtp.extensions.emplace_back(