changeset 7610:876495f714dc

Enable -subfps for time based subtitles, too. Please update the DOCS for -subfps: "If you have time-based subtitles like subviewer that can't be synced by -subdelay try specifying -subfps with the framerate of the movie the time-based sub was created for, eg. -subfps 25 if you use subs from a 25 fps movie with a movie using a different framerate. If you need to guess -subfps, try 25, 23.98 and 29.97"
author atmos4
date Sun, 06 Oct 2002 02:59:04 +0000
parents 2ac457fb9c8c
children 411886c03c54
files subreader.c
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/subreader.c	Sun Oct 06 01:08:04 2002 +0000
+++ b/subreader.c	Sun Oct 06 02:59:04 2002 +0000
@@ -735,7 +735,7 @@
 	unsigned long subfms = (sub_uses_time ? 100 : fps) * subtime;
 	
 	n=m=0;
-	if (i)	for (;;){	
+	if (i)	for (;;){
 		if (sub->end <= sub->start){
 			sub->end = sub->start + subfms;
 			m++;
@@ -750,6 +750,22 @@
 			if (!m)
 				n++;
 		}
+
+		/* Theory:
+		 * Movies are often converted from FILM (24 fps)
+		 * to PAL (25) by simply speeding it up, so we
+		 * to multiply the original timestmaps by
+		 * (Movie's FPS / Subtitle's (guessed) FPS)
+		 * so eg. for 23.98 fps movie and PAL time based
+		 * subtitles we say -subfps 25 and we're fine!
+		 */
+
+		/* timed sub fps correction ::atmos */
+		if(sub_uses_time && sub_fps) {	
+			sub->start *= sub_fps/fps;
+			sub->end   *= sub_fps/fps;
+		}
+
 		sub = nextsub;
 		m = 0;
 	}