- const mtime_t i_pts_delay_max = 30000000;
- if( i_pts_delay > i_pts_delay_max )
- i_pts_delay = __MAX( i_pts_delay_max, p_sys->i_pts_delay );
+ const mtime_t i_jitter_max = INT64_C(1000) * var_InheritInteger( p_sys->p_input, "clock-jitter" );
+ if( i_pts_delay > __MIN( i_pts_delay_base + i_jitter_max, INPUT_PTS_DELAY_MAX ) )
+ {
+ msg_Err( p_sys->p_input,
+ "ES_OUT_SET_(GROUP_)PCR is called too late (jitter of %d ms ignored)",
+ (int)(i_pts_delay - i_pts_delay_base) / 1000 );
+ i_pts_delay = p_sys->i_pts_delay;
+ }
+ else
+ {
+ msg_Err( p_sys->p_input,
+ "ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to %d ms)",
+ (int)(i_pts_delay/1000) );
+ }