[vlc-devel] [PATCH] Revert "input: improved buffering accuracy and no rebuffering on ignored"

Rémi Denis-Courmont remi at remlab.net
Sun Nov 30 14:35:33 CET 2014


This seems to cause a lot of problems when seeking.
This reverts commit c3bd897e586d906d631a1cdc51232f76ff1ca1fe.

Conflicts:
	src/input/es_out.c

This presumably makes 16bc6fb199487fd052270511cceaa1652ad40d2f moot,
and possibly also 7880850671c3a30ee898546b309dc459d8218e6b too. Those
changes are not reverted so far though.
---
 src/input/es_out.c | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/src/input/es_out.c b/src/input/es_out.c
index 29fee99..df75cf5 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -2315,14 +2315,14 @@ static int EsOutControlLocked( es_out_t *out, int i_query, va_list args )
         if( !p_sys->p_pgrm )
             return VLC_SUCCESS;
 
-        if( p_sys->b_buffering )
-        {
-            /* Check buffering state on master clock update */
-            EsOutDecodersStopBuffering( out, false );
-        }
-        else if( p_pgrm == p_sys->p_pgrm )
+        if( p_pgrm == p_sys->p_pgrm )
         {
-            if( b_late && ( !p_sys->p_input->p->p_sout ||
+            if( p_sys->b_buffering )
+            {
+                /* Check buffering state on master clock update */
+                EsOutDecodersStopBuffering( out, false );
+            }
+            else if( b_late && ( !p_sys->p_input->p->p_sout ||
                                  !p_sys->p_input->p->b_out_pace_control ) )
             {
                 const mtime_t i_pts_delay_base = p_sys->i_pts_delay - p_sys->i_pts_jitter;
@@ -2336,23 +2336,19 @@ static int EsOutControlLocked( es_out_t *out, int i_query, va_list args )
                              "ES_OUT_SET_(GROUP_)PCR  is called too late (jitter of %d ms ignored)",
                              (int)(i_pts_delay - i_pts_delay_base) / 1000 );
                     i_pts_delay = p_sys->i_pts_delay;
-
-                    /* reset clock */
-                    for( int i = 0; i < p_sys->i_pgrm; i++ )
-                      input_clock_Reset( p_sys->pgrm[i]->p_clock );
                 }
                 else
                 {
                     msg_Err( p_sys->p_input,
                              "ES_OUT_SET_(GROUP_)PCR  is called too late (pts_delay increased to %d ms)",
                              (int)(i_pts_delay/1000) );
+                }
 
-                    /* Force a rebufferization when we are too late */
+                /* Force a rebufferization when we are too late */
 
-                    /* It is not really good, as we throw away already buffered data
-                     * TODO have a mean to correctly reenter bufferization */
-                    es_out_Control( out, ES_OUT_RESET_PCR );
-                }
+                /* It is not really good, as we throw away already buffered data
+                 * TODO have a mean to correctly reenter bufferization */
+                es_out_Control( out, ES_OUT_RESET_PCR );
 
                 es_out_SetJitter( out, i_pts_delay_base, i_pts_delay - i_pts_delay_base, p_sys->i_cr_average );
             }
-- 
1.9.1




More information about the vlc-devel mailing list