Update peer scenario test helpers to newer emulation network api
To minimize direct construction of BasicPortAllocator, network emulation manager api is changed to push toward injecting network dependencies to PeerConnectionFactory and let it create PortAllocator Bug: webrtc:42232556 Change-Id: I0c86d797a97d543c2f033286281dc1145d4ef51b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376880 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43872}
This commit is contained in:
parent
221013f316
commit
462640e04b
@ -26,26 +26,29 @@ if (rtc_include_tests) {
|
|||||||
"..:fake_video_codecs",
|
"..:fake_video_codecs",
|
||||||
"..:fileutils",
|
"..:fileutils",
|
||||||
"..:frame_generator_capturer",
|
"..:frame_generator_capturer",
|
||||||
|
"..:scoped_key_value_config",
|
||||||
"..:test_support",
|
"..:test_support",
|
||||||
"../../api:array_view",
|
"../../api:array_view",
|
||||||
|
"../../api:audio_options_api",
|
||||||
"../../api:candidate",
|
"../../api:candidate",
|
||||||
"../../api:create_time_controller",
|
"../../api:create_time_controller",
|
||||||
"../../api:libjingle_peerconnection_api",
|
"../../api:libjingle_peerconnection_api",
|
||||||
|
"../../api:make_ref_counted",
|
||||||
|
"../../api:media_stream_interface",
|
||||||
"../../api:network_emulation_manager_api",
|
"../../api:network_emulation_manager_api",
|
||||||
"../../api:rtc_stats_api",
|
"../../api:rtc_error",
|
||||||
"../../api:scoped_refptr",
|
"../../api:scoped_refptr",
|
||||||
"../../api:sequence_checker",
|
"../../api:sequence_checker",
|
||||||
"../../api:time_controller",
|
"../../api:time_controller",
|
||||||
"../../api/audio_codecs:builtin_audio_decoder_factory",
|
|
||||||
"../../api/audio_codecs:builtin_audio_encoder_factory",
|
|
||||||
"../../api/environment",
|
"../../api/environment",
|
||||||
"../../api/rtc_event_log:rtc_event_log_factory",
|
"../../api/rtc_event_log:rtc_event_log_factory",
|
||||||
"../../api/task_queue:default_task_queue_factory",
|
|
||||||
"../../api/test/network_emulation",
|
"../../api/test/network_emulation",
|
||||||
"../../api/transport:datagram_transport_interface",
|
"../../api/transport:datagram_transport_interface",
|
||||||
"../../api/transport:enums",
|
"../../api/transport:enums",
|
||||||
"../../api/transport:field_trial_based_config",
|
"../../api/transport:field_trial_based_config",
|
||||||
|
"../../api/video:video_frame",
|
||||||
"../../api/video_codecs:scalability_mode",
|
"../../api/video_codecs:scalability_mode",
|
||||||
|
"../../api/video_codecs:video_codecs_api",
|
||||||
"../../api/video_codecs:video_decoder_factory_template",
|
"../../api/video_codecs:video_decoder_factory_template",
|
||||||
"../../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
|
"../../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
|
||||||
"../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
|
"../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
|
||||||
@ -59,31 +62,33 @@ if (rtc_include_tests) {
|
|||||||
"../../call:payload_type_picker",
|
"../../call:payload_type_picker",
|
||||||
"../../call:rtp_interfaces",
|
"../../call:rtp_interfaces",
|
||||||
"../../call:rtp_receiver",
|
"../../call:rtp_receiver",
|
||||||
"../../media:rtc_audio_video",
|
"../../media:media_constants",
|
||||||
"../../media:rtp_utils",
|
"../../media:rtp_utils",
|
||||||
"../../modules/audio_device:test_audio_device_module",
|
"../../modules/audio_device:test_audio_device_module",
|
||||||
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
"../../modules/rtp_rtcp:rtp_rtcp_format",
|
||||||
|
"../../p2p:basic_packet_socket_factory",
|
||||||
"../../p2p:basic_port_allocator",
|
"../../p2p:basic_port_allocator",
|
||||||
"../../p2p:dtls_transport_internal",
|
"../../p2p:dtls_transport_internal",
|
||||||
"../../p2p:p2p_constants",
|
"../../p2p:p2p_constants",
|
||||||
"../../p2p:port_allocator",
|
"../../p2p:port_allocator",
|
||||||
"../../p2p:transport_description",
|
"../../p2p:transport_description",
|
||||||
"../../pc:channel",
|
|
||||||
"../../pc:dtls_transport",
|
"../../pc:dtls_transport",
|
||||||
"../../pc:jsep_transport_controller",
|
"../../pc:jsep_transport_controller",
|
||||||
"../../pc:pc_test_utils",
|
"../../pc:pc_test_utils",
|
||||||
"../../pc:rtp_transport_internal",
|
"../../pc:rtp_transport_internal",
|
||||||
"../../pc:session_description",
|
"../../pc:session_description",
|
||||||
"../../rtc_base:checks",
|
"../../rtc_base:checks",
|
||||||
|
"../../rtc_base:copy_on_write_buffer",
|
||||||
"../../rtc_base:crypto_random",
|
"../../rtc_base:crypto_random",
|
||||||
|
"../../rtc_base:logging",
|
||||||
"../../rtc_base:macromagic",
|
"../../rtc_base:macromagic",
|
||||||
|
"../../rtc_base:network",
|
||||||
"../../rtc_base:null_socket_server",
|
"../../rtc_base:null_socket_server",
|
||||||
"../../rtc_base:ssl",
|
"../../rtc_base:ssl",
|
||||||
"../../rtc_base:stringutils",
|
"../../rtc_base:stringutils",
|
||||||
"../../rtc_base:task_queue_for_test",
|
"../../rtc_base:task_queue_for_test",
|
||||||
|
"../../rtc_base:threading",
|
||||||
"../../rtc_base/third_party/sigslot",
|
"../../rtc_base/third_party/sigslot",
|
||||||
"../../test:explicit_key_value_config",
|
|
||||||
"../../test:scoped_key_value_config",
|
|
||||||
"../logging:log_writer",
|
"../logging:log_writer",
|
||||||
"../network:emulated_network",
|
"../network:emulated_network",
|
||||||
"../scenario",
|
"../scenario",
|
||||||
|
|||||||
@ -9,37 +9,68 @@
|
|||||||
*/
|
*/
|
||||||
#include "test/peer_scenario/peer_scenario_client.h"
|
#include "test/peer_scenario/peer_scenario_client.h"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <functional>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "absl/container/inlined_vector.h"
|
#include "absl/container/inlined_vector.h"
|
||||||
#include "absl/memory/memory.h"
|
#include "absl/memory/memory.h"
|
||||||
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
|
#include "api/audio_options.h"
|
||||||
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
#include "api/candidate.h"
|
||||||
|
#include "api/data_channel_interface.h"
|
||||||
#include "api/environment/environment.h"
|
#include "api/environment/environment.h"
|
||||||
|
#include "api/jsep.h"
|
||||||
|
#include "api/make_ref_counted.h"
|
||||||
|
#include "api/media_stream_interface.h"
|
||||||
|
#include "api/peer_connection_interface.h"
|
||||||
|
#include "api/rtc_error.h"
|
||||||
#include "api/rtc_event_log/rtc_event_log_factory.h"
|
#include "api/rtc_event_log/rtc_event_log_factory.h"
|
||||||
#include "api/task_queue/default_task_queue_factory.h"
|
#include "api/rtp_receiver_interface.h"
|
||||||
|
#include "api/rtp_transceiver_interface.h"
|
||||||
|
#include "api/scoped_refptr.h"
|
||||||
|
#include "api/sequence_checker.h"
|
||||||
|
#include "api/set_local_description_observer_interface.h"
|
||||||
|
#include "api/set_remote_description_observer_interface.h"
|
||||||
#include "api/test/create_time_controller.h"
|
#include "api/test/create_time_controller.h"
|
||||||
|
#include "api/test/network_emulation/network_emulation_interfaces.h"
|
||||||
|
#include "api/test/network_emulation_manager.h"
|
||||||
#include "api/transport/field_trial_based_config.h"
|
#include "api/transport/field_trial_based_config.h"
|
||||||
|
#include "api/video/video_frame.h"
|
||||||
|
#include "api/video/video_sink_interface.h"
|
||||||
|
#include "api/video/video_source_interface.h"
|
||||||
#include "api/video_codecs/scalability_mode.h"
|
#include "api/video_codecs/scalability_mode.h"
|
||||||
|
#include "api/video_codecs/sdp_video_format.h"
|
||||||
|
#include "api/video_codecs/video_decoder.h"
|
||||||
|
#include "api/video_codecs/video_decoder_factory.h"
|
||||||
#include "api/video_codecs/video_decoder_factory_template.h"
|
#include "api/video_codecs/video_decoder_factory_template.h"
|
||||||
#include "api/video_codecs/video_decoder_factory_template_dav1d_adapter.h"
|
#include "api/video_codecs/video_decoder_factory_template_dav1d_adapter.h"
|
||||||
#include "api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h"
|
#include "api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h"
|
||||||
#include "api/video_codecs/video_decoder_factory_template_libvpx_vp9_adapter.h"
|
#include "api/video_codecs/video_decoder_factory_template_libvpx_vp9_adapter.h"
|
||||||
#include "api/video_codecs/video_decoder_factory_template_open_h264_adapter.h"
|
#include "api/video_codecs/video_decoder_factory_template_open_h264_adapter.h"
|
||||||
|
#include "api/video_codecs/video_encoder.h"
|
||||||
|
#include "api/video_codecs/video_encoder_factory.h"
|
||||||
#include "api/video_codecs/video_encoder_factory_template.h"
|
#include "api/video_codecs/video_encoder_factory_template.h"
|
||||||
#include "api/video_codecs/video_encoder_factory_template_libaom_av1_adapter.h"
|
#include "api/video_codecs/video_encoder_factory_template_libaom_av1_adapter.h"
|
||||||
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
|
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
|
||||||
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
|
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
|
||||||
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
|
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
|
||||||
#include "media/engine/webrtc_media_engine.h"
|
#include "media/base/media_constants.h"
|
||||||
#include "modules/audio_device/include/test_audio_device.h"
|
#include "modules/audio_device/include/test_audio_device.h"
|
||||||
#include "p2p/client/basic_port_allocator.h"
|
#include "p2p/base/port_allocator.h"
|
||||||
|
#include "pc/test/frame_generator_capturer_video_track_source.h"
|
||||||
|
#include "rtc_base/checks.h"
|
||||||
|
#include "rtc_base/logging.h"
|
||||||
|
#include "rtc_base/thread.h"
|
||||||
#include "test/create_frame_generator_capturer.h"
|
#include "test/create_frame_generator_capturer.h"
|
||||||
#include "test/fake_decoder.h"
|
#include "test/fake_decoder.h"
|
||||||
#include "test/fake_vp8_encoder.h"
|
#include "test/fake_vp8_encoder.h"
|
||||||
#include "test/frame_generator_capturer.h"
|
#include "test/frame_generator_capturer.h"
|
||||||
|
#include "test/logging/log_writer.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
@ -252,6 +283,8 @@ PeerScenarioClient::PeerScenarioClient(
|
|||||||
pcf_deps.network_thread = manager->network_thread();
|
pcf_deps.network_thread = manager->network_thread();
|
||||||
pcf_deps.signaling_thread = signaling_thread_;
|
pcf_deps.signaling_thread = signaling_thread_;
|
||||||
pcf_deps.worker_thread = worker_thread_.get();
|
pcf_deps.worker_thread = worker_thread_.get();
|
||||||
|
pcf_deps.socket_factory = manager->socket_factory();
|
||||||
|
pcf_deps.network_manager = manager->ReleaseNetworkManager();
|
||||||
pcf_deps.task_queue_factory =
|
pcf_deps.task_queue_factory =
|
||||||
net->time_controller()->CreateTaskQueueFactory();
|
net->time_controller()->CreateTaskQueueFactory();
|
||||||
pcf_deps.event_log_factory = std::make_unique<RtcEventLogFactory>();
|
pcf_deps.event_log_factory = std::make_unique<RtcEventLogFactory>();
|
||||||
@ -293,10 +326,8 @@ PeerScenarioClient::PeerScenarioClient(
|
|||||||
pc_factory_->SetOptions(pc_options);
|
pc_factory_->SetOptions(pc_options);
|
||||||
|
|
||||||
PeerConnectionDependencies pc_deps(observer_.get());
|
PeerConnectionDependencies pc_deps(observer_.get());
|
||||||
pc_deps.allocator = std::make_unique<cricket::BasicPortAllocator>(
|
config.rtc_config.port_allocator_config.flags |=
|
||||||
manager->network_manager(), manager->packet_socket_factory());
|
cricket::PORTALLOCATOR_DISABLE_TCP;
|
||||||
pc_deps.allocator->set_flags(pc_deps.allocator->flags() |
|
|
||||||
cricket::PORTALLOCATOR_DISABLE_TCP);
|
|
||||||
peer_connection_ =
|
peer_connection_ =
|
||||||
pc_factory_
|
pc_factory_
|
||||||
->CreatePeerConnectionOrError(config.rtc_config, std::move(pc_deps))
|
->CreatePeerConnectionOrError(config.rtc_config, std::move(pc_deps))
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
#include "call/rtp_packet_sink_interface.h"
|
#include "call/rtp_packet_sink_interface.h"
|
||||||
#include "media/base/rtp_utils.h"
|
#include "media/base/rtp_utils.h"
|
||||||
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
|
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
|
||||||
|
#include "p2p/base/basic_packet_socket_factory.h"
|
||||||
#include "p2p/base/p2p_constants.h"
|
#include "p2p/base/p2p_constants.h"
|
||||||
#include "p2p/base/port_allocator.h"
|
#include "p2p/base/port_allocator.h"
|
||||||
#include "p2p/base/transport_description.h"
|
#include "p2p/base/transport_description.h"
|
||||||
@ -41,7 +42,9 @@
|
|||||||
#include "pc/rtp_transport_internal.h"
|
#include "pc/rtp_transport_internal.h"
|
||||||
#include "pc/session_description.h"
|
#include "pc/session_description.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
|
#include "rtc_base/copy_on_write_buffer.h"
|
||||||
#include "rtc_base/crypto_random.h"
|
#include "rtc_base/crypto_random.h"
|
||||||
|
#include "rtc_base/network.h"
|
||||||
#include "rtc_base/rtc_certificate.h"
|
#include "rtc_base/rtc_certificate.h"
|
||||||
#include "rtc_base/ssl_fingerprint.h"
|
#include "rtc_base/ssl_fingerprint.h"
|
||||||
#include "rtc_base/ssl_identity.h"
|
#include "rtc_base/ssl_identity.h"
|
||||||
@ -93,6 +96,8 @@ class ScenarioIceConnectionImpl : public ScenarioIceConnection,
|
|||||||
RTC_GUARDED_BY(network_thread_);
|
RTC_GUARDED_BY(network_thread_);
|
||||||
cricket::TransportDescription const transport_description_
|
cricket::TransportDescription const transport_description_
|
||||||
RTC_GUARDED_BY(signaling_thread_);
|
RTC_GUARDED_BY(signaling_thread_);
|
||||||
|
std::unique_ptr<rtc::NetworkManager> network_manager_;
|
||||||
|
rtc::BasicPacketSocketFactory packet_socket_factory_;
|
||||||
std::unique_ptr<cricket::BasicPortAllocator> port_allocator_
|
std::unique_ptr<cricket::BasicPortAllocator> port_allocator_
|
||||||
RTC_GUARDED_BY(network_thread_);
|
RTC_GUARDED_BY(network_thread_);
|
||||||
PayloadTypePicker payload_type_picker_;
|
PayloadTypePicker payload_type_picker_;
|
||||||
@ -131,9 +136,11 @@ ScenarioIceConnectionImpl::ScenarioIceConnectionImpl(
|
|||||||
cricket::ConnectionRole::CONNECTIONROLE_PASSIVE,
|
cricket::ConnectionRole::CONNECTIONROLE_PASSIVE,
|
||||||
rtc::SSLFingerprint::CreateFromCertificate(*certificate_.get())
|
rtc::SSLFingerprint::CreateFromCertificate(*certificate_.get())
|
||||||
.get()),
|
.get()),
|
||||||
port_allocator_(
|
network_manager_(manager_->ReleaseNetworkManager()),
|
||||||
new cricket::BasicPortAllocator(manager_->network_manager(),
|
packet_socket_factory_(manager_->socket_factory()),
|
||||||
manager_->packet_socket_factory())),
|
port_allocator_(std::make_unique<cricket::BasicPortAllocator>(
|
||||||
|
network_manager_.get(),
|
||||||
|
&packet_socket_factory_)),
|
||||||
jsep_controller_(
|
jsep_controller_(
|
||||||
new JsepTransportController(env,
|
new JsepTransportController(env,
|
||||||
network_thread_,
|
network_thread_,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user