[vlc-devel] [PATCH] input: skip extra buffering (size based) for low-delay

Francois Cartegnie fcvlcdev at free.fr
Wed Oct 9 21:12:47 CEST 2019


just like with stream paced content
---
 src/input/es_out.c         | 4 +++-
 src/input/input.c          | 2 ++
 src/input/input_internal.h | 3 +++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/input/es_out.c b/src/input/es_out.c
index f29615b3dd..c5ba09dca3 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -3033,10 +3033,12 @@ static int EsOutVaControlLocked( es_out_t *out, int i_query, va_list args )
 
         /* TODO do not use vlc_tick_now() but proper stream acquisition date */
         bool b_late;
+        bool b_extra_buffering_allowed = !input_priv(p_sys->p_input)->b_low_delay &&
+                                         EsOutIsExtraBufferingAllowed( out );
         input_clock_Update( p_pgrm->p_input_clock, VLC_OBJECT(p_sys->p_input),
                             &b_late,
                             input_priv(p_sys->p_input)->b_can_pace_control || p_sys->b_buffering,
-                            EsOutIsExtraBufferingAllowed( out ),
+                            b_extra_buffering_allowed,
                             i_pcr, vlc_tick_now() );
 
         if( !p_sys->p_pgrm )
diff --git a/src/input/input.c b/src/input/input.c
index 97d299a7bd..aefd6ee5a0 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -390,6 +390,8 @@ static input_thread_t *Create( vlc_object_t *p_parent,
     /* Create Object Variables for private use only */
     input_ConfigVarInit( p_input );
 
+    priv->b_low_delay = var_InheritBool( p_input, "low-delay" );
+
     /* Remove 'Now playing' info as it is probably outdated */
     input_item_SetNowPlaying( p_item, NULL );
     input_item_SetESNowPlaying( p_item, NULL );
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index 3dc2aed90e..203131e7be 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -474,6 +474,9 @@ typedef struct input_thread_private_t
     vlc_tick_t  i_start;    /* :start-time,0 by default */
     vlc_tick_t  i_stop;     /* :stop-time, 0 if none */
 
+    /* Delays */
+    bool        b_low_delay;
+
     /* Output */
     bool            b_out_pace_control; /* XXX Move it ot es_sout ? */
     sout_instance_t *p_sout;            /* Idem ? */
-- 
2.21.0



More information about the vlc-devel mailing list