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:
Aaro Altonen 2020-03-11 07:41:40 +02:00
parent 86cf34c6e7
commit 1c7c0ab0aa
2 changed files with 4 additions and 4 deletions

View File

@ -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__

View File

@ -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__