]> git.sesse.net Git - vlc/blobdiff - src/input/es_out.c
Fixed invalid locking order when activating visualization.
[vlc] / src / input / es_out.c
index e5a9793cade921e5b53fc4b67aa7fbf91412d52f..02dc8b8f7a0bb40194ee635d0ea07476278299ff 100644 (file)
@@ -2288,7 +2288,8 @@ static int EsOutControlLocked( es_out_t *out, int i_query, va_list args )
                     /* Check buffering state on master clock update */
                     EsOutDecodersStopBuffering( out, false );
                 }
-                else if( b_late )
+                else if( b_late && ( !out->b_sout ||
+                                     !p_sys->p_input->p->b_out_pace_control ) )
                 {
                     mtime_t i_pts_delay = input_clock_GetJitter( p_pgrm->p_clock );
 
@@ -2525,8 +2526,13 @@ static int EsOutControlLocked( es_out_t *out, int i_query, va_list args )
 
             if( !p_sys->b_buffering )
             {
+                mtime_t i_delay;
+
                 /* Fix for buffering delay */
-                const mtime_t i_delay = EsOutGetBuffering( out );
+                if( !out->b_sout || !p_sys->p_input->p->b_out_pace_control )
+                    i_delay = EsOutGetBuffering( out );
+                else
+                    i_delay = 0;
 
                 i_time -= i_delay;
                 if( i_time < 0 )