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;
|
struct timeval t_val;
|
||||||
|
|
||||||
FD_ZERO(&read_fds);
|
FD_ZERO(&read_fds);
|
||||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
|
||||||
|
|
||||||
t_val.tv_sec = 0;
|
t_val.tv_sec = 0;
|
||||||
t_val.tv_usec = 1500;
|
t_val.tv_usec = 1500;
|
||||||
|
|
||||||
while (receiver->active()) {
|
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) {
|
if (sret < 0) {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
|
||||||
|
|
@ -65,13 +65,13 @@ rtp_error_t __hevc_receiver(kvz_rtp::receiver *receiver)
|
||||||
struct timeval t_val;
|
struct timeval t_val;
|
||||||
|
|
||||||
FD_ZERO(&read_fds);
|
FD_ZERO(&read_fds);
|
||||||
FD_SET(socket.get_raw_socket(), &read_fds);
|
|
||||||
|
|
||||||
t_val.tv_sec = 0;
|
t_val.tv_sec = 0;
|
||||||
t_val.tv_usec = 1500;
|
t_val.tv_usec = 1500;
|
||||||
|
|
||||||
while (receiver->active()) {
|
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) {
|
if (sret < 0) {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue