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)
47 #define ORTP_AVPF_FEATURE_GENERIC_NACK (1 << 1)
73 int adapt_jitt_comp_ts;
81 uint64_t cum_jitter_buffer_size;
82 unsigned int cum_jitter_buffer_count;
115 int (*t_sendto)(
struct _RtpTransport *t,
mblk_t *msg ,
int flags,
const struct sockaddr *to, socklen_t tolen);
116 int (*t_recvfrom)(
struct _RtpTransport *t,
mblk_t *msg,
int flags,
struct sockaddr *from, socklen_t *fromlen);
117 void (*t_close)(
struct _RtpTransport *transport,
void *userData);
126 OrtpNetworkSimulatorInvalid=-1,
131 }OrtpNetworkSimulatorMode;
155 struct timeval last_check;
156 uint64_t last_jitter_event;
157 int consecutive_drops;
159 int drop_by_congestion;
163 ortp_thread_t thread;
164 bool_t in_jitter_event;
165 bool_t thread_started;
173 uint32_t T_max_fb_delay;
174 uint32_t T_rr_interval;
175 uint32_t T_rr_current_interval;
182 bool_t tmmbr_scheduled;
183 bool_t tmmbn_scheduled;
187 bool_t generic_nack_enabled;
188 bool_t tmmbr_enabled;
191 #define ORTP_RTCP_XR_UNAVAILABLE_PARAMETER 127
195 OrtpRtcpXrSilencePlc,
196 OrtpRtcpXrEnhancedPlc
197 } OrtpRtcpXrPlcStatus;
199 typedef OrtpRtcpXrPlcStatus (*OrtpRtcpXrPlcCallback)(
void *userdata);
200 typedef int (*OrtpRtcpXrSignalLevelCallback)(
void *userdata);
201 typedef int (*OrtpRtcpXrNoiseLevelCallback)(
void *userdata);
202 typedef float (*OrtpRtcpXrAverageQualityIndicatorCallback)(
void *userdata);
205 OrtpRtcpXrPlcCallback plc;
206 OrtpRtcpXrSignalLevelCallback signal_level;
207 OrtpRtcpXrNoiseLevelCallback noise_level;
208 OrtpRtcpXrAverageQualityIndicatorCallback average_qi;
209 OrtpRtcpXrAverageQualityIndicatorCallback average_lq_qi;
214 OrtpRtcpXrRcvrRttNone,
215 OrtpRtcpXrRcvrRttAll,
216 OrtpRtcpXrRcvrRttSender
217 } OrtpRtcpXrRcvrRttMode;
220 OrtpRtcpXrStatSummaryLoss = (1 << 7),
221 OrtpRtcpXrStatSummaryDup = (1 << 6),
222 OrtpRtcpXrStatSummaryJitt = (1 << 5),
223 OrtpRtcpXrStatSummaryTTL = (1 << 3),
224 OrtpRtcpXrStatSummaryHL = (1 << 4)
225 } OrtpRtcpXrStatSummaryFlag;
229 bool_t stat_summary_enabled;
230 bool_t voip_metrics_enabled;
231 OrtpRtcpXrRcvrRttMode rcvr_rtt_mode;
232 int rcvr_rtt_max_size;
233 OrtpRtcpXrStatSummaryFlag stat_summary_flags;
237 uint32_t last_rcvr_rtt_ts;
238 struct timeval last_rcvr_rtt_time;
239 uint16_t rcv_seq_at_last_stat_summary;
240 uint32_t rcv_since_last_stat_summary;
241 uint32_t dup_since_last_stat_summary;
242 uint32_t min_jitter_since_last_stat_summary;
243 uint32_t max_jitter_since_last_stat_summary;
244 double olds_jitter_since_last_stat_summary;
245 double oldm_jitter_since_last_stat_summary;
246 double news_jitter_since_last_stat_summary;
247 double newm_jitter_since_last_stat_summary;
248 int64_t last_jitter_diff_since_last_stat_summary;
249 double olds_ttl_or_hl_since_last_stat_summary;
250 double oldm_ttl_or_hl_since_last_stat_summary;
251 double news_ttl_or_hl_since_last_stat_summary;
252 double newm_ttl_or_hl_since_last_stat_summary;
253 uint8_t min_ttl_or_hl_since_last_stat_summary;
254 uint8_t max_ttl_or_hl_since_last_stat_summary;
255 uint32_t first_rcv_seq;
256 uint32_t last_rcv_seq;
258 uint32_t discarded_count;
267 struct sockaddr_storage addr;
272 ortp_socket_t socket;
275 socklen_t rem_addrlen;
276 struct sockaddr_storage rem_addr;
277 socklen_t loc_addrlen;
278 struct sockaddr_storage loc_addr;
281 struct timeval send_bw_start;
282 struct timeval recv_bw_start;
283 unsigned int sent_bytes;
284 unsigned int recv_bytes;
287 OList *aux_destinations;
299 unsigned long QoSFlowID;
301 uint32_t snd_time_offset;
302 uint32_t snd_ts_offset;
303 uint32_t snd_rand_offset;
304 uint32_t snd_last_ts;
305 uint32_t rcv_time_offset;
306 uint32_t rcv_ts_offset;
307 uint32_t rcv_query_ts_offset;
308 uint32_t rcv_last_ts;
309 uint16_t rcv_last_seq;
311 uint32_t rcv_last_app_ts;
312 uint32_t rcv_last_ret_ts;
313 uint32_t hwrcv_extseq;
314 uint32_t hwrcv_seq_at_last_SR;
315 uint32_t hwrcv_since_last_SR;
316 uint32_t last_rcv_SR_ts;
317 struct timeval last_rcv_SR_time;
319 uint32_t last_rtcp_packet_count;
320 uint32_t sent_payload_bytes;
326 int ssrc_changed_thres;
338 bool_t rtcp_xr_dlrr_to_send;
339 uint8_t rtcp_fb_fir_seq_nr;
340 uint32_t last_rtcp_fb_pli_snt;
364 unsigned int inc_ssrc_candidate;
365 int inc_same_ssrc_count;
368 int target_upload_bandwidth;
376 struct _OList *signal_tables;
387 int multicast_loopback;
388 float duplication_ratio;
389 float duplication_left ;
392 struct timeval last_recv_time;
400 int64_t lost_packets_test_vector;
401 unsigned int interarrival_jitter_test_vector;
402 unsigned int delay_test_vector;
406 bool_t symmetric_rtp;
422 ORTP_PUBLIC
const char *ortp_network_simulator_mode_to_string(OrtpNetworkSimulatorMode mode);
423 ORTP_PUBLIC OrtpNetworkSimulatorMode ortp_network_simulator_mode_from_string(
const char *str);
445 ORTP_PUBLIC
void rtp_session_set_duplication_ratio(
RtpSession *session,
float ratio);
447 ORTP_PUBLIC
void rtp_session_enable_jitter_buffer(
RtpSession *session , bool_t enabled);
448 ORTP_PUBLIC bool_t rtp_session_jitter_buffer_enabled(
const RtpSession *session);
454 ORTP_PUBLIC
void rtp_session_enable_adaptive_jitter_compensation(
RtpSession *session, bool_t val);
455 ORTP_PUBLIC bool_t rtp_session_adaptive_jitter_compensation_enabled(
RtpSession *session);
458 ORTP_PUBLIC
int rtp_session_join_multicast_group(
RtpSession *session,
const char *ip);
461 ORTP_PUBLIC
int rtp_session_get_local_rtcp_port(
const RtpSession *session);
466 ORTP_PUBLIC
int rtp_session_set_remote_addr_and_port (
RtpSession * session,
const char * addr,
int rtp_port,
int rtcp_port);
469 ORTP_PUBLIC
void rtp_session_clear_aux_remote_addr(
RtpSession * session);
472 ORTP_PUBLIC
void rtp_session_set_sockets(
RtpSession *session,
int rtpfd,
int rtcpfd);
476 ORTP_PUBLIC ortp_socket_t rtp_session_get_rtp_socket(
const RtpSession *session);
477 ORTP_PUBLIC ortp_socket_t rtp_session_get_rtcp_socket(
const RtpSession *session);
510 ORTP_PUBLIC bool_t rtp_session_get_symmetric_rtp (
const RtpSession * session);
518 ORTP_PUBLIC
void rtp_session_set_target_upload_bandwidth(
RtpSession *session,
int target_bandwidth);
542 ORTP_PUBLIC
float rtp_session_compute_send_bandwidth(
RtpSession *session);
543 ORTP_PUBLIC
float rtp_session_compute_recv_bandwidth(
RtpSession *session);
546 ORTP_PUBLIC
float rtp_session_get_rtp_send_bandwidth(
RtpSession *session);
547 ORTP_PUBLIC
float rtp_session_get_rtp_recv_bandwidth(
RtpSession *session);
548 ORTP_PUBLIC
float rtp_session_get_rtcp_send_bandwidth(
RtpSession *session);
549 ORTP_PUBLIC
float rtp_session_get_rtcp_recv_bandwidth(
RtpSession *session);
551 ORTP_PUBLIC
void rtp_session_send_rtcp_APP(
RtpSession *session, uint8_t subtype,
const char *name,
const uint8_t *data,
int datalen);
563 ORTP_PUBLIC
void rtp_session_reset_stats(
RtpSession *session);
573 ORTP_PUBLIC uint32_t rtp_session_ts_to_time(
RtpSession *session,uint32_t timestamp);
574 ORTP_PUBLIC uint32_t rtp_session_time_to_ts(
RtpSession *session,
int millisecs);
578 ORTP_PUBLIC
void rtp_session_make_time_distorsion(
RtpSession *session,
int milisec);
582 const char *name,
const char *email,
const char *phone,
583 const char *loc,
const char *tool,
const char *note);
584 ORTP_PUBLIC
void rtp_session_add_contributing_source(
RtpSession *session, uint32_t csrc,
585 const char *cname,
const char *name,
const char *email,
const char *phone,
586 const char *loc,
const char *tool,
const char *note);
588 #define rtp_session_remove_contributing_sources rtp_session_remove_contributing_source
589 ORTP_PUBLIC
void rtp_session_remove_contributing_source(
RtpSession *session, uint32_t csrc);
590 ORTP_PUBLIC
mblk_t* rtp_session_create_rtcp_sdes_packet(
RtpSession *session, bool_t full);
595 ORTP_PUBLIC
int rtp_session_get_last_send_error_code(
RtpSession *session);
596 ORTP_PUBLIC
void rtp_session_clear_send_error_code(
RtpSession *session);
597 ORTP_PUBLIC
int rtp_session_get_last_recv_error_code(
RtpSession *session);
598 ORTP_PUBLIC
void rtp_session_clear_recv_error_code(
RtpSession *session);
612 ORTP_PUBLIC
void rtp_session_send_rtcp_xr_rcvr_rtt(
RtpSession *session);
613 ORTP_PUBLIC
void rtp_session_send_rtcp_xr_dlrr(
RtpSession *session);
614 ORTP_PUBLIC
void rtp_session_send_rtcp_xr_stat_summary(
RtpSession *session);
615 ORTP_PUBLIC
void rtp_session_send_rtcp_xr_voip_metrics(
RtpSession *session);
618 ORTP_PUBLIC bool_t rtp_session_avpf_enabled(
RtpSession *session);
619 ORTP_PUBLIC bool_t rtp_session_avpf_payload_type_feature_enabled(
RtpSession *session,
unsigned char feature);
620 ORTP_PUBLIC bool_t rtp_session_avpf_feature_enabled(
RtpSession *session,
unsigned char feature);
621 ORTP_PUBLIC
void rtp_session_enable_avpf_feature(
RtpSession *session,
unsigned char feature, bool_t enable);
622 ORTP_PUBLIC uint16_t rtp_session_get_avpf_rr_interval(
RtpSession *session);
623 ORTP_PUBLIC bool_t rtp_session_rtcp_psfb_scheduled(
RtpSession *session, rtcp_psfb_type_t type);
624 ORTP_PUBLIC bool_t rtp_session_rtcp_rtpfb_scheduled(
RtpSession *session, rtcp_rtpfb_type_t type);
625 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_generic_nack(
RtpSession *session, uint16_t pid, uint16_t blp);
626 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_pli(
RtpSession *session);
627 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_fir(
RtpSession *session);
628 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_sli(
RtpSession *session, uint16_t first, uint16_t number, uint8_t picture_id);
629 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_rpsi(
RtpSession *session, uint8_t *bit_string, uint16_t bit_string_len);
630 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_tmmbr(
RtpSession *session, uint64_t mxtbr);
631 ORTP_PUBLIC
void rtp_session_send_rtcp_fb_tmmbn(
RtpSession *session, uint32_t ssrc);
635 ORTP_PUBLIC
void rtp_session_init(
RtpSession *session,
int mode);
636 #define rtp_session_set_flag(session,flag) (session)->flags|=(flag)
637 #define rtp_session_unset_flag(session,flag) (session)->flags&=~(flag)
638 ORTP_PUBLIC
void rtp_session_uninit(
RtpSession *session);
641 ORTP_PUBLIC
void rtp_session_set_reuseaddr(
RtpSession *session, bool_t yes);
673 ORTP_PUBLIC
void meta_rtp_transport_destroy(
RtpTransport *tp);
ORTP_PUBLIC int rtp_session_set_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:765
ORTP_PUBLIC RtpProfile * rtp_session_get_send_profile(RtpSession *session)
Definition: rtpsession.c:484
Definition: rtpsession.h:186
Definition: rtpsession.h:330
Definition: rtpsession.h:236
Definition: rtpsession.h:227
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:1703
ORTP_PUBLIC void rtp_session_set_connected_mode(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1758
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:2119
ORTP_PUBLIC mblk_t * rtp_session_create_packet_in_place(RtpSession *session, uint8_t *buffer, size_t size, void(*freefn)(void *))
Definition: rtpsession.c:878
ORTP_PUBLIC int rtp_session_get_multicast_ttl(RtpSession *session)
Definition: rtpsession_inet.c:553
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:1677
Definition: rtpsession.h:136
ORTP_PUBLIC uint32_t rtp_session_get_rcv_ext_seq_number(RtpSession *session)
Definition: rtpsession.c:624
int max_packets
Definition: rtpsession.h:65
ORTP_PUBLIC int rtp_session_get_dscp(const RtpSession *session)
Definition: rtpsession_inet.c:755
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:812
ORTP_PUBLIC uint32_t rtp_session_get_recv_ssrc(RtpSession *session)
Definition: rtpsession.c:664
Definition: rtpsession.h:354
ORTP_PUBLIC void rtp_session_flush_sockets(RtpSession *session)
Definition: rtpsession_inet.c:1022
Definition: str_utils.h:49
Definition: rtpsession.h:266
ORTP_PUBLIC RtpProfile * rtp_session_get_recv_profile(RtpSession *session)
Definition: rtpsession.c:494
ORTP_PUBLIC uint16_t rtp_session_get_seq_number(RtpSession *session)
Definition: rtpsession.c:617
ORTP_PUBLIC void rtp_session_set_recv_buf_size(RtpSession *session, int bufsize)
Definition: rtpsession.c:506
ORTP_PUBLIC RtpSession * rtp_session_new(int mode)
Definition: rtpsession.c:319
ORTP_PUBLIC mblk_t * rtp_session_create_packet_with_data(RtpSession *session, uint8_t *payload, size_t payload_size, void(*freefn)(void *))
Definition: rtpsession.c:846
ORTP_PUBLIC mblk_t * rtp_session_recvm_with_ts(RtpSession *session, uint32_t user_ts)
Definition: rtpsession.c:1118
ORTP_PUBLIC int rtp_session_set_multicast_loopback(RtpSession *session, int yesno)
Definition: rtpsession_inet.c:569
_OrtpNetworkSimulatorMode
Definition: rtpsession.h:125
Definition: rtpsession.h:290
ORTP_PUBLIC int rtp_session_set_send_telephone_event_payload_type(RtpSession *session, int paytype)
Definition: rtpsession.c:718
ORTP_PUBLIC int rtp_session_set_local_addr(RtpSession *session, const char *addr, int rtp_port, int rtcp_port)
Definition: rtpsession_inet.c:353
ORTP_PUBLIC const jitter_stats_t * rtp_session_get_jitter_stats(const RtpSession *session)
Definition: rtpsession.c:1654
ORTP_PUBLIC int rtp_session_set_multicast_ttl(RtpSession *session, int ttl)
Definition: rtpsession_inet.c:502
Definition: rtpsession.h:88
int min_size
Definition: rtpsession.h:60
ORTP_PUBLIC void rtp_session_destroy(RtpSession *session)
Definition: rtpsession.c:1871
Definition: rtpsession.h:168
Definition: rtpsignaltable.h:27
ORTP_PUBLIC void rtp_session_set_blocking_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:381
Definition: str_utils.h:78
ORTP_PUBLIC float rtp_session_get_send_bandwidth(RtpSession *session)
Definition: rtpsession.c:1814
ORTP_PUBLIC int rtp_session_get_local_port(const RtpSession *session)
Definition: rtpsession_inet.c:771
ORTP_PUBLIC void rtp_session_get_last_recv_time(RtpSession *session, struct timeval *tv)
Definition: rtpsession.c:1962
float max_bandwidth
Definition: rtpsession.h:138
ORTP_PUBLIC int rtp_session_get_cum_loss(RtpSession *session)
Definition: rtpsession.c:631
ORTP_PUBLIC void rtp_session_set_rtp_socket_recv_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:522
struct _JBParameters JBParameters
int max_size
Definition: rtpsession.h:62
ORTP_PUBLIC int rtp_session_get_multicast_loopback(RtpSession *session)
Definition: rtpsession_inet.c:625
ORTP_PUBLIC int rtp_session_signal_connect(RtpSession *session, const char *signal_name, RtpCallback cb, void *user_data)
Definition: rtpsession.c:560
ORTP_PUBLIC uint32_t rtp_session_get_send_ssrc(RtpSession *session)
Definition: rtpsession.c:654
ORTP_PUBLIC int meta_rtp_transport_modifier_inject_packet(const RtpTransport *t, RtpTransportModifier *tpm, mblk_t *msg, int flags)
Definition: rtpsession.c:2097
Definition: rtpsession.h:128
ORTP_PUBLIC void rtp_session_set_time_jump_limit(RtpSession *session, int miliseconds)
Definition: rtpsession.c:1410
unsigned char avpf_features
Definition: rtpsession.h:411
Definition: rtpsession.h:148
ORTP_PUBLIC int rtp_session_recv_with_ts(RtpSession *session, uint8_t *buffer, int len, uint32_t ts, int *have_more)
Definition: rtpsession.c:1309
ORTP_PUBLIC void rtp_session_set_ssrc_changed_threshold(RtpSession *session, int numpackets)
Definition: rtpsession.c:1584
Definition: rtpsession.h:110
ORTP_PUBLIC mblk_t * rtp_session_pick_with_cseq(RtpSession *session, const uint16_t sequence_number)
Definition: rtpsession.c:1055
ORTP_PUBLIC void rtp_session_set_recv_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:460
float consecutive_loss_probability
Definition: rtpsession.h:142
ORTP_PUBLIC void rtp_session_reset(RtpSession *session)
Definition: rtpsession.c:1618
ORTP_PUBLIC float rtp_session_get_recv_bandwidth(RtpSession *session)
Definition: rtpsession.c:1806
ORTP_PUBLIC int rtp_session_set_pktinfo(RtpSession *session, int activate)
Definition: rtpsession_inet.c:442
ORTP_PUBLIC void rtp_session_set_seq_number(RtpSession *session, uint16_t seq)
Definition: rtpsession.c:605
ORTP_PUBLIC int rtp_session_send_with_ts(RtpSession *session, const uint8_t *buffer, int len, uint32_t userts)
Definition: rtpsession.c:1018
OrtpNetworkSimulatorMode mode
Definition: rtpsession.h:145
int max_buffer_size
Definition: rtpsession.h:139
ORTP_PUBLIC mblk_t * rtp_session_create_packet_raw(const uint8_t *packet, size_t packet_size)
Definition: rtpsession.c:819
Definition: rtpsession.h:271
ORTP_PUBLIC int rtp_session_set_recv_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:735
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:973
ORTP_PUBLIC RtpTransport * meta_rtp_transport_get_endpoint(const RtpTransport *transport)
Definition: rtpsession.c:2244
float jitter_strength
Definition: rtpsession.h:144
ORTP_PUBLIC void rtp_session_set_send_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:442
Definition: rtpsession.h:59
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:61
Definition: rtpsession.h:129
ORTP_PUBLIC void rtp_session_set_data(RtpSession *session, void *data)
Definition: rtpsession.c:1718
Definition: str_utils.h:152
ORTP_PUBLIC void rtp_session_set_symmetric_rtp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1740
ORTP_PUBLIC void rtp_session_refresh_sockets(RtpSession *session)
Definition: rtpsession_inet.c:415
void(* t_destroy)(struct _RtpTransport *transport)
Definition: rtpsession.h:122
Definition: scheduler.h:28
ORTP_PUBLIC void rtp_session_set_rtp_socket_send_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:514
ORTP_PUBLIC void rtp_session_set_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:400
ORTP_PUBLIC void rtp_session_enable_rtcp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:415
ORTP_PUBLIC RtpProfile * rtp_session_get_profile(RtpSession *session)
Definition: rtpsession.c:473
ORTP_PUBLIC const rtp_stats_t * rtp_session_get_stats(const RtpSession *session)
Definition: rtpsession.c:1647
ORTP_PUBLIC uint32_t rtp_session_get_current_recv_ts(RtpSession *session)
Definition: rtpsession.c:1383
ORTP_PUBLIC int rtp_session_set_send_payload_type(RtpSession *session, int paytype)
Definition: rtpsession.c:694
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:2248
ORTP_PUBLIC void rtp_session_release_sockets(RtpSession *session)
Definition: rtpsession.c:1451
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:1665
float jitter_burst_density
Definition: rtpsession.h:143
ORTP_PUBLIC int rtp_session_signal_disconnect_by_callback(RtpSession *session, const char *signal_name, RtpCallback cb)
Definition: rtpsession.c:584
int enabled
Definition: rtpsession.h:137
ORTP_PUBLIC void rtp_session_set_ssrc(RtpSession *session, uint32_t ssrc)
Definition: rtpsession.c:643
ORTP_PUBLIC int rtp_session_get_recv_payload_type(const RtpSession *session)
Definition: rtpsession.c:752
ORTP_PUBLIC float rtp_session_get_round_trip_propagation(RtpSession *session)
Definition: rtpsession.c:1861
Using and creating standart and custom RTP profiles.
ORTP_PUBLIC mblk_t * rtp_session_create_packet(RtpSession *session, size_t header_size, const uint8_t *payload, size_t payload_size)
Definition: rtpsession.c:797
ORTP_PUBLIC int rtp_session_get_send_payload_type(const RtpSession *session)
Definition: rtpsession.c:705
Definition: rtpprofile.h:41
ORTP_PUBLIC int rtp_session_set_dscp(RtpSession *session, int dscp)
Definition: rtpsession_inet.c:640
Definition: rtpsession.h:68
Definition: rtpsession.h:127
float loss_rate
Definition: rtpsession.h:140
Definition: rtpsession.h:96
Definition: rtpsession.h:261
void(* t_destroy)(struct _RtpTransportModifier *transport)
Definition: rtpsession.h:107
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:346
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:792
ORTP_PUBLIC int rtp_session_sendm_with_ts(RtpSession *session, mblk_t *mp, uint32_t userts)
Definition: rtpsession.c:998
uint32_t latency
Definition: rtpsession.h:141
ORTP_PUBLIC void * rtp_session_get_data(const RtpSession *session)
Definition: rtpsession.c:1726
ORTP_PUBLIC void rtp_session_register_event_queue(RtpSession *session, OrtpEvQueue *q)
Definition: rtpsession.c:1467
ORTP_PUBLIC void rtp_session_resync(RtpSession *session)
Definition: rtpsession.c:1594
ORTP_PUBLIC uint32_t rtp_session_get_current_send_ts(RtpSession *session)
Definition: rtpsession.c:1357
ORTP_PUBLIC void rtp_session_set_rtcp_report_interval(RtpSession *session, int value_ms)
Definition: rtpsession.c:423
struct _OrtpNetworkSimulatorParams OrtpNetworkSimulatorParams