OSDN Git Service

rtsp: Respect max_delay for the reordering queue when using custom IO
authorMartin Storsjö <martin@martin.st>
Mon, 7 Jan 2013 19:26:59 +0000 (21:26 +0200)
committerMartin Storsjö <martin@martin.st>
Tue, 8 Jan 2013 09:22:43 +0000 (11:22 +0200)
Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtsp.c

index b3e5444..ba9b756 100644 (file)
@@ -1912,7 +1912,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);