Skip to content

Commit d703c4e

Browse files
committed
vrxtx/rtp: rm priv members from public API
1 parent c5837dd commit d703c4e

4 files changed

Lines changed: 58 additions & 52 deletions

File tree

src/video_rxtx/h264_sdp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ h264_sdp_video_rxtx::h264_sdp_video_rxtx(const struct vrxtx_params *params,
8484
throw ret == 1 ? 0 : 1;
8585
}
8686
m_rtp_common = rtp_rxtx_common_init(params, common);
87-
m_saved_addr = m_rtp_common->requested_receiver;
87+
m_saved_addr = common->receiver;
8888
}
8989

9090
h264_sdp_video_rxtx::~h264_sdp_video_rxtx() {

src/video_rxtx/rtp.cpp

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,19 @@
6868

6969
using std::ostringstream;
7070
using std::string;
71+
using ultragrid::pthread_mutex_guard;
7172

7273
struct rtp_rxtx_common_priv_state {
7374
uint32_t magic;
7475

76+
// stored for reconfiguration
77+
int force_ip_version;
78+
char *mcast_if;
79+
int ttl;
80+
char *requested_receiver;
81+
int rx_port;
82+
int tx_port;
83+
7584
struct rtp_rxtx_common info;
7685
/// This is child of vrxtx sender module to process specific messages.
7786
/// The receiver module is used directly (vrxtx doesn't process any
@@ -94,17 +103,16 @@ rtp_process_sender_message(struct rtp_rxtx_common *s, struct msg_sender *msg)
94103
assert(s->priv->info.rxtx_mode == MODE_SENDER); // sender only
95104
ultragrid::pthread_mutex_guard lock(s->network_devices_lock);
96105
auto *old_device = s->network_device;
97-
char *old_receiver = s->requested_receiver;
98-
s->requested_receiver = msg->receiver;
99-
s->network_device = initialize_network(
100-
s->requested_receiver, s->rx_port,
101-
s->tx_port, s->participants,
102-
s->force_ip_version,
103-
s->mcast_if, s->ttl);
106+
char *old_receiver = s->priv->requested_receiver;
107+
s->priv->requested_receiver = strdup(msg->receiver);
108+
s->network_device = initialize_network(
109+
s->priv->requested_receiver, s->priv->rx_port,
110+
s->priv->tx_port, s->participants,
111+
s->priv->force_ip_version, s->priv->mcast_if, s->priv->ttl);
104112
if (s->network_device == nullptr) {
105113
s->network_device = old_device;
106-
free(s->requested_receiver);
107-
s->requested_receiver = old_receiver;
114+
free(s->priv->requested_receiver);
115+
s->priv->requested_receiver = old_receiver;
108116
MSG(ERROR, "Failed receiver to %s.\n", msg->receiver);
109117
return new_response(RESPONSE_INT_SERV_ERR,
110118
"Changing receiver failed!");
@@ -117,21 +125,21 @@ rtp_process_sender_message(struct rtp_rxtx_common *s, struct msg_sender *msg)
117125
assert(s->rxtx_mode == MODE_SENDER); // sender only
118126
ultragrid::pthread_mutex_guard lock(s->network_devices_lock);
119127
auto *old_device = s->network_device;
120-
auto old_port = s->tx_port;
128+
auto old_port = s->priv->tx_port;
121129

122-
s->tx_port = msg->tx_port;
130+
s->priv->tx_port = msg->tx_port;
123131
if (msg->rx_port != 0) {
124-
s->rx_port = msg->rx_port;
132+
s->priv->rx_port = msg->rx_port;
125133
}
126134
s->network_device = initialize_network(
127-
s->requested_receiver, s->rx_port,
128-
s->tx_port, s->participants,
129-
s->force_ip_version,
130-
s->mcast_if, s->ttl);
135+
s->priv->requested_receiver, s->priv->rx_port,
136+
s->priv->tx_port, s->participants,
137+
s->priv->force_ip_version,
138+
s->priv->mcast_if, s->priv->ttl);
131139

132140
if (s->network_device == nullptr) {
133141
s->network_device = old_device;
134-
s->tx_port = old_port;
142+
s->priv->tx_port = old_port;
135143
MSG(ERROR, "Failed to Change TX port to %d.\n",
136144
msg->tx_port);
137145
return new_response(RESPONSE_INT_SERV_ERR,
@@ -173,10 +181,10 @@ rtp_process_sender_message(struct rtp_rxtx_common *s, struct msg_sender *msg)
173181
const uint32_t old_ssrc = rtp_my_ssrc(s->network_device);
174182
auto *old_device = s->network_device;
175183
s->network_device = initialize_network(
176-
s->requested_receiver, s->rx_port,
177-
s->tx_port, s->participants,
178-
s->force_ip_version,
179-
s->mcast_if, s->ttl);
184+
s->priv->requested_receiver, s->priv->rx_port,
185+
s->priv->tx_port, s->participants,
186+
s->priv->force_ip_version,
187+
s->priv->mcast_if, s->priv->ttl);
180188
if (s->network_device == nullptr) {
181189
s->network_device = old_device;
182190
MSG(ERROR, "Unable to change SSRC!\n");
@@ -223,19 +231,19 @@ struct rtp_rxtx_common *rtp_rxtx_common_init(const struct vrxtx_params *params,
223231
s->priv = priv;
224232
s->priv->magic = MAGIC;
225233
pthread_mutex_init(&s->network_devices_lock, nullptr);
226-
s->force_ip_version = common->force_ip_version,
227-
s->mcast_if = strdup(common->mcast_if);
228-
s->ttl = common->ttl;
229-
s->requested_receiver = strdup(common->receiver),
230-
s->rx_port = params->rx_port,
231-
s->tx_port = params->tx_port,
232-
s->rxtx_mode = params->rxtx_mode;
234+
s->priv->force_ip_version = common->force_ip_version,
235+
s->priv->mcast_if = strdup(common->mcast_if);
236+
s->priv->ttl = common->ttl;
237+
s->priv->requested_receiver = strdup(common->receiver),
238+
s->priv->rx_port = params->rx_port,
239+
s->priv->tx_port = params->tx_port;
240+
s->rxtx_mode = params->rxtx_mode;
233241

234242
s->participants = pdb_init("video", &video_offset);
235243

236244
s->network_device = initialize_network(
237-
s->requested_receiver, s->rx_port,
238-
s->tx_port, s->participants, common->force_ip_version,
245+
s->priv->requested_receiver, s->priv->rx_port,
246+
s->priv->tx_port, s->participants, common->force_ip_version,
239247
common->mcast_if, common->ttl);
240248
if (s->network_device == nullptr) {
241249
rtp_rxtx_common_done(s);
@@ -281,8 +289,8 @@ rtp_rxtx_common_done(struct rtp_rxtx_common *s)
281289
}
282290

283291
delete s->fec_state;
284-
free(s->mcast_if);
285-
free(s->requested_receiver);
292+
free(s->priv->mcast_if);
293+
free(s->priv->requested_receiver);
286294
module_done(&priv->m_rtp_sender_mod);
287295

288296
pthread_mutex_destroy(&s->network_devices_lock);
@@ -372,3 +380,16 @@ destroy_rtp_device(struct rtp *network_device)
372380
{
373381
rtp_done(network_device);
374382
}
383+
384+
void rtp_rxtx_set_pbuf_delay(struct rtp_rxtx_common *s, double delay) {
385+
pthread_mutex_guard lock(s->network_devices_lock);
386+
pdb_iter_t it;
387+
/// @todo should be set only to relevant participant,
388+
/// not all
389+
struct pdb_e *cp = pdb_iter_init(s->participants, &it);
390+
while (cp != nullptr) {
391+
pbuf_set_playout_delay(cp->playout_buffer, delay);
392+
393+
cp = pdb_iter_next(&it);
394+
}
395+
}

src/video_rxtx/rtp.hpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,9 @@ void display_buf_increase_warning(int size);
5454

5555
struct rtp_rxtx_common {
5656
struct rtp *network_device;
57-
int force_ip_version;
58-
char *mcast_if;
59-
int ttl;
6057
pthread_mutex_t network_devices_lock;
6158
struct tx *tx;
6259
struct pdb *participants;
63-
char *requested_receiver;
64-
int rx_port;
65-
int tx_port;
6660
struct fec *fec_state;
6761
int rxtx_mode;
6862
bool used; ///< at least one frame was sent
@@ -74,6 +68,7 @@ struct rtp_rxtx_common *rtp_rxtx_common_init(const struct vrxtx_params *params,
7468
void rtp_rxtx_common_done(struct rtp_rxtx_common *state);
7569

7670
void rtp_process_sender_messages(struct rtp_rxtx_common *s);
71+
void rtp_rxtx_set_pbuf_delay(struct rtp_rxtx_common *s, double delay);
7772

7873

7974
#endif // VIDEO_RXTX_RTP_H_

src/video_rxtx/ultragrid_rtp.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -182,23 +182,13 @@ void ultragrid_rtp_video_rxtx::receiver_process_messages()
182182
{
183183
struct msg_receiver *msg;
184184
while ((msg = (struct msg_receiver *) check_message(m_receiver_mod))) {
185-
pthread_mutex_guard lock(m_rtp_common->network_devices_lock);
186185
struct response *r = nullptr;
187186

188187
switch (msg->type) {
189-
case RECEIVER_MSG_VIDEO_PROP_CHANGED: {
190-
pdb_iter_t it;
191-
/// @todo should be set only to relevant participant,
192-
/// not all
193-
struct pdb_e *cp = pdb_iter_init(m_rtp_common->participants, &it);
194-
while (cp) {
195-
pbuf_set_playout_delay(cp->playout_buffer,
196-
1.0 / msg->new_desc.fps);
197-
198-
cp = pdb_iter_next(&it);
199-
}
188+
case RECEIVER_MSG_VIDEO_PROP_CHANGED:
189+
rtp_rxtx_set_pbuf_delay(m_rtp_common,
190+
1.0 / msg->new_desc.fps);
200191
break;
201-
}
202192
default:
203193
assert(0 && "Wrong message passed to "
204194
"ultragrid_rtp_video_rxtx::receiver_"

0 commit comments

Comments
 (0)