5#include "uvgrtp/export.hh"
6#include "uvgrtp/definitions.hh"
8#include <unordered_map>
15#include <sys/socket.h>
16#include <netinet/in.h>
35 class media_stream_internal;
119 rtp_error_t
push_frame(uint8_t* data,
size_t data_len,
int rtp_flags);
151 rtp_error_t
push_frame(uint8_t* data,
size_t data_len, uint32_t ts,
int rtp_flags);
186 rtp_error_t
push_frame(uint8_t* data,
size_t data_len, uint32_t ts, uint64_t ntp_ts,
int rtp_flags);
288#if UVGRTP_EXTENDED_API
316 rtp_error_t
push_frame(std::unique_ptr<uint8_t[]> data,
size_t data_len,
int rtp_flags);
347 rtp_error_t
push_frame(std::unique_ptr<uint8_t[]> data,
size_t data_len, uint32_t ts,
int rtp_flags);
382 rtp_error_t
push_frame(std::unique_ptr<uint8_t[]> data,
size_t data_len, uint32_t ts, uint64_t ntp_ts,
int rtp_flags);
389 media_stream(std::string cname, std::string remote_addr, std::string local_addr, uint16_t src_port, uint16_t dst_port,
390 rtp_format_t fmt, std::shared_ptr<uvgrtp::socketfactory> sfp,
int rce_flags, uint32_t ssrc = 0);
392 media_stream_internal* impl_;
396namespace uvg_rtp = uvgrtp;
RTCP instance handles all incoming and outgoing RTCP traffic, including report generation.
Provides ZRTP synchronization and can be used to create uvgrtp::media_stream objects.
rtp_error_t add_srtp_ctx(uint8_t *key, uint8_t *salt)
Add keying information for user-managed SRTP session.
rtp_error_t push_frame(uint8_t *data, size_t data_len, int rtp_flags)
Send data to remote participant with a custom timestamp.
rtp_error_t configure_ctx(int rcc_flag, ssize_t value)
Configure the media stream, see RTP_CTX_CONFIGURATION_FLAGS for more details.
uvgrtp::frame::rtp_frame * pull_frame(size_t timeout_ms)
Poll a frame for a specified time from the media stream object.
rtp_error_t push_frame(uint8_t *data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)
Send data to remote participant with custom RTP and NTP timestamps.
rtp_error_t install_receive_hook(void *arg, void(*hook)(void *, uvgrtp::frame::rtp_frame *))
Asynchronous way of getting frames.
uint32_t get_ssrc() const
Get SSRC identifier. You can use the SSRC value for example to find the report block belonging to thi...
rtp_error_t start_zrtp()
Start the ZRTP negotiation manually.
uvgrtp::frame::rtp_frame * pull_frame()
Poll a frame indefinitely from the media stream object.
uvgrtp::rtcp * get_rtcp()
Get pointer to the RTCP object of the media stream.
rtp_error_t push_frame(uint8_t *data, size_t data_len, uint32_t ts, int rtp_flags)
Send data to remote participant with a custom timestamp.
int get_configuration_value(int rcc_flag)
Get the values associated with configuration flags, see RTP_CTX_CONFIGURATION_FLAGS for more details.
rtp_error_t push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, int rtp_flags)
Send data to remote participant with a custom timestamp.
rtp_error_t push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, uint64_t ntp_ts, int rtp_flags)
Send data to remote participant with custom RTP and NTP timestamps.
rtp_error_t push_frame(std::unique_ptr< uint8_t[]> data, size_t data_len, uint32_t ts, int rtp_flags)
Send data to remote participant with a custom timestamp.