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;
   }