diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 5f6d7382025d8093a35176f9c088e108a1d74ecf..9aae845b353218f80c784637eb6f944aafd70181 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1908,7 +1908,11 @@ redo: ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, rtsp_st->rtp_handle, NULL, len); break; case RTSP_LOWER_TRANSPORT_CUSTOM: - len = ffio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); + if (first_queue_st && rt->transport == RTSP_TRANSPORT_RTP && + wait_end && wait_end < av_gettime()) + len = AVERROR(EAGAIN); + else + len = ffio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); len = pick_stream(s, &rtsp_st, rt->recvbuf, len); if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, NULL, s->pb, len);