vlc | branch: master | Thomas Guillem <[email protected]> | Thu Sep 6 15:53:33 2018 +0200| [f58e09e7c85c78f058967d3812d4ec7c76bcc25b] | committer: Thomas Guillem
input: remove "audio-delay" and "spu-delay" var dependencies > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f58e09e7c85c78f058967d3812d4ec7c76bcc25b --- src/input/input.c | 16 +++++++++++----- src/input/input_internal.h | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/input/input.c b/src/input/input.c index b33c74370e..f2945a635e 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -437,6 +437,10 @@ static input_thread_t *Create( vlc_object_t *p_parent, /* Create Object Variables for private use only */ input_ConfigVarInit( p_input ); + priv->i_audio_delay = + VLC_TICK_FROM_MS( var_GetInteger( p_input, "audio-desync" ) ); + priv->i_spu_delay = 0; + /* */ if( !priv->b_preparsing ) { @@ -1217,9 +1221,7 @@ static void UpdatePtsDelay( input_thread_t *p_input ) i_pts_delay = 0; /* Take care of audio/spu delay */ - const vlc_tick_t i_audio_delay = var_GetInteger( p_input, "audio-delay" ); - const vlc_tick_t i_spu_delay = var_GetInteger( p_input, "spu-delay" ); - const vlc_tick_t i_extra_delay = __MIN( i_audio_delay, i_spu_delay ); + const vlc_tick_t i_extra_delay = __MIN( p_sys->i_audio_delay, p_sys->i_spu_delay ); if( i_extra_delay < 0 ) i_pts_delay -= i_extra_delay; @@ -1227,8 +1229,10 @@ static void UpdatePtsDelay( input_thread_t *p_input ) const int i_cr_average = var_GetInteger( p_input, "cr-average" ) * i_pts_delay / DEFAULT_PTS_DELAY; /* */ - es_out_SetDelay( input_priv(p_input)->p_es_out_display, AUDIO_ES, i_audio_delay ); - es_out_SetDelay( input_priv(p_input)->p_es_out_display, SPU_ES, i_spu_delay ); + es_out_SetDelay( input_priv(p_input)->p_es_out_display, AUDIO_ES, + p_sys->i_audio_delay ); + es_out_SetDelay( input_priv(p_input)->p_es_out_display, SPU_ES, + p_sys->i_spu_delay ); es_out_SetJitter( input_priv(p_input)->p_es_out, i_pts_delay, 0, i_cr_average ); } @@ -2078,11 +2082,13 @@ static bool Control( input_thread_t *p_input, break; case INPUT_CONTROL_SET_AUDIO_DELAY: + priv->i_audio_delay = param.val.i_int; input_SendEventAudioDelay( p_input, param.val.i_int ); UpdatePtsDelay( p_input ); break; case INPUT_CONTROL_SET_SPU_DELAY: + priv->i_spu_delay = param.val.i_int; input_SendEventSubtitleDelay( p_input, param.val.i_int ); UpdatePtsDelay( p_input ); break; diff --git a/src/input/input_internal.h b/src/input/input_internal.h index e2b65cd3a3..50e6cbf8fb 100644 --- a/src/input/input_internal.h +++ b/src/input/input_internal.h @@ -126,6 +126,10 @@ typedef struct input_thread_private_t vlc_tick_t i_stop; /* :stop-time, 0 if none */ vlc_tick_t i_time; /* Current time */ + /* Delays */ + vlc_tick_t i_audio_delay; + vlc_tick_t i_spu_delay; + /* Output */ bool b_out_pace_control; /* XXX Move it ot es_sout ? */ sout_instance_t *p_sout; /* Idem ? */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
