Mercurial > mplayer.hg
changeset 6792:0d08931fb3c3
Correct dump_srt millisecond output
Add support for input from frame based subtitles to dump_srt.
author | kmkaplan |
---|---|
date | Thu, 25 Jul 2002 18:05:08 +0000 |
parents | a3b2f80f3a26 |
children | 48d432a8d531 |
files | mplayer.c subreader.c subreader.h |
diffstat | 3 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mplayer.c Thu Jul 25 16:39:22 2002 +0000 +++ b/mplayer.c Thu Jul 25 18:05:08 2002 +0000 @@ -1215,7 +1215,7 @@ } if(subtitles && stream_dump_type==3) list_sub_file(subtitles); if(subtitles && stream_dump_type==4) dump_mpsub(subtitles, sh_video->fps); - if(subtitles && stream_dump_type==6) dump_srt(subtitles); + if(subtitles && stream_dump_type==6) dump_srt(subtitles, sh_video->fps); } #endif
--- a/subreader.c Thu Jul 25 16:39:22 2002 +0000 +++ b/subreader.c Thu Jul 25 18:05:08 2002 +0000 @@ -915,13 +915,15 @@ printf ("Read %i subtitles, %i errors.\n", sub_num, sub_errs); } -void dump_srt(subtitle* subs){ +void dump_srt(subtitle* subs, float fps){ int i,j; int h,m,s,ms; FILE * fd; subtitle * onesub; unsigned long temp; + if (!sub_uses_time && sub_fps == 0) + sub_fps = fps; fd=fopen("dumpsub.srt","w"); if(!fd) { @@ -934,17 +936,23 @@ fprintf(fd,"%d\n",i+1);//line number temp=onesub->start; + if (!sub_uses_time) + temp = temp * 100 / sub_fps; + temp -= sub_delay * 100; h=temp/360000;temp%=360000; //h =1*100*60*60 m=temp/6000; temp%=6000; //m =1*100*60 s=temp/100; temp%=100; //s =1*100 - ms=temp; //ms=1 + ms=temp*10; //ms=1*10 fprintf(fd,"%02d:%02d:%02d,%03d --> ",h,m,s,ms); temp=onesub->end; + if (!sub_uses_time) + temp = temp * 100 / sub_fps; + temp -= sub_delay * 100; h=temp/360000;temp%=360000; m=temp/6000; temp%=6000; s=temp/100; temp%=100; - ms=temp; + ms=temp*10; fprintf(fd,"%02d:%02d:%02d,%03d\n",h,m,s,ms); for(j=0;j<onesub->lines;j++)
--- a/subreader.h Thu Jul 25 16:39:22 2002 +0000 +++ b/subreader.h Thu Jul 25 18:05:08 2002 +0000 @@ -38,7 +38,7 @@ subtitle* sub_read_file (char *filename, float pts); char * sub_filename(char *path, char * fname); void list_sub_file(subtitle* subs); -void dump_srt(subtitle* subs); +void dump_srt(subtitle* subs, float fps); void dump_mpsub(subtitle* subs, float fps); void sub_free( subtitle * subs ); void find_sub(subtitle* subtitles,int key);