diff --git a/libmpdemux/demux_avi.c b/libmpdemux/demux_avi.c index ba8e74960c..e812d0bcd7 100644 --- a/libmpdemux/demux_avi.c +++ b/libmpdemux/demux_avi.c @@ -608,6 +608,7 @@ void demux_seek_avi(demuxer_t *demuxer,float rel_seek_secs,int flags){ curr_audio_pos*=align; #else curr_audio_pos=(priv->avi_video_pts)*(float)sh_audio->audio.dwRate/(float)sh_audio->audio.dwScale; + curr_audio_pos-=sh_audio->audio.dwStart; curr_audio_pos*=sh_audio->audio.dwSampleSize; #endif diff --git a/mplayer.c b/mplayer.c index fb3cf18444..5368856896 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1559,6 +1559,7 @@ if(!(vo_flags&256)){ // flag 256 means: libvo driver does its timing (dvb card) unsigned int samples=(sh_audio->audio.dwSampleSize)? ((ds_tell(d_audio)-sh_audio->a_in_buffer_len)/sh_audio->audio.dwSampleSize) : (d_audio->pack_no); // <- used for VBR audio + samples+=sh_audio->audio.dwStart; // offset a_pts=samples*(float)sh_audio->audio.dwScale/(float)sh_audio->audio.dwRate; #else if(sh_audio->audio.dwSampleSize)