mirror of
https://github.com/mpv-player/mpv
synced 2025-02-17 04:58:06 +00:00
dump in JACOsub format
patch by Salvatore Falco <sfalco@studenti.ing.uniroma1.it> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8361 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
6624dcbec4
commit
7228f67795
@ -119,8 +119,8 @@ fullscreen.
|
|||||||
MPlayer has an onscreen display (OSD) for status information, nice big
|
MPlayer has an onscreen display (OSD) for status information, nice big
|
||||||
antialiased shaded subtitles and visual feedback for keyboard controls.
|
antialiased shaded subtitles and visual feedback for keyboard controls.
|
||||||
European/\:ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean
|
European/\:ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic and Korean
|
||||||
fonts are supported along with 9 subtitle formats (MicroDVD, SubRip,
|
fonts are supported along with 10 subtitle formats (MicroDVD, SubRip,
|
||||||
SubViewer, Sami, VPlayer, RT, SSA, AQTitle and our own: MPsub) and DVD
|
SubViewer, Sami, VPlayer, RT, SSA, AQTitle, JACOsub and our own: MPsub) and DVD
|
||||||
subtitles (SPU streams, VobSub and Closed Captions).
|
subtitles (SPU streams, VobSub and Closed Captions).
|
||||||
.PP
|
.PP
|
||||||
.B mencoder
|
.B mencoder
|
||||||
@ -718,6 +718,11 @@ Convert the given subtitle (specified with the \-sub switch) to the time-based
|
|||||||
SubViewer (SRT) subtitle format.
|
SubViewer (SRT) subtitle format.
|
||||||
Creates a dumpsub.srt file in the current directory.
|
Creates a dumpsub.srt file in the current directory.
|
||||||
.TP
|
.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)
|
.B \-dumpsub (MPLAYER only) (BETA CODE)
|
||||||
Dumps the subtitle substream from VOB streams.
|
Dumps the subtitle substream from VOB streams.
|
||||||
See -dump*sub and -vobsubout* options too.
|
See -dump*sub and -vobsubout* options too.
|
||||||
|
@ -373,6 +373,7 @@ static config_t mplayer_opts[]={
|
|||||||
{"dumpstream", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 5, NULL},
|
{"dumpstream", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 5, NULL},
|
||||||
{"dumpsrtsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 6, NULL},
|
{"dumpsrtsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 6, NULL},
|
||||||
{"dumpmicrodvdsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 7, 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
|
#ifdef HAVE_LIRC
|
||||||
{"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
|
{"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
|
||||||
|
@ -1198,6 +1198,7 @@ if(sh_video) {
|
|||||||
if(subtitles && stream_dump_type==4) dump_mpsub(subtitles, sh_video->fps);
|
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==6) dump_srt(subtitles, sh_video->fps);
|
||||||
if(subtitles && stream_dump_type==7) dump_microdvd(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
|
#endif
|
||||||
|
|
||||||
|
49
subreader.c
49
subreader.c
@ -1379,6 +1379,55 @@ void dump_microdvd(subtitle* subs, float fps) {
|
|||||||
mp_msg(MSGT_SUBREADER,MSGL_INFO,"SUB: Subtitles dumped in \'dumpsub.txt\'.\n");
|
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;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;
|
||||||
|
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;j<onesub->lines;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 )
|
void sub_free( subtitle * subs )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
Loading…
Reference in New Issue
Block a user