UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
am_participant Struct Reference
Collaboration diagram for am_participant:
Collaboration graph

Public Member Functions

 am_participant (am_participant &&other)
 
 am_participant (struct socket_udp_local *l, struct sockaddr_storage *ss, string const &audio_codec)
 
 ~am_participant ()
 
am_participant & operator= (am_participant &&other)
 

Public Attributes

chrono::steady_clock::time_point last_seen
 
struct audio_codec_state * m_audio_coder
 
struct audio_buffer * m_buffer
 
struct rtp * m_network_device
 
struct tx * m_tx_session
 

Detailed Description

Definition at line 117 of file mixer.cpp.

Constructor & Destructor Documentation

◆ am_participant() [1/2]

am_participant::am_participant ( struct socket_udp_local * l,
struct sockaddr_storage * ss,
string const & audio_codec )
inline

Definition at line 118 of file mixer.cpp.

118 {
119 assert(l != nullptr && ss != nullptr);
120 m_buffer = audio_buffer_init(SAMPLE_RATE, BPS, CHANNELS, get_commandline_param("low-latency-audio") ? 50 : 5);
121 assert(m_buffer != NULL);
122 struct sockaddr *sa = (struct sockaddr *) ss;
123 assert(ss->ss_family == AF_INET || ss->ss_family == AF_INET6);
124 socklen_t len = ss->ss_family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6);
125
126 m_network_device = rtp_init_with_udp_socket(l, sa, len, mixer_dummy_rtp_callback);
127 assert(m_network_device != NULL);
128 m_tx_session = tx_init(NULL, 1500, TX_MEDIA_AUDIO, NULL, NULL, RATE_UNLIMITED);
129 assert(m_tx_session != NULL);
130
131 m_audio_coder = audio_codec_init_cfg(audio_codec.c_str(), AUDIO_CODER);
132 if (!m_audio_coder) {
133 LOG(LOG_LEVEL_ERROR) << "Audio coder init failed!\n";
134 throw 1;
135 }
136 }
int void size_t * len
struct audio_buffer * audio_buffer_init(int sample_rate, int bps, int ch_count, int suggested_latency_ms)
struct audio_codec_state * audio_codec_init_cfg(const char *audio_codec_cfg, audio_codec_direction_t direction)
Definition codec.cpp:165
#define LOG_LEVEL_ERROR
general errors
Definition debug.h:59
#define LOG(level)
Definition debug.h:313
const char * get_commandline_param(const char *key)
Definition host.cpp:894
#define CHANNELS
Definition mixer.cpp:65
#define SAMPLE_RATE
Definition mixer.cpp:63
#define BPS
Definition mixer.cpp:64
rtp_t rtp_init_with_udp_socket(struct socket_udp_local *l, struct sockaddr *sa, socklen_t len, rtp_callback callback)
Definition rtp.c:1175
struct rtp * m_network_device
Definition mixer.cpp:168
struct audio_buffer * m_buffer
Definition mixer.cpp:167
struct tx * m_tx_session
Definition mixer.cpp:169
struct audio_codec_state * m_audio_coder
Definition mixer.cpp:166
struct tx * tx_init(struct module *parent, unsigned mtu, enum tx_media_type media_type, const char *fec, const char *encryption, long long int bitrate)
Definition transmit.cpp:201

References audio_buffer_init(), audio_codec_init_cfg(), BPS, CHANNELS, get_commandline_param(), len, LOG, LOG_LEVEL_ERROR, m_audio_coder, m_buffer, m_network_device, m_tx_session, rtp_init_with_udp_socket(), SAMPLE_RATE, and tx_init().

Here is the call graph for this function:

◆ ~am_participant()

am_participant::~am_participant ( )
inline

Definition at line 137 of file mixer.cpp.

137 {
138 if (m_tx_session) {
140 }
141 if (m_network_device) {
143 }
144 if (m_buffer) {
146 }
147 if (m_audio_coder) {
149 }
150 }
void audio_buffer_destroy(struct audio_buffer *buf)
void audio_codec_done(struct audio_codec_state *s)
Definition codec.cpp:372
void module_done(struct module *module_data)
Definition module.c:93
#define CAST_MODULE(x)
Definition module.h:197
void rtp_done(struct rtp *session)
Definition rtp.c:3676

References audio_buffer_destroy(), audio_codec_done(), CAST_MODULE, m_audio_coder, m_buffer, m_network_device, m_tx_session, module_done(), and rtp_done().

Here is the call graph for this function:

◆ am_participant() [2/2]

am_participant::am_participant ( am_participant && other)
inline

Definition at line 163 of file mixer.cpp.

163 {
164 *this = std::move(other);
165 }

Member Function Documentation

◆ operator=()

am_participant & am_participant::operator= ( am_participant && other)
inline

Definition at line 151 of file mixer.cpp.

151 {
152 m_audio_coder = std::move(other.m_audio_coder);
153 m_buffer = std::move(other.m_buffer);
154 m_network_device = std::move(other.m_network_device);
155 m_tx_session = std::move(other.m_tx_session);
156 last_seen = std::move(other.last_seen);
157 other.m_audio_coder = nullptr;
158 other.m_buffer = nullptr;
159 other.m_tx_session = nullptr;
160 other.m_network_device = nullptr;
161 return *this;
162 }
chrono::steady_clock::time_point last_seen
Definition mixer.cpp:170

References last_seen, m_audio_coder, m_buffer, m_network_device, and m_tx_session.

Member Data Documentation

◆ last_seen

chrono::steady_clock::time_point am_participant::last_seen

Definition at line 170 of file mixer.cpp.

Referenced by operator=().

◆ m_audio_coder

struct audio_codec_state* am_participant::m_audio_coder

Definition at line 166 of file mixer.cpp.

Referenced by am_participant(), ~am_participant(), and operator=().

◆ m_buffer

struct audio_buffer* am_participant::m_buffer

Definition at line 167 of file mixer.cpp.

Referenced by am_participant(), ~am_participant(), and operator=().

◆ m_network_device

struct rtp* am_participant::m_network_device

Definition at line 168 of file mixer.cpp.

Referenced by am_participant(), ~am_participant(), and operator=().

◆ m_tx_session

struct tx* am_participant::m_tx_session

Definition at line 169 of file mixer.cpp.

Referenced by am_participant(), ~am_participant(), and operator=().


The documentation for this struct was generated from the following file: