Skip to content

Commit c299654

Browse files
committed
Fixed receiver address changing
1 parent 816fe75 commit c299654

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/video_rxtx/rtp.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ void rtp_video_rxtx::process_message(struct msg_sender *msg)
9393
fprintf(stderr, "Changing rtcp receiver to: %s failed!\n",
9494
msg->receiver);
9595
}
96+
m_requested_receiver = msg->receiver;
9697
break;
9798
case SENDER_MSG_CHANGE_PORT:
9899
change_tx_port(msg->port);
@@ -139,8 +140,8 @@ rtp_video_rxtx::rtp_video_rxtx(map<string, param_u> const &params) :
139140
m_recv_port_number = 0;
140141
}
141142

142-
if ((m_network_devices = initialize_network(m_requested_receiver, m_recv_port_number, m_send_port_number,
143-
m_participants, m_ipv6, m_requested_mcast_if))
143+
if ((m_network_devices = initialize_network(m_requested_receiver.c_str(), m_recv_port_number, m_send_port_number,
144+
m_participants, m_ipv6, m_requested_mcast_if.c_str()))
144145
== NULL) {
145146
throw string("Unable to open network");
146147
} else {
@@ -196,9 +197,9 @@ void rtp_video_rxtx::change_tx_port(int tx_port)
196197

197198
destroy_rtp_devices(m_network_devices);
198199
m_send_port_number = tx_port;
199-
m_network_devices = initialize_network(m_requested_receiver, m_recv_port_number,
200+
m_network_devices = initialize_network(m_requested_receiver.c_str(), m_recv_port_number,
200201
m_send_port_number, m_participants, m_ipv6,
201-
m_requested_mcast_if);
202+
m_requested_mcast_if.c_str());
202203
if (!m_network_devices) {
203204
throw string("Changing RX port failed!\n");
204205
}

src/video_rxtx/rtp.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include "video_rxtx.h"
4242

4343
#include <mutex>
44+
#include <string>
4445

4546
#ifdef HAVE_MACOSX
4647
#define INITIAL_VIDEO_RECV_BUFFER_SIZE 5944320
@@ -71,11 +72,11 @@ class rtp_video_rxtx : public video_rxtx {
7172
std::mutex m_network_devices_lock;
7273
struct tx *m_tx;
7374
struct pdb *m_participants;
74-
const char *m_requested_receiver;
75+
std::string m_requested_receiver;
7576
int m_recv_port_number;
7677
int m_send_port_number;
7778
bool m_ipv6;
78-
const char *m_requested_mcast_if;
79+
std::string m_requested_mcast_if;
7980
fec *m_fec_state;
8081
private:
8182
void process_message(struct msg_sender *);

src/video_rxtx/ultragrid_rtp.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,10 @@ void ultragrid_rtp_video_rxtx::receiver_process_messages()
178178
assert(m_rxtx_mode == MODE_RECEIVER); // receiver only
179179
destroy_rtp_devices(m_network_devices);
180180
m_recv_port_number = msg->new_rx_port;
181-
m_network_devices = initialize_network(m_requested_receiver, m_recv_port_number,
181+
m_network_devices = initialize_network(m_requested_receiver.c_str(),
182+
m_recv_port_number,
182183
m_send_port_number, m_participants, m_ipv6,
183-
m_requested_mcast_if);
184+
m_requested_mcast_if.c_str());
184185
if (!m_network_devices) {
185186
throw runtime_error("Changing RX port failed!");
186187
}

0 commit comments

Comments
 (0)