mirror of https://github.com/mpv-player/mpv
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
This commit is contained in:
parent
723e6e76b3
commit
61bcfde0a0
|
@ -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";
|
||||
|
|
18
subreader.c
18
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue