10#define RESIPROCATE_SUBSYSTEM kurento::KurentoSubsystem::KURENTOCLIENT
14using std::placeholders::_1;
15using std::placeholders::_2;
17const char *MediaProfileSpecType::JPEG_VIDEO_ONLY =
"JPEG_VIDEO_ONLY";
18const char *MediaProfileSpecType::KURENTO_SPLIT_RECORDER =
"KURENTO_SPLIT_RECORDER";
19const char *MediaProfileSpecType::MP4 =
"MP4";
20const char *MediaProfileSpecType::MP4_AUDIO_ONLY =
"MP4_AUDIO_ONLY";
21const char *MediaProfileSpecType::MP4_VIDEO_ONLY =
"MP4_VIDEO_ONLY";
22const char *MediaProfileSpecType::WEBM =
"WEBM";
23const char *MediaProfileSpecType::WEBM_AUDIO_ONLY =
"WEBM_AUDIO_ONLY";
24const char *MediaProfileSpecType::WEBM_VIDEO_ONLY =
"WEBM_VIDEO_ONLY";
26Object::Object(
const std::string& name, std::shared_ptr<KurentoConnection> connection)
28 mConnection(connection)
38Object::makeRpcCallStatic(
const std::string&
methodName,
const json::Object& params, ContinuationInternal
c)
40 std::string
reqId = mConnection->sendRequest(
41 KurentoResponseHandler::shared_from_this(),
48Object::makeRpcCall(
const std::string&
methodName, json::Object& params, ContinuationInternal
c)
61 params[
"properties"] = json::Object();
63 std::string
reqId = makeRpcCallStatic(
"create", params,
ci);
72 std::string
reqId = makeRpcCall(
"subscribe", params,
ci);
80 std::string
reqId = makeRpcCall(
"release", params,
ci);
87 if(mEventListeners.find(
eventType) == mEventListeners.end())
107 EventListenerList::const_iterator
it;
111 std::shared_ptr<EventListener>
l = *
it;
132 params[
"operation"] = json::String(
methodName);
134 params[
"properties"] = json::Object();
138 std::string
reqId = makeRpcCall(
"invoke", params,
ci);
145 params[
"operation"] = json::String(
methodName);
147 params[
"properties"] = json::Object();
151 std::string
reqId = makeRpcCall(
"invoke", params,
ci);
157 const ContinuationMap::const_iterator
it = mContinuations.find(
id);
158 if(
it == mContinuations.end())
160 ErrLog(<<
"received response for unknown request");
165 mContinuations.erase(
id);
173 DebugLog(<<
"Object: " << mName <<
" got Kurento Object ID: " << mId);
191 ErrLog(<<
"Error from Kurento: " << errorMessage.Value());
194 DebugLog(<<
"successfully executed RPC method without a return value");
204 ErrLog(<<
"Error from Kurento: " << errorMessage.Value());
207 DebugLog(<<
"successfully executed RPC method returning string");
209 std::string&
_value = value.Value();
215 :
Object(
"MediaPipeline", connection)
332 params[
"command"] = json::String(mCommand);
359 params[
"uri"] = json::String(mUri);
367 params[
"uri"] = json::String(mUri);
412 params[
"mediaProfile"] = json::String(mMediaProfile);
441 params[
"externalIPv4"] = json::String(addr);
449 params[
"externalIPv6"] = json::String(addr);
463 params[
"answer"] = json::String(
sdp);
471 params[
"offer"] = json::String(
sdp);
516 params[
"cryptoAgnostic"] = json::Boolean(mCryptoAgnostic);
540 params[
"candidate"] = json::Object();
541 params[
"candidate"][
"candidate"] = json::String(
candidate);
542 params[
"candidate"][
"sdpMid"] = json::String(
mid);
543 params[
"candidate"][
"sdpMLineIndex"] = json::Number(
lineIndex);
#define JSON_RPC_ERROR_MESSAGE
#define JSON_RPC_MEDIAPIPELINE
#define WarningLog(args_)
#define resip_assert(x)
This file needs to work for both C and C++ code.
void setExternalIPv4(ContinuationVoid c, const std::string &addr)
virtual ~BaseRtpEndpoint()
void getLocalSessionDescriptor(ContinuationString s)
void sendPictureFastUpdate(ContinuationVoid c)
void generateOffer(ContinuationString s)
void processAnswer(ContinuationString s, const std::string &sdp)
void setExternalIPv6(ContinuationVoid c, const std::string &addr)
void addKeyframeRequiredListener(std::shared_ptr< EventListener > l, ContinuationVoid c)
void processOffer(ContinuationString s, const std::string &sdp)
BaseRtpEndpoint(const std::string &name, std::shared_ptr< MediaPipeline > mediaPipeline)
Endpoint(const std::string &name, std::shared_ptr< MediaPipeline > mediaPipeline)
static std::shared_ptr< Event > make_event(const std::string &eventType, const json::Object &message)
GStreamerFilter(std::shared_ptr< MediaPipeline > mediaPipeline, const std::string &command)
virtual ~GStreamerFilter()
virtual void create(ContinuationVoid c) override
std::function< void(const json::Object &message) > ContinuationInternal
void sendNotifications(const std::string &eventType, const json::Object &message)
void addListener(const std::string &eventName, std::shared_ptr< EventListener > l, ContinuationVoid c)
Object(const std::string &name, std::shared_ptr< KurentoConnection > connection)
void processResponse(const std::string &id, std::shared_ptr< KurentoResponseHandler > krh, const json::Object &message) override
virtual void release(ContinuationVoid c)
void invokeStringMethod(const std::string &methodName, ContinuationString c, const json::Object &methodParams=json::Object())
void invokeVoidMethod(const std::string &methodName, ContinuationVoid c, const json::Object &methodParams=json::Object())
virtual void onEvent(const std::string &eventType, const json::Object &message)
virtual void create(ContinuationVoid c)
void createObject(ContinuationVoid c, const json::Object &constructorParams=json::Object())
static const std::string EVENT_NAME
static const std::string EVENT_NAME
static const std::string EVENT_NAME
static const std::string EVENT_NAME
static const std::string EVENT_NAME
static const std::string EVENT_NAME
virtual ~PassThroughElement()
PassThroughElement(std::shared_ptr< MediaPipeline > mediaPipeline)
void play(ContinuationVoid c)
PlayerEndpoint(std::shared_ptr< MediaPipeline > mediaPipeline, const std::string &uri)
virtual ~PlayerEndpoint()
void record(ContinuationVoid c)
RecorderEndpoint(std::shared_ptr< MediaPipeline > mediaPipeline, const std::string &uri, const char *mediaProfile)
void stopAndWait(ContinuationVoid c)
virtual void create(ContinuationVoid c) override
virtual ~RecorderEndpoint()
RtpEndpoint(std::shared_ptr< MediaPipeline > mediaPipeline)
SipRtpEndpoint(std::shared_ptr< MediaPipeline > mediaPipeline, bool cryptoAgnostic=true)
virtual void create(ContinuationVoid c) override
virtual ~SipRtpEndpoint()
void stop(ContinuationVoid c)
void pause(ContinuationVoid c)
virtual void create(ContinuationVoid c) override
UriEndpoint(const std::string &name, std::shared_ptr< MediaPipeline > mediaPipeline, const std::string &uri)
void addOnIceCandidateFoundListener(std::shared_ptr< EventListener > l, ContinuationVoid c)
WebRtcEndpoint(std::shared_ptr< MediaPipeline > mediaPipeline)
void addDataChannelOpenedListener(std::shared_ptr< EventListener > l, ContinuationVoid c)
void addOnIceGatheringDoneListener(std::shared_ptr< EventListener > l, ContinuationVoid c)
void gatherCandidates(ContinuationVoid c)
void addIceCandidate(ContinuationVoid c, const std::string &candidate, const std::string &mid, unsigned int lineIndex)
virtual ~WebRtcEndpoint()
This class is used in the logging subsystem to identify logging messages generated from the Kurento c...
std::function< void(void) > ContinuationVoid
std::function< void(const std::string &s) > ContinuationString