From 2e8dcde1fe91ec6f0a139008f4cea49f0014b2bf Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Thu, 4 Oct 2012 17:35:20 +0200
Subject: [PATCH] ffplay: autodetect realtime streams and enable infbuf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 ffplay.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/ffplay.c b/ffplay.c
index 9e263992151..d94555a5fbe 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;
-- 
GitLab