30#include "cajun/json/elements.h"
32#if defined(WIN32) && !defined(__GNUC__)
33#pragma warning( disable : 4355 )
40#define RESIPROCATE_SUBSYSTEM ReconSubsystem::RECON
53 init(defaultSampleRate, maxSampleRate);
57LibWebRTCMediaStackAdapter::init(
int defaultSampleRate,
int maxSampleRate)
60 DebugLog(<<
"trying to connect to LibWebRTC host " << mLibWebRTCUri);
61 mLibWebRTCConnection = mLibWebRTCManager.getLibWebRTCConnection(mLibWebRTCUri.c_str(), *
this);
74 mPipeline = make_shared<libwebrtc::MediaPipeline>(mLibWebRTCConnection);
75 mPipeline->create([
this]{
76 DebugLog(<<
"pipeline created with ID " << mPipeline->getId());
83 InfoLog(<<
"LibWebRTCMediaStackAdapter shutdown");
86 mPipeline->release([
this](){
87 InfoLog(<<
"mPipeline has been released");
88 mLibWebRTCConnection.reset();
93 mLibWebRTCConnection.reset();
145 WarningLog(<<
"ConversationManager::outputBridgeMatrix request with no conversation handle is not appropriate for current MediaInterfaceMode");
159 WarningLog(<<
"ConversationManager::outputBridgeMatrix requested conversation wihtout a mixer/media interface, conversationHandle=" << convHandle);
164 WarningLog(<<
"ConversationManager::outputBridgeMatrix requested for non-existing conversationHandle=" << convHandle);
181 "o=- 3843572881 3843572881 IN IP4 " + ipaddress +
"\r\n"
182 "s=LibWebRTC Media Server\r\n"
183 "c=IN IP4 " + ipaddress +
"\r\n"
185 "m=audio 34712 RTP/AVP 0\r\n"
188 "a=rtpmap:0 PCMU/8000\r\n"
189 "a=ssrc:866007149 cname:user2141419334@host-99aef493\r\n"
190 "m=video 2962 RTP/AVP 97 126\r\n"
193 "a=rtpmap:97 H264/90000\r\n"
194 "a=rtpmap:126 H264/90000\r\n"
195 "a=fmtp:97 packetization-mode=0;profile-level-id=420016;max-br=5000;max-mbps=245000;max-fs=9000;max-smbps=245000;max-fps=6000;max-rcmd-nalu-size=3456000;sar-supported=16\r\n"
196 "a=fmtp:126 packetization-mode=1;profile-level-id=428016;max-br=5000;max-mbps=245000;max-fs=9000;max-smbps=245000;max-fps=6000;max-rcmd-nalu-size=3456000;sar-supported=16\r\n"
197 "a=ssrc:1014502683 cname:user2141419334@host-99aef493\r\n");
200 Mime type(
"application",
"sdp");
241 std::shared_ptr<ConfigParse> cfg =
getConfig();
245 krp->
mSipRtpEndpoint = cfg->getConfigBool(
"LibWebRTCSipRtpEndpoint",
true);
246 krp->
mReuseSdpAnswer = cfg->getConfigBool(
"LibWebRTCReuseSdpAnswer",
false);
270 std::shared_ptr<ConversationProfile> conversationProfile)
276LibWebRTCMediaStackAdapter::process()
278 mLibWebRTCManager.process();
282LibWebRTCMediaStackAdapter::initializeDtlsFactory(
const resip::Data& defaultAoR)
#define WarningLog(args_)
virtual void outputBridgeMixWeights()=0
Logs a multiline representation of the current state of the mixing matrix.
This class is one of two main classes of concern to an application using the UserAgent library.
ParticipantForkSelectMode
This class is used to manage membership of participants.
BridgeMixer * getBridgeMixer() noexcept
The classes defined here are used to pass commands from the application thread to the UserAgent threa...
This class represent a remote participant.
bool mWSAcceptsKeyframeRequests
bool mRemoveExtraMediaDescriptors
This class represents a local participant.
This class is used by Invite DialogSets.
This class represent a remote participant.
This class is one of two main classes of concern to an application using the UserAgent library.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
size_type size() const noexcept
Returns the number of bytes in this Data.
const char * data() const noexcept
Returns a pointer to the contents of this Data.
Represents the "media-type" element in the RFC 3261 grammar.
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
Represents the "SIP-URI" and "SIPS-URI" elements in the RFC 3261 grammar.
unsigned int ConversationHandle
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;