+ bool b_change_clock =
+ i_pts_delay + i_pts_jitter != p_sys->i_pts_delay ||
+ i_cr_average != p_sys->i_cr_average;
+
+ assert( i_pts_jitter >= 0 );
+ p_sys->i_pts_delay = i_pts_delay + i_pts_jitter;
+ p_sys->i_pts_jitter = i_pts_jitter;
+ p_sys->i_cr_average = i_cr_average;
+
+ for( int i = 0; i < p_sys->i_pgrm && b_change_clock; i++ )
+ input_clock_SetJitter( p_sys->pgrm[i]->p_clock,
+ i_pts_delay + i_pts_jitter, i_cr_average );
+ return VLC_SUCCESS;
+ }
+
+ case ES_OUT_GET_PCR_SYSTEM:
+ {
+ if( p_sys->b_buffering )
+ return VLC_EGENERIC;
+
+ es_out_pgrm_t *p_pgrm = p_sys->p_pgrm;
+ if( !p_pgrm )
+ return VLC_EGENERIC;
+
+ mtime_t *pi_system = va_arg( args, mtime_t *);
+ mtime_t *pi_delay = va_arg( args, mtime_t *);
+ input_clock_GetSystemOrigin( p_pgrm->p_clock, pi_system, pi_delay );
+ return VLC_SUCCESS;
+ }
+
+ case ES_OUT_MODIFY_PCR_SYSTEM:
+ {
+ if( p_sys->b_buffering )
+ return VLC_EGENERIC;
+
+ es_out_pgrm_t *p_pgrm = p_sys->p_pgrm;
+ if( !p_pgrm )