Set select() parameter correctly on every iteration
The socket must be set to the read_fds on every iteration or else the select() will fail after the first try
This commit is contained in:
parent
86cf34c6e7
commit
1c7c0ab0aa
|
|
@ -61,13 +61,13 @@ rtp_error_t kvz_rtp::generic::frame_receiver(kvz_rtp::receiver *receiver)
|
|||
struct timeval t_val;
|
||||
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
||||
|
||||
t_val.tv_sec = 0;
|
||||
t_val.tv_usec = 1500;
|
||||
|
||||
while (receiver->active()) {
|
||||
int sret = ::select(1, &read_fds, nullptr, nullptr, &t_val);
|
||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
||||
int sret = ::select(socket.get_raw_socket() + 1, &read_fds, nullptr, nullptr, &t_val);
|
||||
|
||||
if (sret < 0) {
|
||||
#ifdef __linux__
|
||||
|
|
|
|||
|
|
@ -65,13 +65,13 @@ rtp_error_t __hevc_receiver(kvz_rtp::receiver *receiver)
|
|||
struct timeval t_val;
|
||||
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
||||
|
||||
t_val.tv_sec = 0;
|
||||
t_val.tv_usec = 1500;
|
||||
|
||||
while (receiver->active()) {
|
||||
int sret = ::select(1, &read_fds, nullptr, nullptr, &t_val);
|
||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
||||
int sret = ::select(socket.get_raw_socket() + 1, &read_fds, nullptr, nullptr, &t_val);
|
||||
|
||||
if (sret < 0) {
|
||||
#ifdef __linux__
|
||||
|
|
|
|||
Loading…
Reference in New Issue