# HG changeset patch # User atmos4 # Date 1033873144 0 # Node ID 876495f714dca43460c05e22fb48bd9c4dac4c34 # Parent 2ac457fb9c8c121d2049d73d7f0650704af2bf67 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" diff -r 2ac457fb9c8c -r 876495f714dc subreader.c --- 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; }