1#ifndef RESIP_GSTRTPSESSION
2#define RESIP_GSTRTPSESSION
12#include <glibmm/main.h>
13#include <glibmm/exceptionhandler.h>
14#include <glibmm/ustring.h>
15#include <gstreamermm.h>
17#include <gst/webrtc/webrtc.h>
19#include "../../rutil/Subsystem.hxx"
20#include "../../rutil/Log.hxx"
21#include "../../rutil/hep/HepAgent.hxx"
22#include "../../resip/stack/SdpContents.hxx"
23#include "../../resip/stack/Tuple.hxx"
24#include "../../rutil/hep/HepAgent.hxx"
26#include "../RTPPortManager.hxx"
40 virtual std::shared_ptr<resip::SdpContents>
buildOffer(
bool audio,
bool video);
42 virtual void processAnswer(std::shared_ptr<resip::SdpContents>
remoteAnswer);
52 virtual Glib::RefPtr<Gst::Bin>
getMediaBin() {
return mMediaBin; };
59 std::shared_ptr<resip::SdpContents> getLocalSdp()
const {
return mLocal; };
60 void setLocalSdp(std::shared_ptr<resip::SdpContents>
local) {
mLocal =
local; };
61 std::shared_ptr<resip::SdpContents> getRemoteSdp()
const {
return mRemote; };
62 void setRemoteSdp(std::shared_ptr<resip::SdpContents>
remote);
64 typedef std::vector<Glib::RefPtr<Gst::Caps>>
CapsVector;
66 typedef std::vector<Glib::RefPtr<Gst::Pad>>
PadVector;
69 virtual bool isWebRTC()
const {
return mWebRTC; };
88 unsigned int allocatePort();
95 std::shared_ptr<resip::SdpContents>
mLocal;
96 std::shared_ptr<resip::SdpContents>
mRemote;
99 Glib::RefPtr<Gst::Bin> mMediaBin;
104 std::map<unsigned int, Glib::RefPtr<Gst::Element> >
mSendSinks;
105 std::map<unsigned int, Glib::RefPtr<Gst::Element> >
mSendRtcpSinks;
117 std::shared_ptr<resip::HepAgent> mHepAgent;
static const Data pad("\0\0\0\0\0\0\0", 7)
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
process m= (media announcement) blocks