3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/webrtc/AddIceCandidateResult.h"
7#include "mc/external/webrtc/ContentSource.h"
8#include "mc/external/webrtc/CreateSessionDescriptionObserver.h"
9#include "mc/external/webrtc/MediaType.h"
10#include "mc/external/webrtc/PeerConnectionInterface.h"
11#include "mc/external/webrtc/RTCErrorOr.h"
12#include "mc/external/webrtc/RTCErrorType.h"
13#include "mc/external/webrtc/RtpTransceiverDirection.h"
14#include "mc/external/webrtc/RtpTransceiverProxyWithInternal.h"
15#include "mc/external/webrtc/SSLRole.h"
16#include "mc/external/webrtc/SdpStateProvider.h"
17#include "mc/external/webrtc/SdpType.h"
18#include "mc/external/webrtc/SetLocalDescriptionObserverInterface.h"
19#include "mc/external/webrtc/SetRemoteDescriptionObserverInterface.h"
20#include "mc/external/webrtc/scoped_refptr.h"
64 enum class SessionError :
int {
82 ImplicitCreateSessionDescriptionObserver& operator=(ImplicitCreateSessionDescriptionObserver
const&);
83 ImplicitCreateSessionDescriptionObserver(ImplicitCreateSessionDescriptionObserver
const&);
84 ImplicitCreateSessionDescriptionObserver();
89 virtual ~ImplicitCreateSessionDescriptionObserver() ;
119 class LocalIceCredentialsToReplace {
128 LocalIceCredentialsToReplace& operator=(LocalIceCredentialsToReplace
const&);
129 LocalIceCredentialsToReplace(LocalIceCredentialsToReplace
const&);
130 LocalIceCredentialsToReplace();
143 class RemoteDescriptionOperation {
160 RemoteDescriptionOperation& operator=(RemoteDescriptionOperation
const&);
161 RemoteDescriptionOperation(RemoteDescriptionOperation
const&);
162 RemoteDescriptionOperation();
175 ::std::unique_ptr<::webrtc::SessionDescriptionInterface> desc,
177 ::std::function<
void()> operations_chain_callback
182 MCNAPI
void SetError(::webrtc::RTCErrorType type, ::std::string message);
192 ::std::unique_ptr<::webrtc::SessionDescriptionInterface> desc,
194 ::std::function<
void()> operations_chain_callback
210 SetSessionDescriptionObserverAdapter& operator=(SetSessionDescriptionObserverAdapter
const&);
211 SetSessionDescriptionObserverAdapter(SetSessionDescriptionObserverAdapter
const&);
212 SetSessionDescriptionObserverAdapter();
221 virtual ~SetSessionDescriptionObserverAdapter() =
default;
293 SdpOfferAnswerHandler& operator=(SdpOfferAnswerHandler
const&);
294 SdpOfferAnswerHandler(SdpOfferAnswerHandler
const&);
295 SdpOfferAnswerHandler();
300 virtual ~SdpOfferAnswerHandler() ;
302 virtual ::webrtc::PeerConnectionInterface::SignalingState signaling_state() const ;
316 virtual
bool NeedsIceRestart(::
std::
string const& content_name) const ;
318 virtual
bool IceRestartPending(::
std::
string const& content_name) const ;
320 virtual ::
std::optional<::webrtc::SSLRole> GetDtlsRole(::
std::
string const& mid) const ;
356 ::webrtc::ContentSource source,
357 ::webrtc::SdpType type,
419 ::webrtc::RtpTransceiverDirection audio_direction,
420 ::webrtc::RtpTransceiverDirection video_direction,
421 ::
std::optional<uint64>* audio_index,
422 ::
std::optional<uint64>* video_index,
423 ::
std::optional<uint64>* data_index,
497 ::webrtc::SdpType type,
498 ::webrtc::ContentSource source,
533 ::webrtc::SdpType sdp_type,
547 ::
std::vector<::
std::
string> const& stream_ids,
579 ::webrtc::ContentSource source,
592 ::webrtc::ContentSource source,
598 bool default_sender_needed,
599 ::webrtc::MediaType media_type,
604 ::webrtc::SdpType type,
605 ::webrtc::ContentSource source,
617 ::webrtc::ContentSource source,
630 ::webrtc::ContentSource source,
644 MCNAPI static ::
std::unique_ptr<::webrtc::SdpOfferAnswerHandler>
Create(
Definition AudioContentDescription.h:11
Definition Candidate.h:12
Definition CodecLookupHelper.h:13
Definition ConnectionContext.h:17
Definition ContentGroup.h:7
Definition ContentInfo.h:12
Definition CreateSessionDescriptionObserver.h:16
Definition IceCandidate.h:12
Definition PeerConnectionInterface.h:57
Definition PeerConnectionSdpMethods.h:41
Definition RTCCertificateGeneratorInterface.h:17
Definition RTCErrorOr.h:8
Definition RtpReceiverInternal.h:18
Definition RtpTransceiverInterface.h:23
Definition RtpTransceiverProxyWithInternal.h:8
Definition RtpTransceiver.h:40
Definition SdpOfferAnswerHandler.h:70
MCAPI void $OnSuccess(::webrtc::SessionDescriptionInterface *desc_ptr)
static MCAPI void ** $vftable()
MCAPI void $OnFailure(::webrtc::RTCError error)
Definition SdpOfferAnswerHandler.h:119
MCAPI void AppendIceCredentialsFromSessionDescription(::webrtc::SessionDescriptionInterface const &desc)
MCAPI bool SatisfiesIceRestart(::webrtc::SessionDescriptionInterface const &local_description) const
MCAPI void ClearIceCredentials()
Definition SdpOfferAnswerHandler.h:143
MCAPI void SetError(::webrtc::RTCErrorType type, ::std::string message)
MCAPI void SetAsSessionError()
MCAPI void SignalCompletion()
MCAPI bool HaveSessionError()
MCAPI RemoteDescriptionOperation(::webrtc::SdpOfferAnswerHandler *handler, ::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetRemoteDescriptionObserverInterface > observer, ::std::function< void()> operations_chain_callback)
MCAPI void * $ctor(::webrtc::SdpOfferAnswerHandler *handler, ::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetRemoteDescriptionObserverInterface > observer, ::std::function< void()> operations_chain_callback)
MCAPI bool MaybeRollback()
MCAPI void InvalidParam(::std::string message)
Definition SdpOfferAnswerHandler.h:200
static MCAPI void ** $vftableForSetLocalDescriptionObserverInterface()
MCAPI void OnSetDescriptionComplete(::webrtc::RTCError error)
static MCAPI void ** $vftableForSetRemoteDescriptionObserverInterface()
MCAPI void $OnSetLocalDescriptionComplete(::webrtc::RTCError error)
MCAPI void $OnSetRemoteDescriptionComplete(::webrtc::RTCError error)
Definition SdpOfferAnswerHandler.h:53
MCAPI::webrtc::SessionDescriptionInterface const * $pending_local_description() const
MCAPI void SetAssociatedRemoteStreams(::webrtc::scoped_refptr<::webrtc::RtpReceiverInternal > receiver, ::std::vector<::std::string > const &stream_ids, ::std::vector<::webrtc::scoped_refptr<::webrtc::MediaStreamInterface > > *added_streams, ::std::vector<::webrtc::scoped_refptr<::webrtc::MediaStreamInterface > > *removed_streams)
MCAPI::webrtc::RTCError UpdateDataChannelTransport(::webrtc::ContentSource source, ::webrtc::ContentInfo const &content, ::webrtc::ContentGroup const *bundle_group)
MCAPI void AddUpToOneReceivingTransceiverOfType(::webrtc::MediaType media_type)
MCAPI ::webrtc::RTCErrorOr< ::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > > AssociateTransceiver(::webrtc::ContentSource source, ::webrtc::SdpType type, uint64 mline_index, ::webrtc::ContentInfo const &content, ::webrtc::ContentInfo const *old_local_content, ::webrtc::ContentInfo const *old_remote_content)
MCAPI bool ShouldFireNegotiationNeededEvent(uint event_id)
MCAPI void AllocateSctpSids()
MCAPI void UpdateNegotiationNeeded()
MCAPI::webrtc::SessionDescriptionInterface const * $pending_remote_description() const
MCAPI::webrtc::AddIceCandidateResult AddIceCandidateInternal(::webrtc::IceCandidate const *ice_candidate)
MCAPI void ReportInitialSdpMunging(bool had_local_description, ::webrtc::SdpType type)
MCAPI void UpdateLocalSenders(::std::vector<::webrtc::StreamParams > const &streams, ::webrtc::MediaType media_type)
MCAPI ::webrtc::scoped_refptr<::webrtc::StreamCollectionInterface > remote_streams()
MCAPI bool CheckIfNegotiationIsNeeded()
MCAPI ::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > FindAvailableTransceiverToReceive(::webrtc::MediaType media_type) const
MCAPI void RemoveLocalIceCandidates(::std::string_view mid, ::std::vector<::webrtc::Candidate > const &candidates)
MCAPI void ApplyRemoteDescription(::std::unique_ptr<::webrtc::SdpOfferAnswerHandler::RemoteDescriptionOperation > operation)
MCAPI void DestroyMediaChannels()
MCAPI::webrtc::RTCError UpdateTransceiversAndDataChannels(::webrtc::ContentSource source, ::webrtc::SessionDescriptionInterface const &new_session, ::webrtc::SessionDescriptionInterface const *old_local_description, ::webrtc::SessionDescriptionInterface const *old_remote_description, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI bool ReadyToUseRemoteCandidate(::webrtc::IceCandidate const *candidate, ::webrtc::SessionDescriptionInterface const *remote_desc, bool *valid)
MCAPI void * $ctor(::webrtc::PeerConnectionSdpMethods *pc, ::webrtc::ConnectionContext *context)
MCAPI::webrtc::ContentInfo const * FindMediaSectionForTransceiver(::webrtc::RtpTransceiver const *transceiver, ::webrtc::SessionDescriptionInterface const *sdesc) const
MCAPI void SetRemoteDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetRemoteDescriptionObserverInterface > observer)
MCAPI::webrtc::RTCError UpdateTransceiverChannel(::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > transceiver, ::webrtc::ContentInfo const &content, ::webrtc::ContentGroup const *bundle_group)
MCAPI ::std::optional<::webrtc::SSLRole > GuessSslRole() const
static MCAPI ::std::unique_ptr<::webrtc::SdpOfferAnswerHandler > Create(::webrtc::PeerConnectionSdpMethods *pc, ::webrtc::PeerConnectionInterface::RTCConfiguration const &configuration, ::std::unique_ptr<::webrtc::RTCCertificateGeneratorInterface > cert_generator, ::std::unique_ptr<::webrtc::VideoBitrateAllocatorFactory > video_bitrate_allocator_factory, ::webrtc::ConnectionContext *context, ::webrtc::CodecLookupHelper *codec_lookup_helper)
MCAPI void CreateAnswer(::webrtc::CreateSessionDescriptionObserver *observer, ::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
MCAPI void RemoveStoppedTransceivers()
MCAPI::webrtc::RTCError PushdownTransportDescription(::webrtc::ContentSource source, ::webrtc::SdpType type)
MCAPI bool RemoveIceCandidate(::webrtc::IceCandidate const *candidate)
MCAPI void GetOptionsForPlanBAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI void GetOptionsForAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI::webrtc::RTCError ValidateSessionDescription(::webrtc::SessionDescriptionInterface const *sdesc, ::webrtc::ContentSource source, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::RTCError HandleLegacyOfferOptions(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
static MCAPI void ** $vftable()
MCAPI bool AddStream(::webrtc::MediaStreamInterface *local_stream)
MCAPI::std::string GetSessionErrorMsg()
MCAPI bool $NeedsIceRestart(::std::string const &content_name) const
MCAPI void PlanBUpdateSendersAndReceivers(::webrtc::ContentInfo const *audio_content, ::webrtc::AudioContentDescription const *audio_desc, ::webrtc::ContentInfo const *video_content, ::webrtc::VideoContentDescription const *video_desc)
MCAPI::webrtc::SessionDescriptionInterface const * $remote_description() const
MCAPI void GetOptionsForUnifiedPlanOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI void SetLocalDescription(::webrtc::SetSessionDescriptionObserver *observer)
MCAPI::webrtc::RTCError Rollback(::webrtc::SdpType desc_type)
MCAPI void ChangeSignalingState(::webrtc::PeerConnectionInterface::SignalingState signaling_state)
MCAPI void DoSetRemoteDescription(::std::unique_ptr<::webrtc::SdpOfferAnswerHandler::RemoteDescriptionOperation > operation)
MCAPI::webrtc::RTCError UpdateSessionState(::webrtc::SdpType type, ::webrtc::ContentSource source, ::webrtc::SessionDescription const *description, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI ::webrtc::scoped_refptr<::webrtc::StreamCollectionInterface > local_streams()
MCAPI void EnableSending()
MCAPI void GenerateNegotiationNeededEvent()
MCAPI void RemoveRecvDirectionFromReceivingTransceiversOfType(::webrtc::MediaType media_type)
MCAPI bool $IceRestartPending(::std::string const &content_name) const
MCAPI::webrtc::RTCError ApplyLocalDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI void RemoveStream(::webrtc::MediaStreamInterface *local_stream)
MCAPI void DoSetLocalDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetLocalDescriptionObserverInterface > observer)
MCAPI void GetOptionsForOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI bool UpdatePayloadTypeDemuxingState(::webrtc::ContentSource source, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::SessionDescriptionInterface const * $current_remote_description() const
MCAPI void ApplyRemoteDescriptionUpdateTransceiverState(::webrtc::SdpType sdp_type)
MCAPI void GetOptionsForPlanBOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI bool UseCandidatesInRemoteDescription()
MCAPI ::std::vector<::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > > GetReceivingTransceiversOfType(::webrtc::MediaType media_type)
MCAPI void Initialize(::webrtc::PeerConnectionInterface::RTCConfiguration const &configuration, ::std::unique_ptr<::webrtc::RTCCertificateGeneratorInterface > cert_generator, ::std::unique_ptr<::webrtc::VideoBitrateAllocatorFactory > video_bitrate_allocator_factory, ::webrtc::ConnectionContext *context, ::webrtc::CodecLookupHelper *codec_lookup_helper)
MCAPI bool UseCandidate(::webrtc::IceCandidate const *candidate)
MCAPI void GenerateMediaDescriptionOptions(::webrtc::SessionDescriptionInterface const *session_desc, ::webrtc::RtpTransceiverDirection audio_direction, ::webrtc::RtpTransceiverDirection video_direction, ::std::optional< uint64 > *audio_index, ::std::optional< uint64 > *video_index, ::std::optional< uint64 > *data_index, ::webrtc::MediaSessionOptions *session_options)
MCAPI void RemoveSenders(::webrtc::MediaType media_type)
MCAPI void DoCreateAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options, ::webrtc::scoped_refptr<::webrtc::CreateSessionDescriptionObserver > observer)
MCAPI bool AddIceCandidate(::webrtc::IceCandidate const *ice_candidate)
MCAPI::webrtc::MediaDescriptionOptions GetMediaDescriptionOptionsForActiveData(::std::string const &mid) const
MCAPI void ProcessRemovalOfRemoteTrack(::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > transceiver, ::std::vector<::webrtc::scoped_refptr<::webrtc::RtpTransceiverInterface > > *remove_list, ::std::vector<::webrtc::scoped_refptr<::webrtc::MediaStreamInterface > > *removed_streams)
MCAPI::webrtc::PeerConnectionInterface::SignalingState $signaling_state() const
MCAPI void PrepareForShutdown()
MCAPI void UpdateEndedRemoteMediaStreams()
MCAPI void GetOptionsForUnifiedPlanAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::webrtc::MediaSessionOptions *session_options)
MCAPI void RemoveUnusedChannels(::webrtc::SessionDescription const *desc)
MCAPI void AddLocalIceCandidate(::webrtc::IceCandidate const *candidate)
MCAPI void DoCreateOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options, ::webrtc::scoped_refptr<::webrtc::CreateSessionDescriptionObserver > observer)
MCAPI void FillInMissingRemoteMids(::webrtc::SessionDescription *new_remote_description)
MCAPI ::webrtc::RTCErrorOr<::webrtc::ContentInfo const * > FindContentInfo(::webrtc::SessionDescriptionInterface const *description, ::webrtc::IceCandidate const *candidate)
MCAPI void UpdateRemoteSendersList(::std::vector<::webrtc::StreamParams > const &streams, bool default_sender_needed, ::webrtc::MediaType media_type, ::webrtc::StreamCollection *new_streams)
MCAPI void RemoveRemoteStreamsIfEmpty(::std::vector<::webrtc::scoped_refptr<::webrtc::MediaStreamInterface > > const &remote_streams, ::std::vector<::webrtc::scoped_refptr<::webrtc::MediaStreamInterface > > *removed_streams)
MCAPI::webrtc::RTCError PushdownMediaDescription(::webrtc::SdpType type, ::webrtc::ContentSource source, ::std::map<::std::string, ::webrtc::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::TransceiverList * transceivers()
MCAPI::webrtc::RTCError ReplaceRemoteDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::SdpType sdp_type, ::std::unique_ptr<::webrtc::SessionDescriptionInterface > *replaced_description)
MCAPI::webrtc::MediaDescriptionOptions GetMediaDescriptionOptionsForRejectedData(::std::string const &mid) const
MCAPI void CreateOffer(::webrtc::CreateSessionDescriptionObserver *observer, ::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
MCAPI ::std::optional<::webrtc::SSLRole > $GetDtlsRole(::std::string const &mid) const
MCAPI::webrtc::RTCError CreateChannels(::webrtc::SessionDescription const &desc)
MCAPI bool RemoveIceCandidates(::std::vector<::webrtc::Candidate > const &candidates)
MCAPI::webrtc::SessionDescriptionInterface const * $current_local_description() const
MCAPI::webrtc::SessionDescriptionInterface const * $local_description() const
Definition SdpStateProvider.h:16
Definition SessionDescriptionInterface.h:17
Definition SessionDescription.h:18
Definition SetLocalDescriptionObserverInterface.h:15
Definition SetRemoteDescriptionObserverInterface.h:15
Definition SetSessionDescriptionObserver.h:15
Definition StreamCollectionInterface.h:16
Definition StreamCollection.h:17
Definition TransceiverList.h:18
Definition VideoBitrateAllocatorFactory.h:14
Definition VideoContentDescription.h:11
Definition scoped_refptr.h:8
Definition StreamParams.h:12