summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mplayer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mplayer.c b/mplayer.c
index 21773569a2..fb3cf18444 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -391,6 +391,7 @@ int main(int argc,char* argv[], char *envp[]){
#ifdef USE_SUB
static subtitle* subtitles=NULL;
+float sub_last_pts = -303;
#endif
static demuxer_t *demuxer=NULL;
@@ -2068,7 +2069,10 @@ if(rel_seek_secs || abs_seek_pos){
float pts=d_video->pts;
if(sub_fps==0) sub_fps=sh_video->fps;
current_module="find_sub";
- find_sub(subtitles,sub_uses_time?(100*(pts+sub_delay)):((pts+sub_delay)*sub_fps)); // FIXME! frame counter...
+ if (pts > sub_last_pts || pts < sub_last_pts-1.0 ) {
+ find_sub(subtitles,sub_uses_time?(100*(pts+sub_delay)):((pts+sub_delay)*sub_fps)); // FIXME! frame counter...
+ sub_last_pts = pts;
+ }
current_module=NULL;
}
#endif