[FFmpeg-cvslog] ffplay: autodetect realtime streams and enable infbuf

Michael Niedermayer git at videolan.org
Thu Oct 4 17:41:25 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Oct  4 17:35:20 2012 +0200| [2e8dcde1fe91ec6f0a139008f4cea49f0014b2bf] | committer: Michael Niedermayer

ffplay: autodetect realtime streams and enable infbuf

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2e8dcde1fe91ec6f0a139008f4cea49f0014b2bf
---

 ffplay.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/ffplay.c b/ffplay.c
index 9e26399..d94555a 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -2363,6 +2363,22 @@ static int decode_interrupt_cb(void *ctx)
     return is->abort_request;
 }
 
+static int is_realtime(AVFormatContext *s)
+{
+    if(   !strcmp(s->iformat->name, "rtp")
+       || !strcmp(s->iformat->name, "rtsp")
+       || !strcmp(s->iformat->name, "sdp")
+    )
+        return 1;
+
+    if(s->pb && (   !strncmp(s->filename, "rtp:", 4)
+                 || !strncmp(s->filename, "udp:", 4)
+                )
+    )
+        return 1;
+    return 0;
+}
+
 /* this thread gets the stream from the disk or the network */
 static int read_thread(void *arg)
 {
@@ -2485,6 +2501,9 @@ static int read_thread(void *arg)
         goto fail;
     }
 
+    if (infinite_buffer < 0 && is_realtime(ic))
+        infinite_buffer = 1;
+
     for (;;) {
         if (is->abort_request)
             break;



More information about the ffmpeg-cvslog mailing list