a-oRTP  5.2.0
Data Structures | Macros | Typedefs | Enumerations | Functions
rtpsession.h File Reference

The RtpSession api. More...

#include <ortp/port.h>
#include <ortp/rtp.h>
#include <ortp/payloadtype.h>
#include <ortp/rtcp.h>
#include <ortp/str_utils.h>
#include <ortp/rtpsignaltable.h>
#include <ortp/event.h>
#include <ortp/rtptransport.h>
#include <ortp/stun.h>
#include <ortp/turn.h>

Go to the source code of this file.

Data Structures

struct  _JBParameters
 
struct  _JitterControl
 
struct  BandwidthStatistics
 
struct  ccmtmmbr_bitrate_table
 
struct  _RtpStream
 
struct  _RtcpStream
 
struct  _tc_qos
 
struct  _RtpSession
 
struct  _RtpMedia
 
struct  _RtpBundle
 

Macros

#define rtp_session_set_flag(session, flag)   (session)->flags|=(flag)
 
#define rtp_session_unset_flag(session, flag)   (session)->flags&=~(flag)
 

Typedefs

typedef struct _JBParameters JBParameters
 
typedef struct _JitterControl JitterControl
 
typedef struct BandwidthStatistics BandwidthStatistics
 
typedef struct _RtpStream RtpStream
 
typedef struct _RtcpStream RtcpStream
 
typedef struct _RtpSession RtpSession
 
typedef struct _RtpMedia RtpMedia
 
typedef struct _RtpBundle RtpBundle
 

Enumerations

enum  RtpSessionMode { RTP_SESSION_RECVONLY, RTP_SESSION_SENDONLY, RTP_SESSION_SENDRECV }
 
enum  RtpSessionSetup { RTP_SESSION_SETUP_PASSIVE, RTP_SESSION_SETUP_ACTIVE, RTP_SESSION_SETUP_ACTPASS, RTP_SESSION_SETUP_HOLDCONN }
 

Functions

void BandwidthStatistics_init (BandwidthStatistics *bw_stats, int period)
 
void BandwidthStatistics_update (BandwidthStatistics *bw_stats, int nbytes, int nbytes_overhead, struct timeval *now)
 
void BandwidthStatistics_destroy (BandwidthStatistics *bw_stats)
 
RtpBundlertp_bundle_new (void)
 
void rtp_bundle_destroy (RtpBundle *bundle)
 
void rtp_bundle_lock (RtpBundle *bundle)
 
void rtp_bundle_unlock (RtpBundle *bundle)
 
void rtp_bundle_media_add (RtpBundle *bundle, RtpMedia *_RtpMedia, int pos)
 
void rtp_bundle_media_remove (RtpBundle *bundle, RtpMedia *_RtpMedia)
 
void rtp_bundle_start (RtpBundle *bundle)
 
void rtp_bundle_stop (RtpBundle *bundle)
 
RtpMediartp_media_new (int session_mode, bool_t use_bundle)
 
void rtp_media_destroy (RtpMedia *media)
 
void rtp_session_set_bundle (RtpSession *session, struct _RtpBundle *bundle)
 
RtpSessionrtp_session_new (int mode)
 
void rtp_session_enable_sendrecv (RtpSession *session)
 
void rtp_session_disable_sendrecv (RtpSession *session)
 
void rtp_session_set_scheduling_mode (RtpSession *session, int yesno)
 
void rtp_session_set_blocking_mode (RtpSession *session, int yesno)
 
void rtp_session_set_profile (RtpSession *session, RtpProfile *profile)
 
void rtp_session_set_send_profile (RtpSession *session, RtpProfile *profile)
 
void rtp_session_set_recv_profile (RtpSession *session, RtpProfile *profile)
 
RtpProfilertp_session_get_profile (RtpSession *session)
 
RtpProfilertp_session_get_send_profile (RtpSession *session)
 
RtpProfilertp_session_get_recv_profile (RtpSession *session)
 
int rtp_session_signal_connect (RtpSession *session, const char *signal_name, RtpCallback cb, uintptr_t user_data)
 
int rtp_session_signal_disconnect_by_callback (RtpSession *session, const char *signal_name, RtpCallback cb)
 
void rtp_session_set_ssrc (RtpSession *session, uint32_t ssrc)
 
void rtp_session_set_recv_ssrc (RtpSession *session, uint32_t ssrc)
 
void rtp_session_set_seq_number (RtpSession *session, uint16_t seq)
 
uint16_t rtp_session_get_seq_number (RtpSession *session)
 
void rtp_session_enable_jitter_buffer (RtpSession *session, bool_t enabled)
 
bool_t rtp_session_jitter_buffer_enabled (const RtpSession *session)
 
void rtp_session_set_jitter_buffer_params (RtpSession *session, const JBParameters *par)
 
void rtp_session_get_jitter_buffer_params (RtpSession *session, JBParameters *par)
 
float rtp_session_get_average_buffer_size (RtpSession *session)
 
void rtp_session_set_jitter_compensation (RtpSession *session, int milisec)
 
void rtp_session_enable_adaptive_jitter_compensation (RtpSession *session, bool_t val)
 
bool_t rtp_session_adaptive_jitter_compensation_enabled (RtpSession *session)
 
void rtp_session_set_time_jump_limit (RtpSession *session, int miliseconds)
 
int rtp_session_set_local_addr (RtpSession *session, int idx, const char *addr, int port)
 
int rtp_session_get_local_port (const RtpSession *session)
 
int rtp_session_set_tsc_server (RtpSession *session, void *tunnel_handle, unsigned int tsc_redundancy_factor, int tsc_redundancy_lb)
 
int rtp_session_set_remote_addr_full (RtpSession *session, int idx, const char *addr, int rtp_port, int rtcp_port)
 
int rtp_session_set_remote_addr_and_port (RtpSession *session, int idx, const char *addr, int rtp_port, int rtcp_port)
 
int rtp_session_set_remote_addr (RtpSession *session, int idx, const char *addr, int port)
 
void rtp_session_set_transports (RtpSession *session, RtpTransport *rtptr)
 
void rtp_session_add_module (RtpSession *session, RtpModule *module)
 
RtpModulertp_session_get_module (RtpSession *session, const char *name)
 
int rtp_session_remove_module (RtpSession *session, const char *name)
 
void rtp_session_module_remove_all (RtpSession *session)
 
int rtp_session_set_dscp (RtpSession *session, int idx, int dscp)
 
int rtp_session_get_dscp (const RtpSession *session)
 
int rtp_session_set_multicast_ttl (RtpSession *session, int idx, int ttl)
 
int rtp_session_get_multicast_ttl (RtpSession *session)
 
int rtp_session_set_multicast_loopback (RtpSession *session, int idx, int yesno)
 
int rtp_session_get_multicast_loopback (RtpSession *session)
 
int rtp_session_set_send_payload_type (RtpSession *session, int paytype)
 
int rtp_session_get_send_payload_type (const RtpSession *session)
 
int rtp_session_get_recv_payload_type (const RtpSession *session)
 
int rtp_session_set_recv_payload_type (RtpSession *session, int pt)
 
int rtp_session_set_payload_type (RtpSession *session, int pt)
 
void rtp_session_set_symmetric_rtp (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_mux (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_fb_nack (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_fb_pli (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_fb_ccm_tmmbr (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_fb_goog_remb (RtpSession *session, bool_t yesno)
 
void rtp_session_set_rtcp_xr_voip_metrics (RtpSession *session, bool_t yesno)
 
void rtp_session_update_voip_metrics (RtpSession *session, int packet_received, int packet_lost, int packet_discarded)
 
void rtp_session_enable_rtcp (RtpSession *session, bool_t yesno)
 
void rtp_session_set_ssrc_changed_threshold (RtpSession *session, int numpackets)
 
mblk_trtp_session_recvm_with_ts (RtpSession *session, uint32_t user_ts)
 
mblk_trtp_session_recvm_with_ts_extended (RtpSession *session, uint32_t user_ts, mblk_t **last_dropped)
 
mblk_trtp_session_create_packet (RtpSession *session, int header_size, const uint8_t *payload, int payload_size)
 
mblk_trtp_session_create_packet_with_data (RtpSession *session, uint8_t *payload, int payload_size, void(*freefn)(void *))
 
mblk_trtp_session_create_packet_in_place (RtpSession *session, uint8_t *buffer, int size, void(*freefn)(void *))
 
int rtp_session_sendm_with_ts (RtpSession *session, mblk_t *mp, uint32_t userts)
 
int __rtp_session_sendm_with_ts (RtpSession *session, mblk_t *mp, uint32_t packet_ts, uint32_t send_ts)
 
int rtp_session_recv_with_ts (RtpSession *session, uint8_t *buffer, int len, uint32_t ts, int *have_more)
 
int rtp_session_send_with_ts (RtpSession *session, const uint8_t *buffer, int len, uint32_t userts)
 
int rtp_session_data_send (RtpSession *session, mblk_t *m, int packettype)
 
void rtp_session_register_event_queue (RtpSession *session, OrtpEvQueue *q)
 
void rtp_session_unregister_event_queue (RtpSession *session, OrtpEvQueue *q)
 
float rtp_session_get_sent_rtp_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_rtp_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_sent_stun_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_stun_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_sent_other_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_other_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_bad_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_sent_rtcp_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_rtcp_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_get_recv_rtppayload_bandwidth (RtpSession *session, BandwidthStatistics *val)
 
float rtp_session_compute_send_bandwidth (RtpSession *session)
 
float rtp_session_compute_recv_bandwidth (RtpSession *session)
 
float rtp_session_compute_rtcp_recv_bandwidth (RtpSession *session)
 
float rtp_session_compute_rtcp_send_bandwidth (RtpSession *session)
 
float rtp_session_compute_average_jitter (RtpSession *session)
 
void rtp_session_send_rtcp_APP (RtpSession *session, uint8_t subtype, const char *name, const uint8_t *data, int datalen)
 
uint32_t rtp_session_get_current_send_ts (RtpSession *session)
 
uint32_t rtp_session_get_current_recv_ts (RtpSession *session)
 
void rtp_session_flush_sockets (RtpSession *session)
 
void rtp_session_release_sockets (RtpSession *session)
 
void rtp_session_resync (RtpSession *session)
 
void rtp_session_reset (RtpSession *session)
 
void rtp_session_destroy (RtpSession *session)
 
const rtp_stats_trtp_session_get_stats (const RtpSession *session)
 
const rtp_extended_stats_trtp_session_get_extented_stats (const RtpSession *session)
 
void rtp_session_reset_stats (RtpSession *session)
 
void rtp_session_set_data (RtpSession *session, void *data)
 
void * rtp_session_get_data (const RtpSession *session)
 
void rtp_session_set_recv_buf_size (RtpSession *session, int bufsize)
 
void rtp_session_set_rtp_socket_send_buffer_size (RtpSession *session, unsigned int size)
 
void rtp_session_set_rtp_socket_recv_buffer_size (RtpSession *session, unsigned int size)
 
uint32_t rtp_session_ts_to_time (RtpSession *session, uint32_t timestamp)
 
uint32_t rtp_session_time_to_ts (RtpSession *session, int millisecs)
 
void rtp_session_make_time_distorsion (RtpSession *session, int milisec)
 
int rtp_session_set_icechecklist (RtpSession *session, struct IceCheckList *rtp_checklist, struct IceCheckList *rtcp_checklist)
 
int rtp_session_set_max_recv_bitrate (RtpSession *session, uint32_t max_ccm_bitrate)
 
void rtp_session_set_source_description (RtpSession *session, const char *cname, const char *name, const char *email, const char *phone, const char *loc, const char *tool, const char *note)
 
void rtp_session_add_contributing_source (RtpSession *session, uint32_t csrc, const char *cname, const char *name, const char *email, const char *phone, const char *loc, const char *tool, const char *note)
 
void rtp_session_remove_contributing_sources (RtpSession *session, uint32_t csrc)
 
mblk_trtp_session_create_rtcp_sdes_packet (RtpSession *session)
 
mblk_trtp_session_create_rtcp_xr_vm_packet (RtpSession *session)
 
void rtp_session_get_last_recv_time (RtpSession *session, struct timeval *tv)
 
int rtp_session_bye (RtpSession *session, const char *reason)
 
void rtp_session_send_rtcp_fb_NACK (RtpSession *session, const uint16_t cseq, const uint16_t bits)
 
void rtp_session_send_rtcp_fb_RPSI (RtpSession *session, const uint8_t *bitstring, int bitstring_len)
 
void rtp_session_send_rtcp_fb_PLI (RtpSession *session)
 
void rtp_session_send_rtcp_fb_TMMB (RtpSession *session, const uint8_t subtype, const uint32_t ssrc, const uint32_t bitrate, const uint32_t overhead)
 
void rtp_session_send_rtcp_fb_GOOGREMB (RtpSession *session, const uint32_t ssrc, const uint32_t bitrate)
 
int rtp_session_get_last_send_error_code (RtpSession *session)
 
void rtp_session_clear_send_error_code (RtpSession *session)
 
int rtp_session_get_last_recv_error_code (RtpSession *session)
 
void rtp_session_clear_recv_error_code (RtpSession *session)
 
void rtp_session_init (RtpSession *session, int mode)
 
void rtp_session_uninit (RtpSession *session)
 
void rtp_session_dispatch_event (RtpSession *session, OrtpEvent *ev)
 

Detailed Description

The RtpSession api.

The RtpSession objects represent a RTP session: once it is configured with local and remote network addresses and a payload type is given, it let you send and recv a media stream.

Typedef Documentation

◆ JBParameters

typedef struct _JBParameters JBParameters

Jitter buffer parameters