Refactor peer connection API dependencies
Improve the dependency graph by replacing broad dependencies with more
specific ones. This refactoring clarifies the relationships between
build targets and removes unnecessary coupling.
The main changes include:
- Replacing dependencies on the large `api:libjingle_peerconnection_api`
meta-target with the more specific `api:jsep` target where
appropriate.
- Removing several unnecessary dependencies on
`api:libjingle_peerconnection_api` from various test and utility
targets.
- Adding a direct dependency on `pc:webrtc_sdp` to the main
`pc:libjingle_peerconnection` target.
Bug: none
Change-Id: Ib676c2f75dc5466835960e572cc774f89be6aad8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/415401
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45878}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index a4fa721..2ae649e 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -349,13 +349,12 @@
# Remove when downstream has been updated
"dtmf_sender_interface.h",
- "jsep.h",
+ "jsep.h", # allow to be included from peer_connection_interface.h
"rtp_sender_interface.h",
]
public_deps += [ # no-presubmit-check TODO(webrtc:8603)
# Remove when downstream has been updated
":dtmf_sender_interface",
- ":jsep",
":rtp_sender_interface",
]
deps = [
@@ -1038,7 +1037,6 @@
]
deps = [
":ice_transport_interface",
- ":libjingle_peerconnection_api",
":make_ref_counted",
":packet_socket_factory",
":scoped_refptr",
@@ -1295,7 +1293,6 @@
":rtp_parameters",
# For api/crypto/frame_encryptor_interface.h
- ":libjingle_peerconnection_api",
"../test:test_support",
"crypto:frame_encryptor_interface",
]
@@ -1307,7 +1304,6 @@
sources = [ "test/mock_frame_decryptor.h" ]
deps = [
":array_view",
- ":libjingle_peerconnection_api",
":rtp_parameters",
"../test:test_support",
"crypto:frame_decryptor_interface",
@@ -1330,7 +1326,6 @@
testonly = true
sources = [ "test/mock_encoder_selector.h" ]
deps = [
- ":libjingle_peerconnection_api",
"../api/video_codecs:video_codecs_api",
"../test:test_support",
"units:data_rate",
@@ -1347,7 +1342,6 @@
]
deps = [
":array_view",
- ":libjingle_peerconnection_api",
":make_ref_counted",
":ref_count",
":rtp_parameters",
@@ -1366,7 +1360,6 @@
]
deps = [
":array_view",
- ":libjingle_peerconnection_api",
":make_ref_counted",
":rtp_parameters",
"../rtc_base:checks",
@@ -1412,6 +1405,7 @@
":candidate",
":data_channel_event_observer_interface",
":dtls_transport_interface",
+ ":jsep",
":libjingle_logging_api",
":libjingle_peerconnection_api",
":make_ref_counted",
@@ -1685,6 +1679,7 @@
":field_trials",
":field_trials_view",
":function_view",
+ ":jsep",
":libjingle_peerconnection_api",
":rtc_error",
":rtc_event_log_output_file",
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 2fa1b29..1878046 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -683,6 +683,7 @@
"../api:create_modular_peer_connection_factory",
"../api:enable_media",
"../api:field_trials",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:media_stream_interface",
diff --git a/examples/androidnativeapi/BUILD.gn b/examples/androidnativeapi/BUILD.gn
index 26d136a..8620a00 100644
--- a/examples/androidnativeapi/BUILD.gn
+++ b/examples/androidnativeapi/BUILD.gn
@@ -61,6 +61,7 @@
"../../rtc_base:ssl_adapter",
"../../rtc_base:threading",
"../../rtc_base/synchronization:mutex",
+ "//api:jsep",
"//api:libjingle_peerconnection_api",
"//api/rtc_event_log:rtc_event_log_factory",
"//api/task_queue:default_task_queue_factory",
@@ -68,6 +69,7 @@
"//media:rtc_internal_video_codecs",
"//modules/utility",
"//pc:libjingle_peerconnection",
+ "//pc:webrtc_sdp",
"//sdk/android:native_api_base",
"//sdk/android:native_api_jni",
"//sdk/android:native_api_video",
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 721709e..22c08f5 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -74,7 +74,7 @@
":rtp_media_utils",
":rtp_transport_internal",
":session_description",
- "../api:libjingle_peerconnection_api",
+ "../api:jsep",
"../api:rtc_error",
"../api:rtp_headers",
"../api:rtp_parameters",
@@ -118,7 +118,7 @@
deps = [
":rtp_transport_internal",
":session_description",
- "../api:libjingle_peerconnection_api",
+ "../api:jsep",
"../api:rtp_parameters",
"../media:media_channel",
"../media:rtc_media_config",
@@ -221,6 +221,7 @@
"../api:array_view",
"../api:candidate",
"../api:ice_transport_interface",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:rtc_error",
@@ -255,6 +256,7 @@
deps = [
":jsep_transport",
":session_description",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:sequence_checker",
"../p2p:p2p_constants",
@@ -291,6 +293,7 @@
"../api:dtls_transport_interface",
"../api:ice_transport_factory",
"../api:ice_transport_interface",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:local_network_access_permission",
"../api:rtc_error",
@@ -499,6 +502,7 @@
"../api:candidate",
"../api:data_channel_event_observer_interface",
"../api:dtls_transport_interface",
+ "../api:jsep",
"../api:libjingle_logging_api",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
@@ -953,6 +957,7 @@
":usage_pattern",
"../api:candidate",
"../api:field_trials_view",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_error",
@@ -1448,8 +1453,6 @@
"../media:stream_params",
"../p2p:ice_transport_internal",
"../p2p:p2p_constants",
- "../p2p:port",
- "../p2p:port_interface",
"../p2p:transport_description",
"../p2p:transport_info",
"../rtc_base:checks",
@@ -1458,7 +1461,6 @@
"../rtc_base:logging",
"../rtc_base:net_helper",
"../rtc_base:net_helpers",
- "../rtc_base:network_constants",
"../rtc_base:socket_address",
"../rtc_base:ssl",
"../rtc_base:stringutils",
@@ -1617,6 +1619,7 @@
]
deps = [
":legacy_stats_collector_interface",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_error",
@@ -2073,6 +2076,7 @@
":jsep_session_description",
":peer_connection_factory",
":rtc_stats_collector",
+ ":webrtc_sdp",
"../api:libjingle_peerconnection_api",
"../stats",
]
@@ -2334,6 +2338,7 @@
"../api:enable_media_with_defaults",
"../api:field_trials",
"../api:field_trials_view",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:media_stream_interface",
@@ -2363,6 +2368,7 @@
"../p2p:p2p_test_utils",
"../p2p:port_interface",
"../p2p:transport_description",
+ "../pc:webrtc_sdp",
"../rtc_base:checks",
"../rtc_base:crypto_random",
"../rtc_base:logging",
@@ -2395,6 +2401,7 @@
":peer_connection_proxy",
":sdp_utils",
"../api:function_view",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:make_ref_counted",
"../api:media_stream_interface",
@@ -2403,6 +2410,7 @@
"../api:rtc_stats_api",
"../api:rtp_parameters",
"../api:scoped_refptr",
+ "../pc:webrtc_sdp",
"../rtc_base:checks",
"../rtc_base:logging",
"../test:test_support",
diff --git a/rtc_tools/data_channel_benchmark/BUILD.gn b/rtc_tools/data_channel_benchmark/BUILD.gn
index c566bcf..29a302f 100644
--- a/rtc_tools/data_channel_benchmark/BUILD.gn
+++ b/rtc_tools/data_channel_benchmark/BUILD.gn
@@ -64,6 +64,7 @@
"../../api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
"../../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
"../../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+ "../../pc:libjingle_peerconnection",
"../../rtc_base:checks",
"../../rtc_base:copy_on_write_buffer",
"../../rtc_base:logging",
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 75f5ee2..0ff3f0b 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -1112,6 +1112,7 @@
"../api:dtmf_sender_interface",
"../api:enable_media",
"../api:field_trials_view",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:rtc_event_log_output_file",
@@ -1229,6 +1230,7 @@
":videosource_objc",
":videotoolbox_objc",
"../api:array_view",
+ "../api:jsep",
"../api:libjingle_peerconnection_api",
"../api:rtc_error_matchers",
"../api:scoped_refptr",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 041264a..87f5903 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -834,6 +834,7 @@
"../../api:dtmf_sender_interface",
"../../api:enable_media",
"../../api:fec_controller_api",
+ "../../api:jsep",
"../../api:libjingle_peerconnection_api",
"../../api:make_ref_counted",
"../../api:media_stream_interface",
@@ -1141,6 +1142,7 @@
deps = [
":base_jni",
":peerconnection_jni",
+ "../../api:jsep",
"../../api:libjingle_peerconnection_api",
"../../api:scoped_refptr",
"../../api/video_codecs:video_codecs_api",
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 0c7ce99..c19bdf1 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -290,7 +290,6 @@
deps = [
":test_video_capturer",
":video_test_common",
- "../api:libjingle_peerconnection_api",
"../api:media_stream_interface",
"../api:scoped_refptr",
"../api/video:video_frame",
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index 5611c78..6d9ebd1 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -488,7 +488,7 @@
webrtc_fuzzer_test("sdp_parser_fuzzer") {
sources = [ "sdp_parser_fuzzer.cc" ]
deps = [
- "../../api:libjingle_peerconnection_api",
+ "../../api:jsep",
"../../pc:libjingle_peerconnection",
]
seed_corpus = "corpora/sdp-corpus"
@@ -503,6 +503,7 @@
sources = [ "sdp_integration_fuzzer.cc" ]
deps = [
"..:wait_until",
+ "../../api:jsep",
"../../api:libjingle_peerconnection_api",
"../../api:make_ref_counted",
"../../api:rtc_error_matchers",
diff --git a/test/peer_scenario/BUILD.gn b/test/peer_scenario/BUILD.gn
index e1a00b3..4aca052 100644
--- a/test/peer_scenario/BUILD.gn
+++ b/test/peer_scenario/BUILD.gn
@@ -82,6 +82,7 @@
"../../pc:pc_test_utils",
"../../pc:rtp_transport_internal",
"../../pc:session_description",
+ "../../pc:webrtc_sdp",
"../../rtc_base:async_packet_socket",
"../../rtc_base:checks",
"../../rtc_base:copy_on_write_buffer",
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 76a6455..5d60df8 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -89,10 +89,8 @@
"../../api:field_trials",
"../../api:frame_generator_api",
"../../api:libjingle_logging_api",
- "../../api:libjingle_peerconnection_api",
"../../api:make_ref_counted",
"../../api:network_emulation_manager_api",
- "../../api:rtc_event_log_output_file",
"../../api:rtp_headers",
"../../api:rtp_parameters",
"../../api:scoped_refptr",
@@ -121,7 +119,6 @@
"../../api/video:builtin_video_bitrate_allocator_factory",
"../../api/video:video_bitrate_allocator_factory",
"../../api/video:video_frame",
- "../../api/video:video_rtp_headers",
"../../api/video_codecs:scalability_mode",
"../../api/video_codecs:video_codecs_api",
"../../audio",