3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/cricket/ContentSource.h"
7#include "mc/external/cricket/MediaType.h"
8#include "mc/external/rtc/SSLRole.h"
9#include "mc/external/webrtc/AddIceCandidateResult.h"
10#include "mc/external/webrtc/CreateSessionDescriptionObserver.h"
11#include "mc/external/webrtc/PeerConnectionInterface.h"
12#include "mc/external/webrtc/RTCErrorOr.h"
13#include "mc/external/webrtc/RTCErrorType.h"
14#include "mc/external/webrtc/RtpTransceiverDirection.h"
15#include "mc/external/webrtc/RtpTransceiverProxyWithInternal.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"
62 enum class SessionError :
int {
80 ImplicitCreateSessionDescriptionObserver& operator=(ImplicitCreateSessionDescriptionObserver
const&);
81 ImplicitCreateSessionDescriptionObserver(ImplicitCreateSessionDescriptionObserver
const&);
82 ImplicitCreateSessionDescriptionObserver();
87 virtual ~ImplicitCreateSessionDescriptionObserver() ;
117 class LocalIceCredentialsToReplace {
126 LocalIceCredentialsToReplace& operator=(LocalIceCredentialsToReplace
const&);
127 LocalIceCredentialsToReplace(LocalIceCredentialsToReplace
const&);
128 LocalIceCredentialsToReplace();
141 class RemoteDescriptionOperation {
158 RemoteDescriptionOperation& operator=(RemoteDescriptionOperation
const&);
159 RemoteDescriptionOperation(RemoteDescriptionOperation
const&);
160 RemoteDescriptionOperation();
173 ::std::unique_ptr<::webrtc::SessionDescriptionInterface> desc,
175 ::std::function<
void()> operations_chain_callback
180 MCNAPI
void SetError(::webrtc::RTCErrorType type, ::std::string message);
190 ::std::unique_ptr<::webrtc::SessionDescriptionInterface> desc,
192 ::std::function<
void()> operations_chain_callback
208 SetSessionDescriptionObserverAdapter& operator=(SetSessionDescriptionObserverAdapter
const&);
209 SetSessionDescriptionObserverAdapter(SetSessionDescriptionObserverAdapter
const&);
210 SetSessionDescriptionObserverAdapter();
219 virtual ~SetSessionDescriptionObserverAdapter() =
default;
285 SdpOfferAnswerHandler& operator=(SdpOfferAnswerHandler
const&);
286 SdpOfferAnswerHandler(SdpOfferAnswerHandler
const&);
287 SdpOfferAnswerHandler();
292 virtual ~SdpOfferAnswerHandler() ;
294 virtual ::webrtc::PeerConnectionInterface::SignalingState signaling_state() const ;
308 virtual
bool NeedsIceRestart(::
std::
string const& content_name) const ;
310 virtual
bool IceRestartPending(::
std::
string const& content_name) const ;
312 virtual ::
std::optional<::rtc::SSLRole> GetDtlsRole(::
std::
string const& mid) const ;
325 MCNAPI ::webrtc::AddIceCandidateResult
338 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
350 ::webrtc::SdpType type,
352 ::cricket::ContentInfo const& content,
353 ::cricket::ContentInfo const* old_local_content,
354 ::cricket::ContentInfo const* old_remote_content
414 ::webrtc::RtpTransceiverDirection audio_direction,
415 ::webrtc::RtpTransceiverDirection video_direction,
416 ::
std::optional<uint64>* audio_index,
417 ::
std::optional<uint64>* video_index,
418 ::
std::optional<uint64>* data_index,
419 ::cricket::MediaSessionOptions* session_options
426 ::cricket::MediaSessionOptions* session_options
431 ::cricket::MediaSessionOptions* session_options
436 ::cricket::MediaSessionOptions* session_options
441 ::cricket::MediaSessionOptions* session_options
446 ::cricket::MediaSessionOptions* session_options
451 ::cricket::MediaSessionOptions* session_options
471 ::cricket::ContentInfo const* audio_content,
472 ::cricket::AudioContentDescription const* audio_desc,
473 ::cricket::ContentInfo const* video_content,
474 ::cricket::VideoContentDescription const* video_desc
486 ::webrtc::SdpType type,
488 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
520 ::webrtc::SdpType sdp_type,
532 ::
std::vector<::
std::
string> const& stream_ids,
565 ::cricket::ContentInfo const& content,
566 ::cricket::ContentGroup const* bundle_group
578 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
582 ::
std::vector<::cricket::StreamParams> const& streams,
583 bool default_sender_needed,
584 ::cricket::MediaType media_type,
589 ::webrtc::SdpType type,
591 ::cricket::SessionDescription const* description,
592 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
597 ::cricket::ContentInfo const& content,
598 ::cricket::ContentGroup const* bundle_group
606 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
616 ::
std::map<::
std::
string, ::cricket::ContentGroup const*> const& bundle_groups_by_mid
629 MCNAPI static ::
std::unique_ptr<::webrtc::SdpOfferAnswerHandler>
Create(
Definition AudioContentDescription.h:11
Definition Candidate.h:15
Definition ContentGroup.h:7
Definition ContentInfo.h:12
Definition SessionDescription.h:18
Definition VideoContentDescription.h:11
Definition ConnectionContext.h:17
Definition CreateSessionDescriptionObserver.h:16
Definition IceCandidateInterface.h:12
Definition JsepIceCandidate.h:15
Definition PeerConnectionInterface.h:44
Definition PeerConnectionSdpMethods.h:38
Definition RTCErrorOr.h:8
Definition RtpReceiverInternal.h:18
Definition RtpTransceiverInterface.h:22
Definition RtpTransceiverProxyWithInternal.h:8
Definition RtpTransceiver.h:37
Definition SdpOfferAnswerHandler.h:68
MCAPI void $OnSuccess(::webrtc::SessionDescriptionInterface *desc_ptr)
static MCAPI void ** $vftable()
MCAPI void $OnFailure(::webrtc::RTCError error)
Definition SdpOfferAnswerHandler.h:117
MCAPI void AppendIceCredentialsFromSessionDescription(::webrtc::SessionDescriptionInterface const &desc)
MCAPI bool SatisfiesIceRestart(::webrtc::SessionDescriptionInterface const &local_description) const
MCAPI void ClearIceCredentials()
Definition SdpOfferAnswerHandler.h:141
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:198
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:51
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 ::std::vector<::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > > GetReceivingTransceiversOfType(::cricket::MediaType media_type)
MCAPI bool UseCandidate(::webrtc::IceCandidateInterface const *candidate)
MCAPI bool ShouldFireNegotiationNeededEvent(uint event_id)
MCAPI void AllocateSctpSids()
MCAPI void UpdateNegotiationNeeded()
MCAPI::webrtc::SessionDescriptionInterface const * $pending_remote_description() const
MCAPI void RemoveRecvDirectionFromReceivingTransceiversOfType(::cricket::MediaType media_type)
MCAPI void UpdateRemoteSendersList(::std::vector<::cricket::StreamParams > const &streams, bool default_sender_needed, ::cricket::MediaType media_type, ::webrtc::StreamCollection *new_streams)
MCAPI bool RemoveIceCandidates(::std::vector<::cricket::Candidate > const &candidates)
MCAPI::webrtc::AddIceCandidateResult AddIceCandidateInternal(::webrtc::IceCandidateInterface const *ice_candidate)
MCAPI ::webrtc::scoped_refptr<::webrtc::StreamCollectionInterface > remote_streams()
MCAPI void GetOptionsForPlanBOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
MCAPI void GetOptionsForUnifiedPlanAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
MCAPI bool CheckIfNegotiationIsNeeded()
MCAPI void RemoveSenders(::cricket::MediaType media_type)
MCAPI void ApplyRemoteDescription(::std::unique_ptr<::webrtc::SdpOfferAnswerHandler::RemoteDescriptionOperation > operation)
MCAPI::webrtc::RTCError PushdownMediaDescription(::webrtc::SdpType type, ::cricket::ContentSource source, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI void DestroyMediaChannels()
MCAPI void * $ctor(::webrtc::PeerConnectionSdpMethods *pc, ::webrtc::ConnectionContext *context)
MCAPI void SetRemoteDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetRemoteDescriptionObserverInterface > observer)
MCAPI bool UpdatePayloadTypeDemuxingState(::cricket::ContentSource source, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI void CreateAnswer(::webrtc::CreateSessionDescriptionObserver *observer, ::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
MCAPI void RemoveStoppedTransceivers()
MCAPI void AddLocalIceCandidate(::webrtc::JsepIceCandidate const *candidate)
MCAPI::webrtc::RTCError UpdateSessionState(::webrtc::SdpType type, ::cricket::ContentSource source, ::cricket::SessionDescription const *description, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::RTCError HandleLegacyOfferOptions(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
static MCAPI void ** $vftable()
MCAPI bool AddIceCandidate(::webrtc::IceCandidateInterface const *ice_candidate)
MCAPI bool AddStream(::webrtc::MediaStreamInterface *local_stream)
MCAPI::std::string GetSessionErrorMsg()
MCAPI bool $NeedsIceRestart(::std::string const &content_name) const
MCAPI::webrtc::RTCError CreateChannels(::cricket::SessionDescription const &desc)
MCAPI::webrtc::SessionDescriptionInterface const * $remote_description() const
MCAPI void FillInMissingRemoteMids(::cricket::SessionDescription *new_remote_description)
MCAPI void SetLocalDescription(::webrtc::SetSessionDescriptionObserver *observer)
MCAPI::webrtc::RTCError Rollback(::webrtc::SdpType desc_type)
static MCAPI ::std::unique_ptr<::webrtc::SdpOfferAnswerHandler > Create(::webrtc::PeerConnectionSdpMethods *pc, ::webrtc::PeerConnectionInterface::RTCConfiguration const &configuration, ::webrtc::PeerConnectionDependencies &dependencies, ::webrtc::ConnectionContext *context)
MCAPI void ChangeSignalingState(::webrtc::PeerConnectionInterface::SignalingState signaling_state)
MCAPI void DoSetRemoteDescription(::std::unique_ptr<::webrtc::SdpOfferAnswerHandler::RemoteDescriptionOperation > operation)
MCAPI ::webrtc::scoped_refptr<::webrtc::StreamCollectionInterface > local_streams()
MCAPI void RemoveUnusedChannels(::cricket::SessionDescription const *desc)
MCAPI void EnableSending()
MCAPI void GenerateNegotiationNeededEvent()
MCAPI ::std::optional<::rtc::SSLRole > $GetDtlsRole(::std::string const &mid) const
MCAPI bool $IceRestartPending(::std::string const &content_name) const
MCAPI void Initialize(::webrtc::PeerConnectionInterface::RTCConfiguration const &configuration, ::webrtc::PeerConnectionDependencies &dependencies, ::webrtc::ConnectionContext *context)
MCAPI void GetOptionsForPlanBAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
MCAPI void UpdateLocalSenders(::std::vector<::cricket::StreamParams > const &streams, ::cricket::MediaType media_type)
MCAPI void RemoveStream(::webrtc::MediaStreamInterface *local_stream)
MCAPI void DoSetLocalDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::webrtc::scoped_refptr<::webrtc::SetLocalDescriptionObserverInterface > observer)
MCAPI ::webrtc::RTCErrorOr< ::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > > AssociateTransceiver(::cricket::ContentSource source, ::webrtc::SdpType type, uint64 mline_index, ::cricket::ContentInfo const &content, ::cricket::ContentInfo const *old_local_content, ::cricket::ContentInfo const *old_remote_content)
MCAPI::webrtc::SessionDescriptionInterface const * $current_remote_description() const
MCAPI void ApplyRemoteDescriptionUpdateTransceiverState(::webrtc::SdpType sdp_type)
MCAPI bool UseCandidatesInRemoteDescription()
MCAPI::cricket::ContentInfo const * FindMediaSectionForTransceiver(::webrtc::RtpTransceiver const *transceiver, ::webrtc::SessionDescriptionInterface const *sdesc) const
MCAPI void PlanBUpdateSendersAndReceivers(::cricket::ContentInfo const *audio_content, ::cricket::AudioContentDescription const *audio_desc, ::cricket::ContentInfo const *video_content, ::cricket::VideoContentDescription const *video_desc)
MCAPI ::webrtc::RTCErrorOr<::cricket::ContentInfo const * > FindContentInfo(::webrtc::SessionDescriptionInterface const *description, ::webrtc::IceCandidateInterface const *candidate)
MCAPI void RemoveLocalIceCandidates(::std::vector<::cricket::Candidate > const &candidates)
MCAPI void GetOptionsForUnifiedPlanOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
MCAPI::webrtc::RTCError PushdownTransportDescription(::cricket::ContentSource source, ::webrtc::SdpType type)
MCAPI void DoCreateAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options, ::webrtc::scoped_refptr<::webrtc::CreateSessionDescriptionObserver > observer)
MCAPI::webrtc::RTCError ValidateSessionDescription(::webrtc::SessionDescriptionInterface const *sdesc, ::cricket::ContentSource source, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::RTCError UpdateDataChannelTransport(::cricket::ContentSource source, ::cricket::ContentInfo const &content, ::cricket::ContentGroup const *bundle_group)
MCAPI void GetOptionsForOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
MCAPI void GetOptionsForAnswer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &offer_answer_options, ::cricket::MediaSessionOptions *session_options)
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 ::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > FindAvailableTransceiverToReceive(::cricket::MediaType media_type) const
MCAPI void UpdateEndedRemoteMediaStreams()
MCAPI bool ReadyToUseRemoteCandidate(::webrtc::IceCandidateInterface const *candidate, ::webrtc::SessionDescriptionInterface const *remote_desc, bool *valid)
MCAPI::webrtc::RTCError ApplyLocalDescription(::std::unique_ptr<::webrtc::SessionDescriptionInterface > desc, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI::webrtc::RTCError UpdateTransceiversAndDataChannels(::cricket::ContentSource source, ::webrtc::SessionDescriptionInterface const &new_session, ::webrtc::SessionDescriptionInterface const *old_local_description, ::webrtc::SessionDescriptionInterface const *old_remote_description, ::std::map<::std::string, ::cricket::ContentGroup const * > const &bundle_groups_by_mid)
MCAPI void DoCreateOffer(::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options, ::webrtc::scoped_refptr<::webrtc::CreateSessionDescriptionObserver > observer)
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 UpdateTransceiverChannel(::webrtc::scoped_refptr<::webrtc::RtpTransceiverProxyWithInternal<::webrtc::RtpTransceiver > > transceiver, ::cricket::ContentInfo const &content, ::cricket::ContentGroup const *bundle_group)
MCAPI ::std::optional<::rtc::SSLRole > GuessSslRole() const
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 void CreateOffer(::webrtc::CreateSessionDescriptionObserver *observer, ::webrtc::PeerConnectionInterface::RTCOfferAnswerOptions const &options)
MCAPI::webrtc::SessionDescriptionInterface const * $current_local_description() const
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, ::cricket::MediaSessionOptions *session_options)
MCAPI::webrtc::SessionDescriptionInterface const * $local_description() const
MCAPI void AddUpToOneReceivingTransceiverOfType(::cricket::MediaType media_type)
Definition SdpStateProvider.h:16
Definition SessionDescriptionInterface.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 scoped_refptr.h:8
Definition ContentSource.h:5
Definition StreamParams.h:12
Definition PeerConnectionDependencies.h:12