From 919f3710b113c284aef73eeddff53c700c5fc6dc Mon Sep 17 00:00:00 2001 From: arpi Date: Thu, 5 Dec 2002 00:07:59 +0000 Subject: [PATCH] dump subtitles in SAMI format patch by Salvatore Falco git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8364 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/mplayer.1 | 5 +++++ cfg-mplayer.h | 1 + mplayer.c | 1 + subreader.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+) diff --git a/DOCS/mplayer.1 b/DOCS/mplayer.1 index ffcba68937..dcd97ce12d 100644 --- a/DOCS/mplayer.1 +++ b/DOCS/mplayer.1 @@ -723,6 +723,11 @@ Convert the given subtitle (specified with the \-sub switch) to the time-based JACOsub subtitle format. Creates a dumpsub.js file in the current directory. .TP +.B \-dumpsami (MPLAYER only) +Convert the given subtitle (specified with the \-sub switch) to the time-based +SAMI subtitle format. +Creates a dumpsub.smi file in the current directory. +.TP .B \-dumpsub (MPLAYER only) (BETA CODE) Dumps the subtitle substream from VOB streams. See -dump*sub and -vobsubout* options too. diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 43c81b9338..7fd9c672d4 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -374,6 +374,7 @@ static config_t mplayer_opts[]={ {"dumpsrtsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 6, NULL}, {"dumpmicrodvdsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 7, NULL}, {"dumpjacosub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 8, NULL}, + {"dumpsami", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 9, NULL}, #ifdef HAVE_LIRC {"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, diff --git a/mplayer.c b/mplayer.c index f51d4769ce..df099c19a5 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1200,6 +1200,7 @@ if(sh_video) { if(subtitles && stream_dump_type==6) dump_srt(subtitles, sh_video->fps); if(subtitles && stream_dump_type==7) dump_microdvd(subtitles, sh_video->fps); if(subtitles && stream_dump_type==8) dump_jacosub(subtitles, sh_video->fps); + if(subtitles && stream_dump_type==9) dump_sami(subtitles, sh_video->fps); } #endif diff --git a/subreader.c b/subreader.c index 074403e10a..019e1fc4b8 100644 --- a/subreader.c +++ b/subreader.c @@ -1512,6 +1512,59 @@ void dump_jacosub(subtitle* subs, float fps) { mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.js\'.\n"); } +void dump_sami(subtitle* subs, float fps) { + int i,j; + FILE * fd; + subtitle * onesub; + unsigned long temp; + + if (!sub_uses_time && sub_fps == 0) + sub_fps = fps; + fd=fopen("dumpsub.smi","w"); + if(!fd) + { + perror("dump_jacosub: fopen"); + return; + } + fprintf(fd, "\n" + "\n" + " \n" + "\n" + "\n"); + for(i=0;istart; + if (!sub_uses_time) + temp = temp * 100 / sub_fps; + temp -= sub_delay * 100; + fprintf(fd,"\t\n" + "\t

", temp * 10); + + for(j=0;jlines;j++) + fprintf(fd,"%s%s",j ? "
" : "", onesub->text[j]); + + fprintf(fd,"\n"); + + temp=onesub->end; + if (!sub_uses_time) + temp = temp * 100 / sub_fps; + temp -= sub_delay * 100; + fprintf(fd,"\t\n" + "\t

 \n", temp * 10); + } + fprintf(fd, "\n" + "\n"); + fclose(fd); + mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.smi\'.\n"); +} + void sub_free( subtitle * subs ) { int i;