SDP processing. More...
#include "janus.h"
#include "ice.h"
#include "dtls.h"
#include "sdp.h"
#include "utils.h"
#include "debug.h"
#include "events.h"
Functions | |
janus_sdp * | janus_sdp_preparse (const char *jsep_sdp, char *error_str, size_t errlen, int *audio, int *video, int *data, int *bundle, int *rtcpmux, int *trickle) |
Method to pre-parse a session description. More... | |
int | janus_sdp_process (void *ice_handle, janus_sdp *remote_sdp) |
Method to process a parsed session description. More... | |
int | janus_sdp_parse_candidate (void *ice_stream, const char *candidate, int trickle) |
Method to parse a single candidate. More... | |
int | janus_sdp_parse_ssrc (void *ice_stream, const char *ssrc_attr, int video) |
Method to parse a SSRC attribute. More... | |
int | janus_sdp_anonymize (janus_sdp *anon) |
Method to strip/anonymize a session description. More... | |
char * | janus_sdp_merge (void *ice_handle, janus_sdp *anon) |
Method to merge a stripped session description and the right transport information. More... | |
SDP processing.
Implementation of an SDP parser/merger/generator in the gateway. Each SDP coming from peers is stripped/anonymized before it is passed to the plugins: all DTLS/ICE/transport related information is removed, only leaving the relevant information in place. SDP coming from plugins is stripped/anonymized as well, and merged with the proper DTLS/ICE/transport information before it is sent to the peers. The actual SDP processing (parsing SDP strings, representation of SDP as an internal format, and so on) is done via the tools provided in sdp-utils.h.
int janus_sdp_anonymize | ( | janus_sdp * | sdp | ) |
Method to strip/anonymize a session description.
[in,out] | sdp | The Janus SDP description object to strip/anonymize |
char* janus_sdp_merge | ( | void * | handle, |
janus_sdp * | sdp | ||
) |
Method to merge a stripped session description and the right transport information.
[in] | handle | Opaque pointer to the ICE handle this session description is related to |
[in] | sdp | The Janus SDP description object to merge/enrich |
int janus_sdp_parse_candidate | ( | void * | stream, |
const char * | candidate, | ||
int | trickle | ||
) |
Method to parse a single candidate.
This method will parse a single remote candidate provided by a peer, whether it is trickling or not
[in] | stream | Opaque pointer to the ICE stream this candidate refers to |
[in] | candidate | The remote candidate to process |
[in] | trickle | Whether this is a trickle candidate, or coming from the SDP |
int janus_sdp_parse_ssrc | ( | void * | stream, |
const char * | ssrc_attr, | ||
int | video | ||
) |
Method to parse a SSRC attribute.
This method will parse a SSRC attribute, and set it for the peer
[in] | stream | Opaque pointer to the ICE stream this candidate refers to |
[in] | ssrc_attr | The SSRC attribute value to parse |
[in] | video | Whether this is a video SSRC or not |
janus_sdp* janus_sdp_preparse | ( | const char * | jsep_sdp, |
char * | error_str, | ||
size_t | errlen, | ||
int * | audio, | ||
int * | video, | ||
int * | data, | ||
int * | bundle, | ||
int * | rtcpmux, | ||
int * | trickle | ||
) |
Method to pre-parse a session description.
This method is only used to quickly check how many audio and video lines are in an SDP, and to generate a Janus SDP instance
[in] | jsep_sdp | The SDP that the browser peer originated |
[in,out] | error_str | Buffer to receive a reason for an error, if any |
[in] | errlen | The length of the error buffer |
[out] | audio | The number of audio m-lines |
[out] | video | The number of video m-lines |
[out] | data | The number of SCTP m-lines |
[out] | bundle | Whether BUNDLE has been negotiated or not |
[out] | rtcpmux | Whether rtcp-mux has been negotiated or not |
[out] | trickle | Whether ICE trickling is being used (no candidates) or not |
int janus_sdp_process | ( | void * | handle, |
janus_sdp * | sdp | ||
) |
Method to process a parsed session description.
This method will process a session description coming from a peer, and set up the ICE candidates accordingly
[in] | handle | Opaque pointer to the ICE handle this session description will modify |
[in] | sdp | The Janus SDP object to process |