From 1c7c0ab0aa2dbebabb79e2ce54f9a23e1c4db894 Mon Sep 17 00:00:00 2001 From: Aaro Altonen Date: Wed, 11 Mar 2020 07:41:40 +0200 Subject: [PATCH] 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 --- src/formats/generic.cc | 4 ++-- src/formats/hevc_recv_normal.cc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/formats/generic.cc b/src/formats/generic.cc index 1c23538..d00d7a8 100644 --- a/src/formats/generic.cc +++ b/src/formats/generic.cc @@ -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__ diff --git a/src/formats/hevc_recv_normal.cc b/src/formats/hevc_recv_normal.cc index ede0f04..ec3940a 100644 --- a/src/formats/hevc_recv_normal.cc +++ b/src/formats/hevc_recv_normal.cc @@ -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__