# HG changeset patch # User arpi # Date 1039046318 0 # Node ID ad75993b8deb962127f020989cea1dd8c4a05d8a # Parent a93461f7e5ef495808b3c1d8f01a2eab24f53eea dump in JACOsub format patch by Salvatore Falco diff -r a93461f7e5ef -r ad75993b8deb DOCS/mplayer.1 --- a/DOCS/mplayer.1 Wed Dec 04 23:51:44 2002 +0000 +++ b/DOCS/mplayer.1 Wed Dec 04 23:58:38 2002 +0000 @@ -119,8 +119,8 @@ MPlayer has an onscreen display (OSD) for status information, nice big antialiased shaded subtitles and visual feedback for keyboard controls. European/\:ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean -fonts are supported along with 9 subtitle formats (MicroDVD, SubRip, -SubViewer, Sami, VPlayer, RT, SSA, AQTitle and our own: MPsub) and DVD +fonts are supported along with 10 subtitle formats (MicroDVD, SubRip, +SubViewer, Sami, VPlayer, RT, SSA, AQTitle, JACOsub and our own: MPsub) and DVD subtitles (SPU streams, VobSub and Closed Captions). .PP .B mencoder @@ -718,6 +718,11 @@ SubViewer (SRT) subtitle format. Creates a dumpsub.srt file in the current directory. .TP +.B \-dumpjacosub (MPLAYER only) +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 \-dumpsub (MPLAYER only) (BETA CODE) Dumps the subtitle substream from VOB streams. See -dump*sub and -vobsubout* options too. diff -r a93461f7e5ef -r ad75993b8deb cfg-mplayer.h --- a/cfg-mplayer.h Wed Dec 04 23:51:44 2002 +0000 +++ b/cfg-mplayer.h Wed Dec 04 23:58:38 2002 +0000 @@ -373,6 +373,7 @@ {"dumpstream", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 5, NULL}, {"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}, #ifdef HAVE_LIRC {"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, diff -r a93461f7e5ef -r ad75993b8deb mplayer.c --- a/mplayer.c Wed Dec 04 23:51:44 2002 +0000 +++ b/mplayer.c Wed Dec 04 23:58:38 2002 +0000 @@ -1198,6 +1198,7 @@ if(subtitles && stream_dump_type==4) dump_mpsub(subtitles, sh_video->fps); 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); } #endif diff -r a93461f7e5ef -r ad75993b8deb subreader.c --- a/subreader.c Wed Dec 04 23:51:44 2002 +0000 +++ b/subreader.c Wed Dec 04 23:58:38 2002 +0000 @@ -1379,6 +1379,55 @@ mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.txt\'.\n"); } +void dump_jacosub(subtitle* subs, float fps) { + int i,j; + int h,m,s,cs; + FILE * fd; + subtitle * onesub; + unsigned long temp; + + if (!sub_uses_time && sub_fps == 0) + sub_fps = fps; + fd=fopen("dumpsub.js","w"); + if(!fd) + { + perror("dump_jacosub: fopen"); + return; + } + fprintf(fd, "#TIMERES %d\n", (sub_uses_time) ? 100 : (int)sub_fps); + for(i=0;istart; + 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 + cs=temp; //cs=1*10 + fprintf(fd,"%02d:%02d:%02d.%02d ",h,m,s,cs); + + 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; + cs=temp; + fprintf(fd,"%02d:%02d:%02d.%02d {~} ",h,m,s,cs); + + for(j=0;jlines;j++) + fprintf(fd,"%s%s",j ? "\\n" : "", onesub->text[j]); + + fprintf(fd,"\n"); + } + fclose(fd); + mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.js\'.\n"); +} + void sub_free( subtitle * subs ) { int i;