if( p_sys->i_subtitle >= p_sys->i_subtitles )
return 0;
- i_maxdate = p_sys->i_next_demux_date;
+ i_maxdate = p_sys->i_next_demux_date - var_GetTime( p_demux->p_parent, "spu-delay" );;
if( i_maxdate <= 0 && p_sys->i_subtitle < p_sys->i_subtitles )
{
/* Should not happen */
FIND_ANYWHERE );
if( p_playlist )
{
- playlist_NodeDelete( p_playlist, p_host->p_node, VLC_TRUE );
+ playlist_NodeDelete( p_playlist, p_host->p_node, VLC_TRUE , VLC_TRUE);
vlc_object_release( p_playlist );
}
{
input_thread_t *p_input = (input_thread_t*)p_this;
- /*Change i_pts_delay to make sure es are decoded in time*/
- if (newval.i_int < 0 || oldval.i_int < 0 )
- {
- p_input->i_pts_delay -= newval.i_int - oldval.i_int;
- }
if( !strcmp( psz_cmd, "audio-delay" ) )
+ {
+ /*Change i_pts_delay to make sure es are decoded in time*/
+ if (newval.i_int < 0 || oldval.i_int < 0 )
+ {
+ p_input->i_pts_delay -= newval.i_int - oldval.i_int;
+ }
input_ControlPush( p_input, INPUT_CONTROL_SET_AUDIO_DELAY, &newval );
+ }
else if( !strcmp( psz_cmd, "spu-delay" ) )
input_ControlPush( p_input, INPUT_CONTROL_SET_SPU_DELAY, &newval );
return VLC_SUCCESS;