Remove all references to codec-level transport-cc functions and flags.
This seems to have no effect on tests, so it appears that these were
not used after all.
The goal is to make transport-cc a media-section-level attribute.
Bug: webrtc:378698658
Change-Id: Ia20ca5b91472b02db30f911ad1a1892cf36cd682
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/368440
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43411}
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 9f3889a..437883d 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -166,6 +166,7 @@
"../api:bitrate_allocation",
"../api:frame_transformer_factory",
"../api:frame_transformer_interface",
+ "../api:function_view",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:mock_audio_mixer",
@@ -174,6 +175,7 @@
"../api:mock_frame_transformer",
"../api:mock_transformable_audio_frame",
"../api:rtp_headers",
+ "../api:rtp_parameters",
"../api:scoped_refptr",
"../api:transport_api",
"../api/audio:audio_frame_api",
@@ -183,15 +185,20 @@
"../api/audio_codecs/opus:audio_decoder_opus",
"../api/audio_codecs/opus:audio_encoder_opus",
"../api/crypto:frame_decryptor_interface",
+ "../api/crypto:frame_encryptor_interface",
"../api/crypto:options",
"../api/environment",
"../api/environment:environment_factory",
"../api/task_queue:default_task_queue_factory",
"../api/task_queue/test:mock_task_queue_base",
"../api/transport:bitrate_settings",
+ "../api/transport:network_control",
"../api/units:data_rate",
+ "../api/units:data_size",
"../api/units:time_delta",
"../api/units:timestamp",
+ "../call:bitrate_allocator",
+ "../call:call_interfaces",
"../call:mock_bitrate_allocator",
"../call:mock_call_interfaces",
"../call:mock_rtp_interfaces",
diff --git a/audio/audio_send_stream_unittest.cc b/audio/audio_send_stream_unittest.cc
index c487d7b..e89dffa 100644
--- a/audio/audio_send_stream_unittest.cc
+++ b/audio/audio_send_stream_unittest.cc
@@ -10,27 +10,47 @@
#include "audio/audio_send_stream.h"
+#include <cstddef>
+#include <cstdint>
#include <memory>
+#include <optional>
#include <string>
-#include <thread>
#include <utility>
#include <vector>
+#include "api/audio/audio_frame.h"
#include "api/audio/audio_processing_statistics.h"
+#include "api/audio_codecs/audio_encoder.h"
+#include "api/audio_codecs/audio_format.h"
+#include "api/call/bitrate_allocation.h"
+#include "api/crypto/frame_encryptor_interface.h"
#include "api/environment/environment_factory.h"
+#include "api/function_view.h"
+#include "api/make_ref_counted.h"
+#include "api/rtp_parameters.h"
+#include "api/scoped_refptr.h"
#include "api/test/mock_frame_encryptor.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
#include "audio/audio_state.h"
+#include "audio/channel_send.h"
#include "audio/conversion.h"
#include "audio/mock_voe_channel_proxy.h"
+#include "call/audio_state.h"
+#include "call/bitrate_allocator.h"
#include "call/test/mock_bitrate_allocator.h"
#include "call/test/mock_rtp_transport_controller_send.h"
#include "modules/audio_device/include/mock_audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "modules/audio_mixer/sine_wave_generator.h"
#include "modules/audio_processing/include/mock_audio_processing.h"
+#include "modules/rtp_rtcp/include/report_block_data.h"
#include "modules/rtp_rtcp/mocks/mock_network_link_rtcp_observer.h"
#include "modules/rtp_rtcp/mocks/mock_rtp_rtcp.h"
-#include "system_wrappers/include/clock.h"
+#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
+#include "test/gmock.h"
#include "test/gtest.h"
#include "test/mock_audio_encoder.h"
#include "test/mock_audio_encoder_factory.h"
@@ -200,7 +220,6 @@
static void AddBweToConfig(AudioSendStream::Config* config) {
config->rtp.extensions.push_back(RtpExtension(
RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId));
- config->send_codec_spec->transport_cc_enabled = true;
}
void SetupDefaultChannelSend(bool audio_bwe_enabled) {
@@ -354,7 +373,6 @@
config.send_codec_spec =
AudioSendStream::Config::SendCodecSpec(kIsacPayloadType, kIsacFormat);
config.send_codec_spec->nack_enabled = true;
- config.send_codec_spec->transport_cc_enabled = false;
config.send_codec_spec->cng_payload_type = 42;
config.send_codec_spec->red_payload_type = 43;
config.encoder_factory = MockAudioEncoderFactory::CreateUnusedFactory();
@@ -369,7 +387,7 @@
"send_transport: null, "
"min_bitrate_bps: 12000, max_bitrate_bps: 34000, has "
"audio_network_adaptor_config: false, has_dscp: true, "
- "send_codec_spec: {nack_enabled: true, transport_cc_enabled: false, "
+ "send_codec_spec: {nack_enabled: true, "
"enable_non_sender_rtt: false, cng_payload_type: 42, "
"red_payload_type: 43, payload_type: 103, "
"format: {name: isac, clockrate_hz: 16000, num_channels: 1, "
diff --git a/call/audio_send_stream.cc b/call/audio_send_stream.cc
index bd7300d..f58a24b 100644
--- a/call/audio_send_stream.cc
+++ b/call/audio_send_stream.cc
@@ -84,7 +84,6 @@
char buf[1024];
rtc::SimpleStringBuilder ss(buf);
ss << "{nack_enabled: " << (nack_enabled ? "true" : "false");
- ss << ", transport_cc_enabled: " << (transport_cc_enabled ? "true" : "false");
ss << ", enable_non_sender_rtt: "
<< (enable_non_sender_rtt ? "true" : "false");
ss << ", cng_payload_type: "
@@ -100,7 +99,6 @@
bool AudioSendStream::Config::SendCodecSpec::operator==(
const AudioSendStream::Config::SendCodecSpec& rhs) const {
if (nack_enabled == rhs.nack_enabled &&
- transport_cc_enabled == rhs.transport_cc_enabled &&
enable_non_sender_rtt == rhs.enable_non_sender_rtt &&
cng_payload_type == rhs.cng_payload_type &&
red_payload_type == rhs.red_payload_type &&
diff --git a/call/audio_send_stream.h b/call/audio_send_stream.h
index 540956c..768ba0b 100644
--- a/call/audio_send_stream.h
+++ b/call/audio_send_stream.h
@@ -145,7 +145,6 @@
int payload_type;
SdpAudioFormat format;
bool nack_enabled = false;
- bool transport_cc_enabled = false;
bool enable_non_sender_rtt = false;
std::optional<int> cng_payload_type;
std::optional<int> red_payload_type;
diff --git a/media/BUILD.gn b/media/BUILD.gn
index c66c288..5563fae 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -982,6 +982,7 @@
"../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
"../audio",
"../call:call_interfaces",
+ "../call:payload_type_picker",
"../call:video_receive_stream_api",
"../call:video_send_stream_api",
"../common_video",
diff --git a/media/base/codec.cc b/media/base/codec.cc
index e1a114d..d541c77 100644
--- a/media/base/codec.cc
+++ b/media/base/codec.cc
@@ -25,7 +25,7 @@
#include "api/video_codecs/h264_profile_level_id.h"
#include "api/video_codecs/sdp_video_format.h"
#ifdef RTC_ENABLE_H265
-#include "api/video_codecs/h265_profile_tier_level.h"
+#include "api/video_codecs/h265_profile_tier_level.h" // IWYU pragma: keep
#endif
#include "media/base/codec_comparators.h"
#include "media/base/media_constants.h"
@@ -318,11 +318,6 @@
FeedbackParam(kRtcpFbParamRrtr, kParamValueEmpty));
}
-bool HasTransportCc(const Codec& codec) {
- return codec.HasFeedbackParam(
- FeedbackParam(kRtcpFbParamTransportCc, kParamValueEmpty));
-}
-
const Codec* FindMatchingVideoCodec(const std::vector<Codec>& supported_codecs,
const Codec& codec) {
webrtc::SdpVideoFormat sdp_video_format{codec.name, codec.params};
diff --git a/media/base/codec.h b/media/base/codec.h
index 5324abb..c393741 100644
--- a/media/base/codec.h
+++ b/media/base/codec.h
@@ -249,7 +249,6 @@
bool HasNack(const Codec& codec);
bool HasRemb(const Codec& codec);
bool HasRrtr(const Codec& codec);
-bool HasTransportCc(const Codec& codec);
// Returns the first codec in `supported_codecs` that matches `codec`, or
// nullptr if no codec matches.
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 3aff1a6..83b3d22 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -4519,8 +4519,7 @@
};
TEST_F(WebRtcVideoChannelFlexfecRecvTest,
- DefaultFlexfecCodecHasTransportCcAndRembFeedbackParam) {
- EXPECT_TRUE(cricket::HasTransportCc(GetEngineCodec("flexfec-03")));
+ DefaultFlexfecCodecHasRembFeedbackParam) {
EXPECT_TRUE(cricket::HasRemb(GetEngineCodec("flexfec-03")));
}
diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc
index e3b99f2..e2a9cd2 100644
--- a/media/engine/webrtc_voice_engine.cc
+++ b/media/engine/webrtc_voice_engine.cc
@@ -1456,7 +1456,6 @@
if (voice_codec.bitrate > 0) {
send_codec_spec->target_bitrate_bps = voice_codec.bitrate;
}
- send_codec_spec->transport_cc_enabled = HasTransportCc(voice_codec);
send_codec_spec->nack_enabled = HasNack(voice_codec);
send_codec_spec->enable_non_sender_rtt = HasRrtr(voice_codec);
bitrate_config = GetBitrateConfigForCodec(voice_codec);
diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc
index 7fdfaea..1e6f03e 100644
--- a/media/engine/webrtc_voice_engine_unittest.cc
+++ b/media/engine/webrtc_voice_engine_unittest.cc
@@ -48,6 +48,7 @@
#include "call/audio_state.h"
#include "call/call.h"
#include "call/call_config.h"
+#include "call/payload_type_picker.h"
#include "media/base/codec.h"
#include "media/base/fake_media_engine.h"
#include "media/base/fake_network_interface.h"
@@ -956,18 +957,6 @@
EXPECT_EQ("", config.sync_group);
}
-TEST_P(WebRtcVoiceEngineTestFake, OpusSupportsTransportCc) {
- const std::vector<cricket::Codec>& codecs = engine_->send_codecs();
- bool opus_found = false;
- for (const cricket::Codec& codec : codecs) {
- if (codec.name == "opus") {
- EXPECT_TRUE(HasTransportCc(codec));
- opus_found = true;
- }
- }
- EXPECT_TRUE(opus_found);
-}
-
// Test that we set our inbound codecs properly, including changing PT.
TEST_P(WebRtcVoiceEngineTestFake, SetRecvCodecs) {
EXPECT_TRUE(SetupChannel());
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 5b7f9a6..f5c5cd5 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -84,12 +84,15 @@
"../../api:frame_generator_api",
"../../api:libjingle_peerconnection_api",
"../../api:rtc_event_log_output_file",
+ "../../api:rtp_headers",
"../../api:rtp_parameters",
+ "../../api:scoped_refptr",
"../../api:sequence_checker",
"../../api:time_controller",
"../../api:transport_api",
"../../api/audio:audio_device",
"../../api/audio:builtin_audio_processing_builder",
+ "../../api/audio_codecs:audio_codecs_api",
"../../api/audio_codecs:builtin_audio_decoder_factory",
"../../api/audio_codecs:builtin_audio_encoder_factory",
"../../api/environment",
@@ -144,6 +147,7 @@
"../../rtc_base:rtc_stats_counters",
"../../rtc_base:safe_minmax",
"../../rtc_base:socket_address",
+ "../../rtc_base:stringutils",
"../../rtc_base:task_queue_for_test",
"../../rtc_base:threading",
"../../rtc_base/synchronization:mutex",
diff --git a/test/scenario/audio_stream.cc b/test/scenario/audio_stream.cc
index 64b6406..2e8f7fc 100644
--- a/test/scenario/audio_stream.cc
+++ b/test/scenario/audio_stream.cc
@@ -9,8 +9,27 @@
*/
#include "test/scenario/audio_stream.h"
-#include "absl/memory/memory.h"
-#include "test/call_test.h"
+#include <cstdint>
+#include <optional>
+#include <string>
+#include <vector>
+
+#include "api/audio_codecs/audio_decoder_factory.h"
+#include "api/audio_codecs/audio_encoder_factory.h"
+#include "api/call/transport.h"
+#include "api/media_types.h"
+#include "api/rtp_headers.h"
+#include "api/rtp_parameters.h"
+#include "api/scoped_refptr.h"
+#include "api/units/data_rate.h"
+#include "api/units/time_delta.h"
+#include "call/audio_receive_stream.h"
+#include "call/audio_send_stream.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/strings/string_builder.h"
+#include "test/scenario/call_client.h"
+#include "test/scenario/column_printer.h"
+#include "test/scenario/scenario_config.h"
#include "test/video_test_constants.h"
#if WEBRTC_ENABLE_PROTOBUF
@@ -132,9 +151,6 @@
send_config.max_bitrate_bps = max_rate.bps();
}
- if (config.stream.in_bandwidth_estimation) {
- send_config.send_codec_spec->transport_cc_enabled = true;
- }
send_config.rtp.extensions = GetAudioRtpExtensions(config);
sender_->SendTask([&] {
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 83780db..4189592 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -514,32 +514,48 @@
"..//test/network:simulated_network",
"../api:create_frame_generator",
"../api:fec_controller_api",
+ "../api:field_trials_view",
"../api:frame_generator_api",
"../api:libjingle_peerconnection_api",
+ "../api:make_ref_counted",
"../api:rtc_event_log_output_file",
+ "../api:rtp_parameters",
+ "../api:scoped_refptr",
+ "../api:simulated_network_api",
"../api:test_dependency_factory",
+ "../api:transport_api",
"../api:video_quality_test_fixture_api",
"../api/audio:audio_device",
"../api/audio:builtin_audio_processing_builder",
"../api/environment",
"../api/numerics",
+ "../api/rtc_event_log",
"../api/rtc_event_log:rtc_event_log_factory",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/test/metrics:global_metrics_logger_and_exporter",
"../api/test/metrics:metric",
+ "../api/units:time_delta",
"../api/video:builtin_video_bitrate_allocator_factory",
+ "../api/video:encoded_image",
+ "../api/video:video_bitrate_allocation",
"../api/video:video_bitrate_allocator_factory",
+ "../api/video:video_codec_constants",
"../api/video:video_frame",
+ "../api/video:video_frame_type",
"../api/video:video_rtp_headers",
"../api/video_codecs:video_codecs_api",
+ "../call:call_interfaces",
"../call:fake_network",
+ "../call:video_receive_stream_api",
+ "../call:video_send_stream_api",
"../common_video",
"../media:media_constants",
"../media:rtc_audio_video",
"../media:rtc_internal_video_codecs",
"../media:rtc_simulcast_encoder_adapter",
"../modules/audio_device:audio_device_module_from_input_and_output",
+ "../modules/audio_device:test_audio_device_module",
"../modules/audio_device:windows_core_audio_utility",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
@@ -549,19 +565,25 @@
"../modules/video_coding:webrtc_h264",
"../modules/video_coding:webrtc_vp8",
"../modules/video_coding:webrtc_vp9",
+ "../rtc_base:checks",
+ "../rtc_base:logging",
"../rtc_base:macromagic",
"../rtc_base:platform_thread",
"../rtc_base:rtc_base_tests_utils",
"../rtc_base:rtc_event",
"../rtc_base:rtc_numerics",
+ "../rtc_base:safe_conversions",
"../rtc_base:stringutils",
"../rtc_base:task_queue_for_test",
"../rtc_base:timeutils",
"../rtc_base/synchronization:mutex",
+ "../rtc_base/system:file_wrapper",
"../rtc_base/task_utils:repeating_task",
"../system_wrappers",
+ "../test:direct_transport",
"../test:fake_video_codecs",
"../test:fileutils",
+ "../test:frame_generator_capturer",
"../test:platform_video_capturer",
"../test:rtp_test_utils",
"../test:test_common",
@@ -572,6 +594,7 @@
"../test:video_frame_writer",
"../test:video_test_common",
"../test:video_test_constants",
+ "config:encoder_config",
"config:streams_config",
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/flags:flag",
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 7d148f6..bb3e31f 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -11,13 +11,57 @@
#include <stdio.h>
+#include <cstdint>
+#include <optional>
+#include <tuple>
+#include <utility>
+
+#include "absl/flags/flag.h"
+#include "api/call/transport.h"
+#include "api/environment/environment.h"
+#include "api/field_trials_view.h"
+#include "api/make_ref_counted.h"
+#include "api/rtc_event_log/rtc_event_log.h"
+#include "api/rtp_parameters.h"
+#include "api/scoped_refptr.h"
+#include "api/test/frame_generator_interface.h"
+#include "api/test/simulated_network.h"
+#include "api/units/time_delta.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_codec_constants.h"
+#include "api/video/video_codec_type.h"
+#include "api/video/video_frame_type.h"
+#include "api/video/video_source_interface.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/spatial_layer.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
+#include "call/audio_receive_stream.h"
+#include "call/audio_send_stream.h"
+#include "call/audio_state.h"
+#include "call/call_config.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
+#include "media/engine/internal_decoder_factory.h"
+#include "modules/audio_device/include/test_audio_device.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/numerics/safe_conversions.h"
+#include "rtc_base/system/file_wrapper.h"
+#include "test/direct_transport.h"
+#include "test/frame_generator_capturer.h"
+#include "test/gtest.h"
+#include "test/layer_filtering_transport.h"
+#include "video/config/video_encoder_config.h"
+#include "video/video_analyzer.h"
+
#if defined(WEBRTC_WIN)
#include <conio.h>
#endif
#include <algorithm>
-#include <deque>
-#include <map>
#include <memory>
#include <string>
#include <vector>
@@ -39,9 +83,6 @@
#include "media/engine/simulcast_encoder_adapter.h"
#include "media/engine/webrtc_video_engine.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
-#include "modules/video_coding/codecs/h264/include/h264.h"
-#include "modules/video_coding/codecs/vp8/include/vp8.h"
-#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "modules/video_coding/utility/ivf_file_writer.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/task_queue_for_test.h"
@@ -1410,7 +1451,6 @@
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;
// Only allow ANA when send-side BWE is enabled.
audio_send_config.audio_network_adaptor_config = params_.audio.ana_config;
}