No functionnal changes.
* TODO have a mean to correctly reenter bufferization */
es_out_Control( out, ES_OUT_RESET_PCR );
- es_out_SetJitter( out, i_pts_delay, p_sys->i_cr_average );
+ es_out_SetJitter( out, i_pts_delay, 0, p_sys->i_cr_average );
}
}
return VLC_SUCCESS;
}
case ES_OUT_SET_JITTER:
{
- mtime_t i_pts_delay = (mtime_t)va_arg( args, mtime_t );
+ mtime_t i_pts_delay = (mtime_t)va_arg( args, mtime_t );
+ mtime_t i_pts_jitter = (mtime_t)va_arg( args, mtime_t );
int i_cr_average = (int)va_arg( args, int );
- if( i_pts_delay == p_sys->i_pts_delay &&
+ if( i_pts_delay + i_pts_jitter == p_sys->i_pts_delay &&
i_cr_average == p_sys->i_cr_average )
return VLC_SUCCESS;
- p_sys->i_pts_delay = i_pts_delay;
+ p_sys->i_pts_delay = i_pts_delay + i_pts_jitter;
p_sys->i_cr_average = i_cr_average;
for( int i = 0; i < p_sys->i_pgrm; i++ )
input_clock_SetJitter( p_sys->pgrm[i]->p_clock,
- i_pts_delay, i_cr_average );
+ i_pts_delay + i_pts_jitter, i_cr_average );
return VLC_SUCCESS;
}
ES_OUT_SET_TIMES, /* arg1=double f_position arg2=mtime_t i_time arg3=mtime_t i_length res=cannot fail */
/* Set jitter */
- ES_OUT_SET_JITTER, /* arg1=mtime_t i_pts_delay arg2=int i_cr_average res=cannot fail */
+ ES_OUT_SET_JITTER, /* arg1=mtime_t i_pts_delay arg2= mtime_t i_pts_jitter, arg2=int i_cr_average res=cannot fail */
};
static inline void es_out_SetMode( es_out_t *p_out, int i_mode )
int i_ret = es_out_Control( p_out, ES_OUT_SET_TIMES, f_position, i_time, i_length );
assert( !i_ret );
}
-static inline void es_out_SetJitter( es_out_t *p_out, mtime_t i_pts_delay, int i_cr_average )
+static inline void es_out_SetJitter( es_out_t *p_out,
+ mtime_t i_pts_delay, mtime_t i_pts_jitter, int i_cr_average )
{
- int i_ret = es_out_Control( p_out, ES_OUT_SET_JITTER, i_pts_delay, i_cr_average );
+ int i_ret = es_out_Control( p_out, ES_OUT_SET_JITTER,
+ i_pts_delay, i_pts_jitter, i_cr_average );
assert( !i_ret );
}
static inline int es_out_GetEsObjects( es_out_t *p_out, int i_id,
struct
{
mtime_t i_pts_delay;
+ mtime_t i_pts_jitter;
int i_cr_average;
} jitter;
} u;
case ES_OUT_SET_JITTER:
{
mtime_t i_pts_delay = (mtime_t)va_arg( args, mtime_t );
+ mtime_t i_pts_jitter = (mtime_t)va_arg( args, mtime_t );
int i_cr_average = (int)va_arg( args, int );
p_cmd->u.control.u.jitter.i_pts_delay = i_pts_delay;
+ p_cmd->u.control.u.jitter.i_pts_jitter = i_pts_jitter;
p_cmd->u.control.u.jitter.i_cr_average = i_cr_average;
break;
}
p_cmd->u.control.u.times.i_length );
case ES_OUT_SET_JITTER:
return es_out_Control( p_out, i_query, p_cmd->u.control.u.jitter.i_pts_delay,
+ p_cmd->u.control.u.jitter.i_pts_jitter,
p_cmd->u.control.u.jitter.i_cr_average );
default:
/* */
es_out_SetDelay( p_input->p->p_es_out_display, AUDIO_ES, i_audio_delay );
es_out_SetDelay( p_input->p->p_es_out_display, SPU_ES, i_spu_delay );
- es_out_SetJitter( p_input->p->p_es_out, i_pts_delay, i_cr_average );
+ es_out_SetJitter( p_input->p->p_es_out, i_pts_delay, 0, i_cr_average );
}
static void InitPrograms( input_thread_t * p_input )