1#if !defined(GstRemoteParticipant_hxx)
2#define GstRemoteParticipant_hxx
24#include <gst/sdp/gstsdpmessage.h>
25#include <glibmm/object.h>
27#include <gst/webrtc/webrtc.h>
31class DialogUsageManager;
38#if defined(WIN32) && !defined(__GNUC__)
39#pragma warning( disable : 4250 )
44class GstMediaStackAdapter;
107 void initRtpManager();
108 void initRtpSession(
bool isWebRTC);
110 virtual void linkOutgoingPipeline(
unsigned int streamId, Glib::RefPtr<Gst::Bin>
bin,
const Glib::RefPtr<Gst::Caps>
caps);
112 virtual bool initEndpointIfRequired(
bool isWebRTC);
115 virtual bool isWebRTCSession()
const;
116 virtual void onMediaSourceAdded(
const Glib::RefPtr<Gst::Pad>&
pad);
117 virtual Glib::RefPtr<Gst::Bin> createIncomingPipeline(Glib::RefPtr<Gst::Pad>
pad);
118 virtual void debugGraph();
126 bool onGstBusMessage(
const Glib::RefPtr<Gst::Bus>&,
const Glib::RefPtr<Gst::Message>& message);
130 volatile bool mIceGatheringDone;
132 std::chrono::time_point<std::chrono::steady_clock> mLastLocalKeyframeRequest = std::chrono::steady_clock::now();
134 Glib::RefPtr<Gst::Caps> mCapsVideo;
135 Glib::RefPtr<Gst::Caps> mCapsAudio;
static const Data pad("\0\0\0\0\0\0\0", 7)
This class is one of two main classes of concern to an application using the UserAgent library.
This class is used to manage membership of participants.
This is the base class for a GstRemoteParticipant, GstLocalParticipant and a GstMediaResourceParticip...
This class is used by Invite DialogSets.
This class represent a remote participant.
bool mWSAcceptsKeyframeRequests
virtual void applyBridgeMixWeights() override
std::function< void(const Glib::RefPtr< Gst::Pad > &pad)> mPadAdded
void onIceGatheringDone()
resip::SdpContents * mLastRemoteSdp
virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp=false)
virtual bool onMediaControlEvent(resip::MediaControlContents::MediaControl &mediaControl)
virtual void requestKeyframe() override
virtual ~GstRemoteParticipant()
Glib::RefPtr< Gst::Element > mRtpTransportElement
virtual void removeFromConversation(Conversation *conversation) override
Glib::RefPtr< Gst::Element > mMediaBin
virtual void waitingMode()
virtual int getConnectionPortOnBridge()
virtual void adjustRTPStreams(bool sendingOffer=false)
virtual int getMediaConnectionId()
bool mRemoveExtraMediaDescriptors
virtual bool mediaStackPortAvailable()
std::shared_ptr< resipgst::GstRtpSession > mRtpSession
std::shared_ptr< resipgst::GstRtpManager > mRtpManager
bool mTrickleIcePermitted
virtual bool onTrickleIce(resip::TrickleIceContents &trickleIce) override
virtual GstRemoteParticipantDialogSet & getGstDialogSet()
virtual void addToConversation(Conversation *conversation, unsigned int inputGain=100, unsigned int outputGain=100) override
virtual bool holdPreferExistingSdp() override
Glib::RefPtr< Gst::Pipeline > mPipeline
This class is used by Invite DialogSets.
This class represent a remote participant.
std::function< void(bool sdpOk, std::unique_ptr< resip::SdpContents > sdp)> CallbackSdpReady
RemoteParticipantDialogSet & getDialogSet()
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;