34 #include <ortp/port.h> 
   39 #include <ortp/rtcp.h> 
   40 #include <ortp/str_utils.h> 
   41 #include <ortp/rtpsignaltable.h> 
   42 #include <ortp/event.h> 
   45 #define ORTP_AVPF_FEATURE_NONE 0 
   46 #define ORTP_AVPF_FEATURE_TMMBR (1 << 0) 
   72         int adapt_jitt_comp_ts;
 
   80         uint64_t cum_jitter_buffer_size; 
 
   81         unsigned int cum_jitter_buffer_count; 
 
  114         int  (*t_sendto)(
struct _RtpTransport *t, 
mblk_t *msg , 
int flags, 
const struct sockaddr *to, socklen_t tolen);
 
  115         int  (*t_recvfrom)(
struct _RtpTransport *t, 
mblk_t *msg, 
int flags, 
struct sockaddr *from, socklen_t *fromlen);
 
  116         void  (*t_close)(
struct _RtpTransport *transport, 
void *userData);
 
  125         OrtpNetworkSimulatorInvalid=-1,
 
  130 }OrtpNetworkSimulatorMode;
 
  154         struct timeval last_check;
 
  155         uint64_t last_jitter_event;
 
  156         int consecutive_drops;
 
  158         int drop_by_congestion;
 
  162         ortp_thread_t thread;
 
  163         bool_t in_jitter_event;
 
  164         bool_t thread_started;
 
  172         uint32_t T_max_fb_delay; 
 
  173         uint32_t T_rr_interval; 
 
  174         uint32_t T_rr_current_interval;
 
  181         bool_t tmmbr_scheduled;
 
  182         bool_t tmmbn_scheduled;
 
  185 #define ORTP_RTCP_XR_UNAVAILABLE_PARAMETER 127 
  189         OrtpRtcpXrSilencePlc,
 
  190         OrtpRtcpXrEnhancedPlc
 
  191 } OrtpRtcpXrPlcStatus;
 
  193 typedef OrtpRtcpXrPlcStatus (*OrtpRtcpXrPlcCallback)(
unsigned long userdata);
 
  194 typedef int (*OrtpRtcpXrSignalLevelCallback)(
unsigned long userdata);
 
  195 typedef int (*OrtpRtcpXrNoiseLevelCallback)(
unsigned long userdata);
 
  196 typedef float (*OrtpRtcpXrAverageQualityIndicatorCallback)(
unsigned long userdata);
 
  199         OrtpRtcpXrPlcCallback plc;
 
  200         OrtpRtcpXrSignalLevelCallback signal_level;
 
  201         OrtpRtcpXrNoiseLevelCallback noise_level;
 
  202         OrtpRtcpXrAverageQualityIndicatorCallback average_qi;
 
  203         OrtpRtcpXrAverageQualityIndicatorCallback average_lq_qi;
 
  204         unsigned long userdata;
 
  208         OrtpRtcpXrRcvrRttNone,
 
  209         OrtpRtcpXrRcvrRttAll,
 
  210         OrtpRtcpXrRcvrRttSender
 
  211 } OrtpRtcpXrRcvrRttMode;
 
  214         OrtpRtcpXrStatSummaryLoss = (1 << 7),
 
  215         OrtpRtcpXrStatSummaryDup = (1 << 6),
 
  216         OrtpRtcpXrStatSummaryJitt = (1 << 5),
 
  217         OrtpRtcpXrStatSummaryTTL = (1 << 3),
 
  218         OrtpRtcpXrStatSummaryHL = (1 << 4)
 
  219 } OrtpRtcpXrStatSummaryFlag;
 
  223         bool_t stat_summary_enabled;
 
  224         bool_t voip_metrics_enabled;
 
  225         OrtpRtcpXrRcvrRttMode rcvr_rtt_mode;
 
  226         int rcvr_rtt_max_size;
 
  227         OrtpRtcpXrStatSummaryFlag stat_summary_flags;
 
  231         uint32_t last_rcvr_rtt_ts;      
 
  232         struct timeval last_rcvr_rtt_time;      
 
  233         uint16_t rcv_seq_at_last_stat_summary;  
 
  234         uint32_t rcv_since_last_stat_summary;   
 
  235         uint32_t dup_since_last_stat_summary;   
 
  236         uint32_t min_jitter_since_last_stat_summary;    
 
  237         uint32_t max_jitter_since_last_stat_summary;    
 
  238         double olds_jitter_since_last_stat_summary;
 
  239         double oldm_jitter_since_last_stat_summary;
 
  240         double news_jitter_since_last_stat_summary;
 
  241         double newm_jitter_since_last_stat_summary;
 
  242         int64_t last_jitter_diff_since_last_stat_summary;
 
  243         double olds_ttl_or_hl_since_last_stat_summary;
 
  244         double oldm_ttl_or_hl_since_last_stat_summary;
 
  245         double news_ttl_or_hl_since_last_stat_summary;
 
  246         double newm_ttl_or_hl_since_last_stat_summary;
 
  247         uint8_t min_ttl_or_hl_since_last_stat_summary;  
 
  248         uint8_t max_ttl_or_hl_since_last_stat_summary;  
 
  249         uint32_t first_rcv_seq;
 
  250         uint32_t last_rcv_seq;
 
  252         uint32_t discarded_count;
 
  261         struct sockaddr_storage addr;
 
  266         ortp_socket_t socket;
 
  269         socklen_t rem_addrlen;
 
  270         struct sockaddr_storage rem_addr;
 
  271         socklen_t loc_addrlen;
 
  272         struct sockaddr_storage loc_addr;
 
  275         struct timeval send_bw_start; 
 
  276         struct timeval recv_bw_start; 
 
  277         unsigned int sent_bytes; 
 
  278         unsigned int recv_bytes; 
 
  281         OList *aux_destinations; 
 
  293         unsigned long QoSFlowID;
 
  295         uint32_t snd_time_offset;
 
  296         uint32_t snd_ts_offset; 
 
  297         uint32_t snd_rand_offset;       
 
  298         uint32_t snd_last_ts;   
 
  299         uint32_t rcv_time_offset; 
 
  300         uint32_t rcv_ts_offset;  
 
  301         uint32_t rcv_query_ts_offset;   
 
  302         uint32_t rcv_last_ts;   
 
  303         uint16_t rcv_last_seq;  
 
  305         uint32_t rcv_last_app_ts; 
 
  306         uint32_t rcv_last_ret_ts; 
 
  307         uint32_t hwrcv_extseq; 
 
  308         uint32_t hwrcv_seq_at_last_SR;
 
  309         uint32_t hwrcv_since_last_SR;
 
  310         uint32_t last_rcv_SR_ts;     
 
  311         struct timeval last_rcv_SR_time;   
 
  313         uint32_t last_rtcp_packet_count; 
 
  314         uint32_t sent_payload_bytes; 
 
  320         int ssrc_changed_thres;
 
  332         bool_t rtcp_xr_dlrr_to_send;
 
  333         uint8_t rtcp_fb_fir_seq_nr;     
 
  334         uint32_t last_rtcp_fb_pli_snt;
 
  358         unsigned int inc_ssrc_candidate;
 
  359         int inc_same_ssrc_count;
 
  362         int target_upload_bandwidth; 
 
  370         struct _OList *signal_tables;
 
  381         int multicast_loopback;
 
  382         float duplication_ratio; 
 
  383         float duplication_left ; 
 
  386         struct timeval last_recv_time; 
 
  393         int64_t lost_packets_test_vector;
 
  394         unsigned int interarrival_jitter_test_vector;
 
  395         unsigned int delay_test_vector;
 
  399         bool_t symmetric_rtp;
 
  415 ORTP_PUBLIC 
const char *ortp_network_simulator_mode_to_string(OrtpNetworkSimulatorMode mode);
 
  416 ORTP_PUBLIC OrtpNetworkSimulatorMode ortp_network_simulator_mode_from_string(
const char *str);
 
  438 ORTP_PUBLIC 
void rtp_session_set_duplication_ratio(
RtpSession *session, 
float ratio);
 
  440 ORTP_PUBLIC 
void rtp_session_enable_jitter_buffer(
RtpSession *session , bool_t enabled);
 
  441 ORTP_PUBLIC bool_t rtp_session_jitter_buffer_enabled(
const RtpSession *session);
 
  447 ORTP_PUBLIC 
void rtp_session_enable_adaptive_jitter_compensation(
RtpSession *session, bool_t val);
 
  448 ORTP_PUBLIC bool_t rtp_session_adaptive_jitter_compensation_enabled(
RtpSession *session);
 
  451 ORTP_PUBLIC 
int rtp_session_join_multicast_group(
RtpSession *session, 
const char *ip);
 
  454 ORTP_PUBLIC 
int rtp_session_get_local_rtcp_port(
const RtpSession *session);
 
  459 ORTP_PUBLIC 
int rtp_session_set_remote_addr_and_port (
RtpSession * session, 
const char * addr, 
int rtp_port, 
int rtcp_port);
 
  462 ORTP_PUBLIC 
void rtp_session_clear_aux_remote_addr(
RtpSession * session);
 
  465 ORTP_PUBLIC 
void rtp_session_set_sockets(
RtpSession *session, 
int rtpfd, 
int rtcpfd);
 
  469 ORTP_PUBLIC ortp_socket_t rtp_session_get_rtp_socket(
const RtpSession *session);
 
  470 ORTP_PUBLIC ortp_socket_t rtp_session_get_rtcp_socket(
const RtpSession *session);
 
  506 ORTP_PUBLIC 
void rtp_session_set_target_upload_bandwidth(
RtpSession *session, 
int target_bandwidth);
 
  530 ORTP_PUBLIC 
float rtp_session_compute_send_bandwidth(
RtpSession *session);
 
  531 ORTP_PUBLIC 
float rtp_session_compute_recv_bandwidth(
RtpSession *session);
 
  534 ORTP_PUBLIC 
float rtp_session_get_rtp_send_bandwidth(
RtpSession *session);
 
  535 ORTP_PUBLIC 
float rtp_session_get_rtp_recv_bandwidth(
RtpSession *session);
 
  536 ORTP_PUBLIC 
float rtp_session_get_rtcp_send_bandwidth(
RtpSession *session);
 
  537 ORTP_PUBLIC 
float rtp_session_get_rtcp_recv_bandwidth(
RtpSession *session);
 
  539 ORTP_PUBLIC 
void rtp_session_send_rtcp_APP(
RtpSession *session, uint8_t subtype, 
const char *name, 
const uint8_t *data, 
int datalen);
 
  551 ORTP_PUBLIC 
void rtp_session_reset_stats(
RtpSession *session);
 
  561 ORTP_PUBLIC uint32_t rtp_session_ts_to_time(
RtpSession *session,uint32_t timestamp);
 
  562 ORTP_PUBLIC uint32_t rtp_session_time_to_ts(
RtpSession *session, 
int millisecs);
 
  566 ORTP_PUBLIC 
void rtp_session_make_time_distorsion(
RtpSession *session, 
int milisec);
 
  570         const char *name, 
const char *email, 
const char *phone,
 
  571     const char *loc, 
const char *tool, 
const char *note);
 
  572 ORTP_PUBLIC 
void rtp_session_add_contributing_source(
RtpSession *session, uint32_t csrc,
 
  573     const char *cname, 
const char *name, 
const char *email, 
const char *phone,
 
  574     const char *loc, 
const char *tool, 
const char *note);
 
  576 #define rtp_session_remove_contributing_sources rtp_session_remove_contributing_source 
  577 ORTP_PUBLIC 
void rtp_session_remove_contributing_source(
RtpSession *session, uint32_t csrc);
 
  578 ORTP_PUBLIC 
mblk_t* rtp_session_create_rtcp_sdes_packet(
RtpSession *session, bool_t full);
 
  583 ORTP_PUBLIC 
int rtp_session_get_last_send_error_code(
RtpSession *session);
 
  584 ORTP_PUBLIC 
void rtp_session_clear_send_error_code(
RtpSession *session);
 
  585 ORTP_PUBLIC 
int rtp_session_get_last_recv_error_code(
RtpSession *session);
 
  586 ORTP_PUBLIC 
void rtp_session_clear_recv_error_code(
RtpSession *session);
 
  600 ORTP_PUBLIC 
void rtp_session_send_rtcp_xr_rcvr_rtt(
RtpSession *session);
 
  601 ORTP_PUBLIC 
void rtp_session_send_rtcp_xr_dlrr(
RtpSession *session);
 
  602 ORTP_PUBLIC 
void rtp_session_send_rtcp_xr_stat_summary(
RtpSession *session);
 
  603 ORTP_PUBLIC 
void rtp_session_send_rtcp_xr_voip_metrics(
RtpSession *session);
 
  606 ORTP_PUBLIC bool_t rtp_session_avpf_enabled(
RtpSession *session);
 
  607 ORTP_PUBLIC bool_t rtp_session_avpf_payload_type_feature_enabled(
RtpSession *session, 
unsigned char feature);
 
  608 ORTP_PUBLIC bool_t rtp_session_avpf_feature_enabled(
RtpSession *session, 
unsigned char feature);
 
  609 ORTP_PUBLIC 
void rtp_session_enable_avpf_feature(
RtpSession *session, 
unsigned char feature, bool_t enable);
 
  610 ORTP_PUBLIC uint16_t rtp_session_get_avpf_rr_interval(
RtpSession *session);
 
  611 ORTP_PUBLIC bool_t rtp_session_rtcp_psfb_scheduled(
RtpSession *session, rtcp_psfb_type_t type);
 
  612 ORTP_PUBLIC bool_t rtp_session_rtcp_rtpfb_scheduled(
RtpSession *session, rtcp_rtpfb_type_t type);
 
  613 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_pli(
RtpSession *session);
 
  614 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_fir(
RtpSession *session);
 
  615 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_sli(
RtpSession *session, uint16_t first, uint16_t number, uint8_t picture_id);
 
  616 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_rpsi(
RtpSession *session, uint8_t *bit_string, uint16_t bit_string_len);
 
  617 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_tmmbr(
RtpSession *session, uint64_t mxtbr);
 
  618 ORTP_PUBLIC 
void rtp_session_send_rtcp_fb_tmmbn(
RtpSession *session);
 
  622 ORTP_PUBLIC 
void rtp_session_init(
RtpSession *session, 
int mode);
 
  623 #define rtp_session_set_flag(session,flag) (session)->flags|=(flag) 
  624 #define rtp_session_unset_flag(session,flag) (session)->flags&=~(flag) 
  625 ORTP_PUBLIC 
void rtp_session_uninit(
RtpSession *session);
 
  628 ORTP_PUBLIC 
void rtp_session_set_reuseaddr(
RtpSession *session, bool_t yes);
 
  660 ORTP_PUBLIC 
void meta_rtp_transport_destroy(
RtpTransport *tp);
 
ORTP_PUBLIC int rtp_session_set_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:750
ORTP_PUBLIC RtpProfile * rtp_session_get_send_profile(RtpSession *session)
Definition: rtpsession.c:483
ORTP_PUBLIC mblk_t * rtp_session_create_packet_with_data(RtpSession *session, uint8_t *payload, int payload_size, void(*freefn)(void *))
Definition: rtpsession.c:831
Definition: rtpsession.h:324
Definition: rtpsession.h:230
Definition: rtpsession.h:221
ORTP_PUBLIC void rtp_session_rtcp_set_delay_value(RtpSession *session, const unsigned int value)
For test purpose only, simulates a constant RTT (Round Trip Time) value by setting the LSR field with...
Definition: rtpsession.c:1660
ORTP_PUBLIC void rtp_session_set_connected_mode(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1715
ORTP_PUBLIC int meta_rtp_transport_modifier_inject_packet_to(const RtpTransport *t, RtpTransportModifier *tpm, mblk_t *msg, int flags, const struct sockaddr *to, socklen_t tolen)
Definition: rtpsession.c:2075
ORTP_PUBLIC int rtp_session_get_multicast_ttl(RtpSession *session)
Definition: rtpsession_inet.c:510
ORTP_PUBLIC void rtp_session_rtcp_set_jitter_value(RtpSession *session, const unsigned int value)
For test purpose only, sets a constant interarrival_jitter value within all RTCP output packets...
Definition: rtpsession.c:1634
Definition: rtpsession.h:135
ORTP_PUBLIC mblk_t * rtp_session_create_packet_raw(const uint8_t *packet, int packet_size)
Definition: rtpsession.c:804
ORTP_PUBLIC uint32_t rtp_session_get_rcv_ext_seq_number(RtpSession *session)
Definition: rtpsession.c:623
int max_packets
Definition: rtpsession.h:64
ORTP_PUBLIC int rtp_session_get_dscp(const RtpSession *session)
Definition: rtpsession_inet.c:712
Definition of payload types. 
ORTP_PUBLIC int rtp_session_set_remote_addr_full(RtpSession *session, const char *rtp_addr, int rtp_port, const char *rtcp_addr, int rtcp_port)
Definition: rtpsession_inet.c:769
ORTP_PUBLIC uint32_t rtp_session_get_recv_ssrc(RtpSession *session)
Definition: rtpsession.c:663
Definition: rtpsession.h:348
ORTP_PUBLIC void rtp_session_flush_sockets(RtpSession *session)
Definition: rtpsession_inet.c:979
Definition: str_utils.h:49
Definition: rtpsession.h:260
ORTP_PUBLIC RtpProfile * rtp_session_get_recv_profile(RtpSession *session)
Definition: rtpsession.c:493
ORTP_PUBLIC uint16_t rtp_session_get_seq_number(RtpSession *session)
Definition: rtpsession.c:616
ORTP_PUBLIC void rtp_session_set_recv_buf_size(RtpSession *session, int bufsize)
Definition: rtpsession.c:505
ORTP_PUBLIC RtpSession * rtp_session_new(int mode)
Definition: rtpsession.c:318
ORTP_PUBLIC mblk_t * rtp_session_recvm_with_ts(RtpSession *session, uint32_t user_ts)
Definition: rtpsession.c:1083
ORTP_PUBLIC int rtp_session_set_multicast_loopback(RtpSession *session, int yesno)
Definition: rtpsession_inet.c:526
_OrtpNetworkSimulatorMode
Definition: rtpsession.h:124
Definition: rtpsession.h:284
ORTP_PUBLIC int rtp_session_set_local_addr(RtpSession *session, const char *addr, int rtp_port, int rtcp_port)
Definition: rtpsession_inet.c:339
ORTP_PUBLIC const jitter_stats_t * rtp_session_get_jitter_stats(const RtpSession *session)
Definition: rtpsession.c:1611
ORTP_PUBLIC int rtp_session_set_multicast_ttl(RtpSession *session, int ttl)
Definition: rtpsession_inet.c:459
Definition: rtpsession.h:87
int min_size
Definition: rtpsession.h:59
ORTP_PUBLIC void rtp_session_destroy(RtpSession *session)
Definition: rtpsession.c:1828
Definition: rtpsession.h:167
Definition: rtpsignaltable.h:27
ORTP_PUBLIC void rtp_session_set_blocking_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:380
Definition: str_utils.h:78
ORTP_PUBLIC float rtp_session_get_send_bandwidth(RtpSession *session)
Definition: rtpsession.c:1771
ORTP_PUBLIC int rtp_session_get_local_port(const RtpSession *session)
Definition: rtpsession_inet.c:728
ORTP_PUBLIC void rtp_session_get_last_recv_time(RtpSession *session, struct timeval *tv)
Definition: rtpsession.c:1919
float max_bandwidth
Definition: rtpsession.h:137
ORTP_PUBLIC int rtp_session_get_cum_loss(RtpSession *session)
Definition: rtpsession.c:630
ORTP_PUBLIC void rtp_session_set_rtp_socket_recv_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:521
struct _JBParameters JBParameters
int max_size
Definition: rtpsession.h:61
ORTP_PUBLIC int rtp_session_get_multicast_loopback(RtpSession *session)
Definition: rtpsession_inet.c:582
ORTP_PUBLIC int rtp_session_signal_connect(RtpSession *session, const char *signal_name, RtpCallback cb, void *user_data)
Definition: rtpsession.c:559
ORTP_PUBLIC uint32_t rtp_session_get_send_ssrc(RtpSession *session)
Definition: rtpsession.c:653
ORTP_PUBLIC int meta_rtp_transport_modifier_inject_packet(const RtpTransport *t, RtpTransportModifier *tpm, mblk_t *msg, int flags)
Definition: rtpsession.c:2053
Definition: rtpsession.h:127
ORTP_PUBLIC void rtp_session_set_time_jump_limit(RtpSession *session, int miliseconds)
Definition: rtpsession.c:1374
unsigned char avpf_features
Definition: rtpsession.h:404
Definition: rtpsession.h:147
ORTP_PUBLIC int rtp_session_recv_with_ts(RtpSession *session, uint8_t *buffer, int len, uint32_t ts, int *have_more)
Definition: rtpsession.c:1273
ORTP_PUBLIC void rtp_session_set_ssrc_changed_threshold(RtpSession *session, int numpackets)
Definition: rtpsession.c:1541
Definition: rtpsession.h:109
ORTP_PUBLIC mblk_t * rtp_session_pick_with_cseq(RtpSession *session, const uint16_t sequence_number)
Definition: rtpsession.c:1040
ORTP_PUBLIC void rtp_session_set_recv_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:459
float consecutive_loss_probability
Definition: rtpsession.h:141
ORTP_PUBLIC void rtp_session_reset(RtpSession *session)
Definition: rtpsession.c:1575
ORTP_PUBLIC float rtp_session_get_recv_bandwidth(RtpSession *session)
Definition: rtpsession.c:1763
ORTP_PUBLIC int rtp_session_set_pktinfo(RtpSession *session, int activate)
Definition: rtpsession_inet.c:399
ORTP_PUBLIC void rtp_session_set_seq_number(RtpSession *session, uint16_t seq)
Definition: rtpsession.c:604
ORTP_PUBLIC int rtp_session_send_with_ts(RtpSession *session, const uint8_t *buffer, int len, uint32_t userts)
Definition: rtpsession.c:1003
OrtpNetworkSimulatorMode mode
Definition: rtpsession.h:144
int max_buffer_size
Definition: rtpsession.h:138
Definition: rtpsession.h:265
ORTP_PUBLIC int rtp_session_set_recv_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:720
ORTP_PUBLIC int rtp_session_add_aux_remote_addr_full(RtpSession *session, const char *rtp_addr, int rtp_port, const char *rtcp_addr, int rtcp_port)
Definition: rtpsession_inet.c:930
ORTP_PUBLIC RtpTransport * meta_rtp_transport_get_endpoint(const RtpTransport *transport)
Definition: rtpsession.c:2199
float jitter_strength
Definition: rtpsession.h:143
ORTP_PUBLIC mblk_t * rtp_session_create_packet_in_place(RtpSession *session, uint8_t *buffer, int size, void(*freefn)(void *))
Definition: rtpsession.c:863
ORTP_PUBLIC void rtp_session_set_send_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:441
Definition: rtpsession.h:58
ORTP_PUBLIC 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)
Definition: rtcp.c:128
int nom_size
Definition: rtpsession.h:60
Definition: rtpsession.h:128
ORTP_PUBLIC void rtp_session_set_data(RtpSession *session, void *data)
Definition: rtpsession.c:1675
Definition: str_utils.h:152
ORTP_PUBLIC void rtp_session_set_symmetric_rtp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1697
void(* t_destroy)(struct _RtpTransport *transport)
Definition: rtpsession.h:121
Definition: scheduler.h:28
ORTP_PUBLIC void rtp_session_set_rtp_socket_send_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:513
ORTP_PUBLIC void rtp_session_set_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:399
ORTP_PUBLIC void rtp_session_enable_rtcp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:414
ORTP_PUBLIC RtpProfile * rtp_session_get_profile(RtpSession *session)
Definition: rtpsession.c:472
ORTP_PUBLIC const rtp_stats_t * rtp_session_get_stats(const RtpSession *session)
Definition: rtpsession.c:1604
ORTP_PUBLIC uint32_t rtp_session_get_current_recv_ts(RtpSession *session)
Definition: rtpsession.c:1347
ORTP_PUBLIC int rtp_session_set_send_payload_type(RtpSession *session, int paytype)
Definition: rtpsession.c:693
Sending and receiving multiple streams together with only one thread. 
ORTP_PUBLIC void meta_rtp_transport_set_endpoint(RtpTransport *transport, RtpTransport *endpoint)
Definition: rtpsession.c:2203
ORTP_PUBLIC void rtp_session_release_sockets(RtpSession *session)
Definition: rtpsession.c:1385
ORTP_PUBLIC void rtp_session_rtcp_set_lost_packet_value(RtpSession *session, const int64_t value)
For test purpose only, sets a constant lost packet value within all RTCP output packets. . 
Definition: rtpsession.c:1622
float jitter_burst_density
Definition: rtpsession.h:142
ORTP_PUBLIC int rtp_session_signal_disconnect_by_callback(RtpSession *session, const char *signal_name, RtpCallback cb)
Definition: rtpsession.c:583
int enabled
Definition: rtpsession.h:136
ORTP_PUBLIC void rtp_session_set_ssrc(RtpSession *session, uint32_t ssrc)
Definition: rtpsession.c:642
ORTP_PUBLIC int rtp_session_get_recv_payload_type(const RtpSession *session)
Definition: rtpsession.c:737
ORTP_PUBLIC float rtp_session_get_round_trip_propagation(RtpSession *session)
Definition: rtpsession.c:1818
Using and creating standart and custom RTP profiles. 
ORTP_PUBLIC int rtp_session_get_send_payload_type(const RtpSession *session)
Definition: rtpsession.c:704
Definition: rtpprofile.h:41
ORTP_PUBLIC int rtp_session_set_dscp(RtpSession *session, int dscp)
Definition: rtpsession_inet.c:597
Definition: rtpsession.h:67
Definition: rtpsession.h:126
float loss_rate
Definition: rtpsession.h:139
Definition: rtpsession.h:95
ORTP_PUBLIC mblk_t * rtp_session_create_packet(RtpSession *session, int header_size, const uint8_t *payload, int payload_size)
Definition: rtpsession.c:782
Definition: rtpsession.h:255
void(* t_destroy)(struct _RtpTransportModifier *transport)
Definition: rtpsession.h:106
ORTP_PUBLIC int rtp_session_bye(RtpSession *session, const char *reason)
Definition: rtcp.c:638
ORTP_PUBLIC void rtp_session_set_scheduling_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:345
ORTP_PUBLIC void rtp_session_set_jitter_compensation(RtpSession *session, int milisec)
Definition: jitterctl.c:164
ORTP_PUBLIC int rtp_session_set_remote_addr(RtpSession *session, const char *addr, int port)
Definition: rtpsession_inet.c:749
ORTP_PUBLIC int rtp_session_sendm_with_ts(RtpSession *session, mblk_t *mp, uint32_t userts)
Definition: rtpsession.c:983
uint32_t latency
Definition: rtpsession.h:140
ORTP_PUBLIC void * rtp_session_get_data(const RtpSession *session)
Definition: rtpsession.c:1683
ORTP_PUBLIC void rtp_session_register_event_queue(RtpSession *session, OrtpEvQueue *q)
Definition: rtpsession.c:1424
ORTP_PUBLIC void rtp_session_resync(RtpSession *session)
Definition: rtpsession.c:1551
ORTP_PUBLIC uint32_t rtp_session_get_current_send_ts(RtpSession *session)
Definition: rtpsession.c:1321
ORTP_PUBLIC void rtp_session_set_rtcp_report_interval(RtpSession *session, int value_ms)
Definition: rtpsession.c:422
struct _OrtpNetworkSimulatorParams OrtpNetworkSimulatorParams