[vlc-devel] [PATCH 2/2] input: input: update time offset on each demux iteration
Filip Roséen
filip at atch.se
Fri Jul 20 10:05:17 CEST 2018
fixes: #20833
---
src/input/input.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/input/input.c b/src/input/input.c
index 53606c809a..a19887e115 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -600,6 +600,9 @@ static void MainLoopDemux( input_thread_t *p_input, bool *pb_changed )
if( demux_TestAndClearFlags( p_demux, INPUT_UPDATE_TITLE_LIST ) )
UpdateTitleListfromDemux( p_input );
+ if( demux_Control( p_priv->master->p_demux, DEMUX_GET_TIME, &p_priv->i_time ) )
+ p_priv->i_time = 0;
+
if( p_priv->master->b_title_demux )
{
i_ret = UpdateTitleSeekpointFromDemux( p_input );
@@ -668,7 +671,6 @@ static void MainLoopStatistics( input_thread_t *p_input )
{
input_thread_private_t *priv = input_priv(p_input);
double f_position = 0.0;
- vlc_tick_t i_time = 0;
vlc_tick_t i_length = 0;
/* update input status variables */
@@ -676,18 +678,14 @@ static void MainLoopStatistics( input_thread_t *p_input )
DEMUX_GET_POSITION, &f_position ) )
f_position = 0.0;
- if( demux_Control( priv->master->p_demux, DEMUX_GET_TIME, &i_time ) )
- i_time = 0;
- input_priv(p_input)->i_time = i_time;
-
if( demux_Control( priv->master->p_demux, DEMUX_GET_LENGTH, &i_length ) )
i_length = 0;
- es_out_SetTimes( priv->p_es_out, f_position, i_time, i_length );
+ es_out_SetTimes( priv->p_es_out, f_position, priv->i_time, i_length );
/* update current bookmark */
vlc_mutex_lock( &priv->p_item->lock );
- priv->bookmark.i_time_offset = i_time;
+ priv->bookmark.i_time_offset = priv->i_time;
if( priv->stats != NULL )
input_stats_Compute( priv->stats, priv->p_item->p_stats );
--
2.18.0
More information about the vlc-devel
mailing list