Mercurial > mplayer.hg
changeset 8363:ae74be3e2ed0
dump subtitles in SAMI format
patch by Salvatore Falco <sfalco@studenti.ing.uniroma1.it>
author | arpi |
---|---|
date | Thu, 05 Dec 2002 00:07:59 +0000 |
parents | b5478134c853 |
children | 137b7574c85f |
files | DOCS/mplayer.1 cfg-mplayer.h mplayer.c subreader.c |
diffstat | 4 files changed, 60 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/mplayer.1 Thu Dec 05 00:05:57 2002 +0000 +++ b/DOCS/mplayer.1 Thu Dec 05 00:07:59 2002 +0000 @@ -723,6 +723,11 @@ 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.
--- a/cfg-mplayer.h Thu Dec 05 00:05:57 2002 +0000 +++ b/cfg-mplayer.h Thu Dec 05 00:07:59 2002 +0000 @@ -374,6 +374,7 @@ {"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},
--- a/mplayer.c Thu Dec 05 00:05:57 2002 +0000 +++ b/mplayer.c Thu Dec 05 00:07:59 2002 +0000 @@ -1200,6 +1200,7 @@ 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
--- a/subreader.c Thu Dec 05 00:05:57 2002 +0000 +++ b/subreader.c Thu Dec 05 00:07:59 2002 +0000 @@ -1512,6 +1512,59 @@ 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, "<SAMI>\n" + "<HEAD>\n" + " <STYLE TYPE=\"Text/css\">\n" + " <!--\n" + " P {margin-left: 29pt; margin-right: 29pt; font-size: 24pt; text-align: center; font-family: Tahoma; font-weight: bold; color: #FCDD03; background-color: #000000;}\n" + " .SUBTTL {Name: 'Subtitles'; Lang: en-US; SAMIType: CC;}\n" + " -->\n" + " </STYLE>\n" + "</HEAD>\n" + "<BODY>\n"); + for(i=0;i<sub_num;i++) + { + onesub=subs+i; //=&subs[i]; + + temp=onesub->start; + if (!sub_uses_time) + temp = temp * 100 / sub_fps; + temp -= sub_delay * 100; + fprintf(fd,"\t<SYNC Start=%lu>\n" + "\t <P>", temp * 10); + + for(j=0;j<onesub->lines;j++) + fprintf(fd,"%s%s",j ? "<br>" : "", 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<SYNC Start=%lu>\n" + "\t <P> \n", temp * 10); + } + fprintf(fd, "</BODY>\n" + "</SAMI>\n"); + fclose(fd); + mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.smi\'.\n"); +} + void sub_free( subtitle * subs ) { int i;