diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:33 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:33 +0000 |
commit | 086c044dc34dfc0f74fbe41f4ecb402b2cd34884 (patch) | |
tree | a4f824bd33cb075dd5aa3eb5a0a94af221bbe83a /third_party/libwebrtc/api/peer_connection_interface.h | |
parent | Adding debian version 124.0.1-1. (diff) | |
download | firefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.tar.xz firefox-086c044dc34dfc0f74fbe41f4ecb402b2cd34884.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/api/peer_connection_interface.h')
-rw-r--r-- | third_party/libwebrtc/api/peer_connection_interface.h | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/third_party/libwebrtc/api/peer_connection_interface.h b/third_party/libwebrtc/api/peer_connection_interface.h index 9243190c10..74c4702cd2 100644 --- a/third_party/libwebrtc/api/peer_connection_interface.h +++ b/third_party/libwebrtc/api/peer_connection_interface.h @@ -80,12 +80,10 @@ #include "absl/types/optional.h" #include "api/adaptation/resource.h" #include "api/async_dns_resolver.h" -#include "api/async_resolver_factory.h" #include "api/audio/audio_mixer.h" #include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_encoder_factory.h" #include "api/audio_options.h" -#include "api/call/call_factory_interface.h" #include "api/candidate.h" #include "api/crypto/crypto_options.h" #include "api/data_channel_interface.h" @@ -120,17 +118,19 @@ #include "api/transport/sctp_transport_factory_interface.h" #include "api/turn_customizer.h" #include "api/video/video_bitrate_allocator_factory.h" +#include "api/video_codecs/video_decoder_factory.h" +#include "api/video_codecs/video_encoder_factory.h" #include "call/rtp_transport_controller_send_factory_interface.h" #include "media/base/media_config.h" #include "media/base/media_engine.h" // TODO(bugs.webrtc.org/7447): We plan to provide a way to let applications // inject a PacketSocketFactory and/or NetworkManager, and not expose // PortAllocator in the PeerConnection api. +#include "api/ref_count.h" #include "p2p/base/port_allocator.h" #include "rtc_base/network.h" #include "rtc_base/network_constants.h" #include "rtc_base/network_monitor_factory.h" -#include "rtc_base/ref_count.h" #include "rtc_base/rtc_certificate.h" #include "rtc_base/rtc_certificate_generator.h" #include "rtc_base/socket_address.h" @@ -145,8 +145,11 @@ class Thread; namespace webrtc { +// MediaFactory class definition is not part of the api. +class MediaFactory; + // MediaStream container interface. -class StreamCollectionInterface : public rtc::RefCountInterface { +class StreamCollectionInterface : public webrtc::RefCountInterface { public: // TODO(ronghuawu): Update the function names to c++ style, e.g. find -> Find. virtual size_t count() = 0; @@ -160,7 +163,7 @@ class StreamCollectionInterface : public rtc::RefCountInterface { ~StreamCollectionInterface() override = default; }; -class StatsObserver : public rtc::RefCountInterface { +class StatsObserver : public webrtc::RefCountInterface { public: virtual void OnComplete(const StatsReports& reports) = 0; @@ -175,7 +178,7 @@ enum class SdpSemantics { kUnifiedPlan, }; -class RTC_EXPORT PeerConnectionInterface : public rtc::RefCountInterface { +class RTC_EXPORT PeerConnectionInterface : public webrtc::RefCountInterface { public: // See https://w3c.github.io/webrtc-pc/#dom-rtcsignalingstate enum SignalingState { @@ -683,6 +686,7 @@ class RTC_EXPORT PeerConnectionInterface : public rtc::RefCountInterface { PortAllocatorConfig port_allocator_config; // The burst interval of the pacer, see TaskQueuePacedSender constructor. + // TODO(hbos): Deprecated, Remove once Chromium is not setting it. absl::optional<TimeDelta> pacer_burst_interval; // @@ -1382,13 +1386,6 @@ struct RTC_EXPORT PeerConnectionDependencies final { // Factory for creating resolvers that look up hostnames in DNS std::unique_ptr<webrtc::AsyncDnsResolverFactoryInterface> async_dns_resolver_factory; - // Deprecated - use async_dns_resolver_factory -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [[deprecated("Use async_dns_resolver_factory")]] std::unique_ptr< - webrtc::AsyncResolverFactory> - async_resolver_factory; -#pragma clang diagnostic pop std::unique_ptr<webrtc::IceTransportFactory> ice_transport_factory; std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator; std::unique_ptr<rtc::SSLCertificateVerifier> tls_cert_verifier; @@ -1427,8 +1424,6 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final { // called without a `port_allocator`. std::unique_ptr<rtc::PacketSocketFactory> packet_socket_factory; std::unique_ptr<TaskQueueFactory> task_queue_factory; - std::unique_ptr<cricket::MediaEngineInterface> media_engine; - std::unique_ptr<CallFactoryInterface> call_factory; std::unique_ptr<RtcEventLogFactoryInterface> event_log_factory; std::unique_ptr<FecControllerFactoryInterface> fec_controller_factory; std::unique_ptr<NetworkStatePredictorFactoryInterface> @@ -1447,6 +1442,23 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final { std::unique_ptr<RtpTransportControllerSendFactoryInterface> transport_controller_send_factory; std::unique_ptr<Metronome> metronome; + + // Media specific dependencies. Unused when `media_factory == nullptr`. + rtc::scoped_refptr<AudioDeviceModule> adm; + rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory; + rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory; + rtc::scoped_refptr<AudioMixer> audio_mixer; + rtc::scoped_refptr<AudioProcessing> audio_processing; + std::unique_ptr<AudioFrameProcessor> audio_frame_processor; + std::unique_ptr<VideoEncoderFactory> video_encoder_factory; + std::unique_ptr<VideoDecoderFactory> video_decoder_factory; + + // The `media_factory` members allows webrtc to be optionally built without + // media support (i.e., if only being used for data channels). + // By default media is disabled. To enable media call + // `EnableMedia(PeerConnectionFactoryDependencies&)`. Definition of the + // `MediaFactory` interface is a webrtc implementation detail. + std::unique_ptr<MediaFactory> media_factory; }; // PeerConnectionFactoryInterface is the factory interface used for creating @@ -1463,7 +1475,7 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final { // CreatePeerConnectionFactory method which accepts threads as input, and use // the CreatePeerConnection version that takes a PortAllocator as an argument. class RTC_EXPORT PeerConnectionFactoryInterface - : public rtc::RefCountInterface { + : public webrtc::RefCountInterface { public: class Options { public: |