diff --git a/src/media/audio/audio_rtp_session.cpp b/src/media/audio/audio_rtp_session.cpp index 8ba818ac9dbfb288131bee19b10576260d4c81cd..dd5b8bcc76f3b3b6175d87897b7b195ebd128d05 100644 --- a/src/media/audio/audio_rtp_session.cpp +++ b/src/media/audio/audio_rtp_session.cpp @@ -17,6 +17,9 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ + +#include "libav_deps.h" // MUST BE INCLUDED FIRST + #include "audio_rtp_session.h" #include "logger.h" @@ -340,7 +343,12 @@ AudioReceiveThread::readFunction(void* opaque, uint8_t* buf, int buf_size) { std::istream& is = static_cast<AudioReceiveThread*>(opaque)->stream_; is.read(reinterpret_cast<char*>(buf), buf_size); - return is.gcount(); + + auto count = is.gcount(); + if (count != 0) + return count; + else + return AVERROR_EOF; } // This callback is used by libav internally to break out of blocking calls diff --git a/src/media/socket_pair.cpp b/src/media/socket_pair.cpp index e710e47085d4e4a6aeb43196c3046b8b100fd738..08263164e79bb47d0dde2e355f5cae30acbf8cfc 100644 --- a/src/media/socket_pair.cpp +++ b/src/media/socket_pair.cpp @@ -429,7 +429,10 @@ SocketPair::readCallback(uint8_t* buf, int buf_size) RING_WARN("decrypt error %d", err); } - return len; + if (len != 0) + return len; + else + return AVERROR_EOF; } int diff --git a/src/media/video/video_receive_thread.cpp b/src/media/video/video_receive_thread.cpp index 7315589bbf4263d945caf5775ed6ec9464020b49..b6ce1cf908c1144c165371452d72b588bdeeb6e3 100644 --- a/src/media/video/video_receive_thread.cpp +++ b/src/media/video/video_receive_thread.cpp @@ -151,7 +151,12 @@ int VideoReceiveThread::readFunction(void *opaque, uint8_t *buf, int buf_size) { std::istream &is = static_cast<VideoReceiveThread*>(opaque)->stream_; is.read(reinterpret_cast<char*>(buf), buf_size); - return is.gcount(); + + auto count = is.gcount(); + if (count != 0) + return count; + else + return AVERROR_EOF; } void VideoReceiveThread::addIOContext(SocketPair& socketPair)