diff --git a/api/BUILD.gn b/api/BUILD.gn index bd0f52e0d6..a3b32bc4ad 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -141,13 +141,14 @@ rtc_library("media_stream_interface") { deps = [ ":audio_options_api", ":make_ref_counted", + ":ref_count", + ":ref_count", ":rtp_parameters", ":scoped_refptr", ":sequence_checker", ":video_track_source_constraints", "../modules/audio_processing:audio_processing_statistics", "../rtc_base:checks", - "../rtc_base:refcount", "../rtc_base/system:no_unique_address", "../rtc_base/system:rtc_export", "video:recordable_encoded_frame", @@ -195,9 +196,9 @@ rtc_source_set("ice_transport_interface") { deps = [ ":async_dns_resolver", ":packet_socket_factory", + ":ref_count", ":rtc_error", ":scoped_refptr", - "../rtc_base:refcount", "rtc_event_log:rtc_event_log", ] } @@ -211,9 +212,9 @@ rtc_library("dtls_transport_interface") { ] deps = [ ":ice_transport_interface", + ":ref_count", ":rtc_error", ":scoped_refptr", - "../rtc_base:refcount", "../rtc_base:ssl", "../rtc_base/system:rtc_export", ] @@ -226,7 +227,7 @@ rtc_library("dtmf_sender_interface") { sources = [ "dtmf_sender_interface.h" ] deps = [ ":media_stream_interface", - "../rtc_base:refcount", + ":ref_count", ] } @@ -242,11 +243,11 @@ rtc_library("rtp_sender_interface") { ":dtmf_sender_interface", ":frame_transformer_interface", ":media_stream_interface", + ":ref_count", ":rtc_error", ":rtp_parameters", ":scoped_refptr", "../rtc_base:checks", - "../rtc_base:refcount", "../rtc_base/system:rtc_export", "crypto:frame_encryptor_interface", "video_codecs:video_codecs_api", @@ -308,6 +309,7 @@ rtc_library("libjingle_peerconnection_api") { ":network_state_predictor_api", ":packet_socket_factory", ":priority", + ":ref_count", ":rtc_error", ":rtc_stats_api", ":rtp_packet_info", @@ -324,7 +326,6 @@ rtc_library("libjingle_peerconnection_api") { "../rtc_base:logging", "../rtc_base:network", "../rtc_base:network_constants", - "../rtc_base:refcount", "../rtc_base:rtc_certificate_generator", "../rtc_base:ssl", "../rtc_base:stringutils", @@ -378,8 +379,8 @@ rtc_source_set("frame_transformer_interface") { sources = [ "frame_transformer_interface.h" ] deps = [ ":make_ref_counted", + ":ref_count", ":scoped_refptr", - "../rtc_base:refcount", "video:encoded_frame", "video:video_frame_metadata", ] @@ -466,7 +467,10 @@ rtc_source_set("scoped_refptr") { rtc_source_set("make_ref_counted") { visibility = [ "*" ] sources = [ "make_ref_counted.h" ] - deps = [ "../rtc_base:refcount" ] + deps = [ + ":ref_count", + "../rtc_base:refcount", + ] } rtc_source_set("video_quality_analyzer_api") { @@ -787,6 +791,7 @@ rtc_source_set("rtc_stats_api") { deps = [ ":make_ref_counted", + ":ref_count", ":scoped_refptr", "../api:refcountedbase", "../rtc_base:checks", @@ -919,6 +924,7 @@ rtc_source_set("refcountedbase") { visibility = [ "*" ] sources = [ "ref_counted_base.h" ] deps = [ + ":ref_count", "../rtc_base:macromagic", "../rtc_base:refcount", ] @@ -1217,6 +1223,7 @@ if (rtc_include_tests) { ":array_view", ":libjingle_peerconnection_api", ":make_ref_counted", + ":ref_count", ":rtp_parameters", "../rtc_base:checks", "../rtc_base:refcount", @@ -1270,6 +1277,7 @@ if (rtc_include_tests) { deps = [ ":libjingle_peerconnection_api", + ":ref_count", "../api:scoped_refptr", "../rtc_base:refcount", "../test:test_support", @@ -1410,6 +1418,7 @@ if (rtc_include_tests) { sources = [ "test/mock_video_track.h" ] deps = [ + ":ref_count", "../api:media_stream_interface", "../api:scoped_refptr", "../rtc_base:refcount", @@ -1590,10 +1599,10 @@ rtc_library("frame_transformer_factory") { ] deps = [ ":frame_transformer_interface", + ":ref_count", ":scoped_refptr", "../audio:audio", "../modules/rtp_rtcp", - "../rtc_base:refcount", "video:encoded_frame", "video:video_frame_metadata", ] diff --git a/api/DEPS b/api/DEPS index bcfd705741..3a650b6253 100644 --- a/api/DEPS +++ b/api/DEPS @@ -81,7 +81,6 @@ specific_include_rules = { "data_channel_interface\.h": [ "+rtc_base/copy_on_write_buffer.h", - "+rtc_base/ref_count.h", ], "data_channel_transport_interface\.h": [ @@ -89,33 +88,15 @@ specific_include_rules = { ], "dtls_transport_interface\.h": [ - "+rtc_base/ref_count.h", "+rtc_base/ssl_certificate.h", ], - "dtmf_sender_interface\.h": [ - "+rtc_base/ref_count.h", - ], - "fec_controller\.h": [ "+modules/include/module_fec_types.h", ], - "frame_transformer_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "ice_transport_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "jsep\.h": [ - "+rtc_base/ref_count.h", - ], - "media_stream_interface\.h": [ "+modules/audio_processing/include/audio_processing_statistics.h", - "+rtc_base/ref_count.h", ], "packet_socket_factory\.h": [ @@ -132,7 +113,6 @@ specific_include_rules = { "+rtc_base/network.h", "+rtc_base/network_constants.h", "+rtc_base/network_monitor_factory.h", - "+rtc_base/ref_count.h", "+rtc_base/rtc_certificate.h", "+rtc_base/rtc_certificate_generator.h", "+rtc_base/socket_address.h", @@ -148,7 +128,6 @@ specific_include_rules = { ], "ref_counted_base\.h": [ - "+rtc_base/ref_count.h", "+rtc_base/ref_counter.h", ], @@ -159,74 +138,19 @@ specific_include_rules = { # For private member and constructor. "+rtc_base/system/file_wrapper.h", ], - "rtp_receiver_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "rtp_sender_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "rtp_transceiver_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "sctp_transport_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "set_local_description_observer_interface\.h": [ - "+rtc_base/ref_count.h", - ], - "set_remote_description_observer_interface\.h": [ - "+rtc_base/ref_count.h", - ], "legacy_stats_types\.h": [ - "+rtc_base/ref_count.h", "+rtc_base/thread_checker.h", ], - "uma_metrics\.h": [ - "+rtc_base/ref_count.h", - ], - - "audio_mixer\.h": [ - "+rtc_base/ref_count.h", - ], - "audio_decoder\.h": [ "+rtc_base/buffer.h", ], - "audio_decoder_factory\.h": [ - "+rtc_base/ref_count.h", - ], - "audio_encoder\.h": [ "+rtc_base/buffer.h", ], - "audio_encoder_factory\.h": [ - "+rtc_base/ref_count.h", - ], - - "frame_decryptor_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "frame_encryptor_interface\.h": [ - "+rtc_base/ref_count.h", - ], - - "rtc_stats_collector_callback\.h": [ - "+rtc_base/ref_count.h", - ], - - "rtc_stats_report\.h": [ - "+rtc_base/ref_count.h", - ], - "audioproc_float\.h": [ "+modules/audio_processing/include/audio_processing.h", ], @@ -279,10 +203,6 @@ specific_include_rules = { "+modules/video_coding/include/video_codec_interface.h" ], - "video_encoder_config\.h": [ - "+rtc_base/ref_count.h", - ], - "sequence_checker\.h": [ "+rtc_base/synchronization/sequence_checker_internal.h", "+rtc_base/thread_annotations.h", diff --git a/api/data_channel_interface.h b/api/data_channel_interface.h index bf27c6c4f3..0c10e9b73d 100644 --- a/api/data_channel_interface.h +++ b/api/data_channel_interface.h @@ -22,10 +22,10 @@ #include "absl/functional/any_invocable.h" #include "absl/types/optional.h" #include "api/priority.h" +#include "api/ref_count.h" #include "api/rtc_error.h" #include "rtc_base/checks.h" #include "rtc_base/copy_on_write_buffer.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { diff --git a/api/dtls_transport_interface.h b/api/dtls_transport_interface.h index 7b0151249c..fe64fb1947 100644 --- a/api/dtls_transport_interface.h +++ b/api/dtls_transport_interface.h @@ -16,9 +16,9 @@ #include "absl/types/optional.h" #include "api/ice_transport_interface.h" +#include "api/ref_count.h" #include "api/rtc_error.h" #include "api/scoped_refptr.h" -#include "rtc_base/ref_count.h" #include "rtc_base/ssl_certificate.h" #include "rtc_base/system/rtc_export.h" @@ -107,7 +107,7 @@ class DtlsTransportObserverInterface { // accessed on that thread, except for functions explicitly marked otherwise. // References can be held by other threads, and destruction can therefore // be initiated by other threads. -class DtlsTransportInterface : public rtc::RefCountInterface { +class DtlsTransportInterface : public webrtc::RefCountInterface { public: // Returns a pointer to the ICE transport that is owned by the DTLS transport. virtual rtc::scoped_refptr ice_transport() = 0; diff --git a/api/dtmf_sender_interface.h b/api/dtmf_sender_interface.h index d63e66bbf7..4aed3382ed 100644 --- a/api/dtmf_sender_interface.h +++ b/api/dtmf_sender_interface.h @@ -14,7 +14,7 @@ #include #include "api/media_stream_interface.h" -#include "rtc_base/ref_count.h" +#include "api/ref_count.h" namespace webrtc { @@ -42,7 +42,7 @@ class DtmfSenderObserverInterface { // The interface of native implementation of the RTCDTMFSender defined by the // WebRTC W3C Editor's Draft. // See: https://www.w3.org/TR/webrtc/#peer-to-peer-dtmf -class DtmfSenderInterface : public rtc::RefCountInterface { +class DtmfSenderInterface : public webrtc::RefCountInterface { public: // Provides the spec compliant default 2 second delay for the ',' character. static const int kDtmfDefaultCommaDelayMs = 2000; diff --git a/api/frame_transformer_interface.h b/api/frame_transformer_interface.h index 9024988db6..535659d49b 100644 --- a/api/frame_transformer_interface.h +++ b/api/frame_transformer_interface.h @@ -15,10 +15,10 @@ #include #include +#include "api/ref_count.h" #include "api/scoped_refptr.h" #include "api/video/encoded_frame.h" #include "api/video/video_frame_metadata.h" -#include "rtc_base/ref_count.h" namespace webrtc { diff --git a/api/ice_transport_interface.h b/api/ice_transport_interface.h index 001395c215..ecf5dc4ffe 100644 --- a/api/ice_transport_interface.h +++ b/api/ice_transport_interface.h @@ -15,10 +15,10 @@ #include "api/async_dns_resolver.h" #include "api/async_resolver_factory.h" +#include "api/ref_count.h" #include "api/rtc_error.h" #include "api/rtc_event_log/rtc_event_log.h" #include "api/scoped_refptr.h" -#include "rtc_base/ref_count.h" namespace cricket { class IceTransportInternal; @@ -33,7 +33,7 @@ class FieldTrialsView; // An ICE transport, as represented to the outside world. // This object is refcounted, and is therefore alive until the // last holder has released it. -class IceTransportInterface : public rtc::RefCountInterface { +class IceTransportInterface : public webrtc::RefCountInterface { public: // Accessor for the internal representation of an ICE transport. // The returned object can only be safely used on the signalling thread. diff --git a/api/jsep.h b/api/jsep.h index d2aa57c784..643a99d315 100644 --- a/api/jsep.h +++ b/api/jsep.h @@ -27,8 +27,8 @@ #include #include "absl/types/optional.h" +#include "api/ref_count.h" #include "api/rtc_error.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace cricket { @@ -219,7 +219,7 @@ std::unique_ptr CreateSessionDescription( // CreateOffer and CreateAnswer callback interface. class RTC_EXPORT CreateSessionDescriptionObserver - : public rtc::RefCountInterface { + : public webrtc::RefCountInterface { public: // This callback transfers the ownership of the `desc`. // TODO(deadbeef): Make this take an std::unique_ptr<> to avoid confusion @@ -238,7 +238,8 @@ class RTC_EXPORT CreateSessionDescriptionObserver }; // SetLocalDescription and SetRemoteDescription callback interface. -class RTC_EXPORT SetSessionDescriptionObserver : public rtc::RefCountInterface { +class RTC_EXPORT SetSessionDescriptionObserver + : public webrtc::RefCountInterface { public: virtual void OnSuccess() = 0; // See description in CreateSessionDescriptionObserver for OnFailure. diff --git a/api/legacy_stats_types.h b/api/legacy_stats_types.h index e49cb6d6dd..70f21d4ad9 100644 --- a/api/legacy_stats_types.h +++ b/api/legacy_stats_types.h @@ -20,9 +20,9 @@ #include #include +#include "api/ref_count.h" #include "api/scoped_refptr.h" #include "api/sequence_checker.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -240,7 +240,7 @@ class RTC_EXPORT StatsReport { kStatsValueNameLocalCandidateRelayProtocol, }; - class RTC_EXPORT IdBase : public rtc::RefCountInterface { + class RTC_EXPORT IdBase : public webrtc::RefCountInterface { public: ~IdBase() override; StatsType type() const; diff --git a/api/media_stream_interface.h b/api/media_stream_interface.h index 9d336739e4..4f9bffac85 100644 --- a/api/media_stream_interface.h +++ b/api/media_stream_interface.h @@ -23,6 +23,7 @@ #include "absl/types/optional.h" #include "api/audio_options.h" +#include "api/ref_count.h" #include "api/scoped_refptr.h" #include "api/video/recordable_encoded_frame.h" #include "api/video/video_frame.h" @@ -30,7 +31,6 @@ #include "api/video/video_source_interface.h" #include "api/video_track_source_constraints.h" #include "modules/audio_processing/include/audio_processing_statistics.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -54,7 +54,7 @@ class NotifierInterface { // Base class for sources. A MediaStreamTrack has an underlying source that // provides media. A source can be shared by multiple tracks. -class RTC_EXPORT MediaSourceInterface : public rtc::RefCountInterface, +class RTC_EXPORT MediaSourceInterface : public webrtc::RefCountInterface, public NotifierInterface { public: enum SourceState { kInitializing, kLive, kEnded, kMuted }; @@ -69,7 +69,7 @@ class RTC_EXPORT MediaSourceInterface : public rtc::RefCountInterface, // C++ version of MediaStreamTrack. // See: https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack -class RTC_EXPORT MediaStreamTrackInterface : public rtc::RefCountInterface, +class RTC_EXPORT MediaStreamTrackInterface : public webrtc::RefCountInterface, public NotifierInterface { public: enum TrackState { @@ -267,7 +267,7 @@ class RTC_EXPORT AudioSourceInterface : public MediaSourceInterface { // Interface of the audio processor used by the audio track to collect // statistics. -class AudioProcessorInterface : public rtc::RefCountInterface { +class AudioProcessorInterface : public webrtc::RefCountInterface { public: struct AudioProcessorStatistics { bool typing_noise_detected = false; @@ -321,7 +321,7 @@ typedef std::vector > VideoTrackVector; // must be pushed down. // // Thus, this interface acts as simply a container for tracks. -class MediaStreamInterface : public rtc::RefCountInterface, +class MediaStreamInterface : public webrtc::RefCountInterface, public NotifierInterface { public: virtual std::string id() const = 0; diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h index 7c81b162e3..fed5474814 100644 --- a/api/peer_connection_interface.h +++ b/api/peer_connection_interface.h @@ -128,11 +128,11 @@ // 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" @@ -151,7 +151,7 @@ namespace webrtc { 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; @@ -165,7 +165,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; @@ -180,7 +180,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 { @@ -1487,7 +1487,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: diff --git a/api/rtp_receiver_interface.h b/api/rtp_receiver_interface.h index e4ec9b5986..0bf1af972b 100644 --- a/api/rtp_receiver_interface.h +++ b/api/rtp_receiver_interface.h @@ -22,10 +22,10 @@ #include "api/frame_transformer_interface.h" #include "api/media_stream_interface.h" #include "api/media_types.h" +#include "api/ref_count.h" #include "api/rtp_parameters.h" #include "api/scoped_refptr.h" #include "api/transport/rtp/rtp_source.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -44,7 +44,7 @@ class RtpReceiverObserverInterface { virtual ~RtpReceiverObserverInterface() {} }; -class RTC_EXPORT RtpReceiverInterface : public rtc::RefCountInterface { +class RTC_EXPORT RtpReceiverInterface : public webrtc::RefCountInterface { public: virtual rtc::scoped_refptr track() const = 0; diff --git a/api/rtp_sender_interface.h b/api/rtp_sender_interface.h index 41d35bc287..7b8ab135c8 100644 --- a/api/rtp_sender_interface.h +++ b/api/rtp_sender_interface.h @@ -25,18 +25,18 @@ #include "api/frame_transformer_interface.h" #include "api/media_stream_interface.h" #include "api/media_types.h" +#include "api/ref_count.h" #include "api/rtc_error.h" #include "api/rtp_parameters.h" #include "api/scoped_refptr.h" #include "api/video_codecs/video_encoder_factory.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { using SetParametersCallback = absl::AnyInvocable; -class RTC_EXPORT RtpSenderInterface : public rtc::RefCountInterface { +class RTC_EXPORT RtpSenderInterface : public webrtc::RefCountInterface { public: // Returns true if successful in setting the track. // Fails if an audio track is set on a video RtpSender, or vice-versa. diff --git a/api/rtp_transceiver_interface.h b/api/rtp_transceiver_interface.h index 7d0d1a18bf..940264ef51 100644 --- a/api/rtp_transceiver_interface.h +++ b/api/rtp_transceiver_interface.h @@ -18,12 +18,12 @@ #include "absl/types/optional.h" #include "api/array_view.h" #include "api/media_types.h" +#include "api/ref_count.h" #include "api/rtp_parameters.h" #include "api/rtp_receiver_interface.h" #include "api/rtp_sender_interface.h" #include "api/rtp_transceiver_direction.h" #include "api/scoped_refptr.h" -#include "rtc_base/ref_count.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -58,7 +58,7 @@ struct RTC_EXPORT RtpTransceiverInit final { // // WebRTC specification for RTCRtpTransceiver, the JavaScript analog: // https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver -class RTC_EXPORT RtpTransceiverInterface : public rtc::RefCountInterface { +class RTC_EXPORT RtpTransceiverInterface : public webrtc::RefCountInterface { public: // Media type of the transceiver. Any sender(s)/receiver(s) will have this // type as well. diff --git a/api/sctp_transport_interface.h b/api/sctp_transport_interface.h index 7080889fcf..23169ddb2b 100644 --- a/api/sctp_transport_interface.h +++ b/api/sctp_transport_interface.h @@ -13,9 +13,9 @@ #include "absl/types/optional.h" #include "api/dtls_transport_interface.h" +#include "api/ref_count.h" #include "api/rtc_error.h" #include "api/scoped_refptr.h" -#include "rtc_base/ref_count.h" namespace webrtc { @@ -75,7 +75,7 @@ class SctpTransportObserverInterface { // accessed on that thread, except for functions explicitly marked otherwise. // References can be held by other threads, and destruction can therefore // be initiated by other threads. -class SctpTransportInterface : public rtc::RefCountInterface { +class SctpTransportInterface : public webrtc::RefCountInterface { public: // This function can be called from other threads. virtual rtc::scoped_refptr dtls_transport() const = 0; diff --git a/api/set_local_description_observer_interface.h b/api/set_local_description_observer_interface.h index 8e7b6258d3..40f85b944e 100644 --- a/api/set_local_description_observer_interface.h +++ b/api/set_local_description_observer_interface.h @@ -11,15 +11,15 @@ #ifndef API_SET_LOCAL_DESCRIPTION_OBSERVER_INTERFACE_H_ #define API_SET_LOCAL_DESCRIPTION_OBSERVER_INTERFACE_H_ +#include "api/ref_count.h" #include "api/rtc_error.h" -#include "rtc_base/ref_count.h" namespace webrtc { // OnSetLocalDescriptionComplete() invokes as soon as // PeerConnectionInterface::SetLocalDescription() operation completes, allowing // the observer to examine the effects of the operation without delay. -class SetLocalDescriptionObserverInterface : public rtc::RefCountInterface { +class SetLocalDescriptionObserverInterface : public webrtc::RefCountInterface { public: // On success, `error.ok()` is true. virtual void OnSetLocalDescriptionComplete(RTCError error) = 0; diff --git a/api/set_remote_description_observer_interface.h b/api/set_remote_description_observer_interface.h index d1c075309f..c1625410df 100644 --- a/api/set_remote_description_observer_interface.h +++ b/api/set_remote_description_observer_interface.h @@ -11,8 +11,8 @@ #ifndef API_SET_REMOTE_DESCRIPTION_OBSERVER_INTERFACE_H_ #define API_SET_REMOTE_DESCRIPTION_OBSERVER_INTERFACE_H_ +#include "api/ref_count.h" #include "api/rtc_error.h" -#include "rtc_base/ref_count.h" namespace webrtc { @@ -20,7 +20,7 @@ namespace webrtc { // callback is invoked such that the state of the peer connection can be // examined to accurately reflect the effects of the SetRemoteDescription // operation. -class SetRemoteDescriptionObserverInterface : public rtc::RefCountInterface { +class SetRemoteDescriptionObserverInterface : public webrtc::RefCountInterface { public: // On success, `error.ok()` is true. virtual void OnSetRemoteDescriptionComplete(RTCError error) = 0;