summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoratlka <atlka@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-08 14:10:22 +0000
committeratlka <atlka@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-08 14:10:22 +0000
commit61bcfde0a0d648b531f47134c53e63e8ea97f436 (patch)
tree5b229bd7e4ff25d28cae1bb43cad4b9327fd2903
parent723e6e76b3623f22fa30fae382304d8a23fe19a1 (diff)
downloadmpv-61bcfde0a0d648b531f47134c53e63e8ea97f436.tar.bz2
mpv-61bcfde0a0d648b531f47134c53e63e8ea97f436.tar.xz
corrections to adjust_subs_time function which now uses fps if needed
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4053 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--mplayer.c8
-rw-r--r--subreader.c18
2 files changed, 14 insertions, 12 deletions
diff --git a/mplayer.c b/mplayer.c
index fc7fcda4d6..d0422681dc 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -30,6 +30,7 @@
#ifdef USE_SUB
#include "subreader.h"
void find_sub(subtitle* subtitles,int key);
+void adjust_subs_time(subtitle* subtitles, float subadj, float fps);
#endif
#ifdef USE_LIBVO2
@@ -1031,7 +1032,12 @@ if(!sh_video){
/* display clip info */
demux_info_print(demuxer);
-
+
+#ifdef USE_SUB
+// we know fps so now we can adjust subtitles time to ~6 seconds AST
+adjust_subs_time(subtitles, 6.0, sh_video->fps);
+#endif
+
//================== Init AUDIO (codec) ==========================
current_module="init_audio_codec";
diff --git a/subreader.c b/subreader.c
index d19d1de220..807a519695 100644
--- a/subreader.c
+++ b/subreader.c
@@ -599,19 +599,20 @@ subtitle* subcp_recode (subtitle *sub)
#endif
-static void adjust_subs_time(subtitle* sub, unsigned long subtime){
- int i = sub_num;
+void adjust_subs_time(subtitle* sub, float subtime, float fps){
subtitle* nextsub;
+ int i = sub_num;
+ unsigned long subfms = (sub_uses_time ? 100 : fps) * subtime;
- for (;;){
+ if (i) for (;;){
if (sub->end <= sub->start)
- sub->end = sub->start + subtime;
+ sub->end = sub->start + subfms;
if (!--i) return;
nextsub = sub + 1;
if (sub->end >= nextsub->start){
sub->end = nextsub->start - 1;
- if (sub->end - sub->start > subtime)
- sub->end = sub->start + subtime;
+ if (sub->end - sub->start > subfms)
+ sub->end = sub->start + subfms;
}
sub = nextsub;
}
@@ -682,11 +683,6 @@ subtitle* sub_read_file (char *filename) {
return NULL;
}
-// if sub->end time is 0 set it to sub_>start + ~6 sec but not
-// after next sub->start time
-// correct also if sub->end time is below sub->start time
-// maybe default subtime (150fms) should be a program option AST
- adjust_subs_time(first, 150);
return first;
}