[Mplayer-cvslog] CVS: main subreader.c,1.19,1.20
Szabolcs Berecz
szabii at users.sourceforge.net
Sat Jun 9 22:09:20 CEST 2001
Update of /cvsroot/mplayer/main
In directory usw-pr-cvs1:/tmp/cvs-serv13117
Modified Files:
subreader.c
Log Message:
new sub format...
Index: subreader.c
===================================================================
RCS file: /cvsroot/mplayer/main/subreader.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** subreader.c 2001/06/01 21:12:05 1.19
--- subreader.c 2001/06/09 20:09:18 1.20
***************
*** 4,7 ****
--- 4,8 ----
* Written by laaz
* Some code cleanup & realloc() by A'rpi/ESP-team
+ * dunnowhat sub format by szabi
*/
***************
*** 27,30 ****
--- 28,32 ----
// 5 for RT format
// 6 for ssa (Sub Station Alpha)
+ // 7 for ... erm ... dunnowhat. tell me if you know
int eol(char p) {
***************
*** 144,151 ****
next=p, i=0;
! while (next =sub_readtext (next, &(current->text[i]))) {
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return;}
}
current->lines= ++i;
--- 146,153 ----
next=p, i=0;
! while ((next =sub_readtext (next, &(current->text[i])))) {
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return current;}
}
current->lines= ++i;
***************
*** 220,225 ****
char line2[1001];
int a1,a2,a3,b1,b2,b3;
! int setime,etime;
! char *p=NULL, *q=NULL, *l=NULL,*next;
int i,len,len2,plen;
--- 222,226 ----
char line2[1001];
int a1,a2,a3,b1,b2,b3;
! char *p=NULL, *next;
int i,len,len2,plen;
***************
*** 247,251 ****
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return;}
}
current->lines=i+1;
--- 248,252 ----
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return current;}
}
current->lines=i+1;
***************
*** 288,292 ****
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return;}
}
current->lines=i+1;
--- 289,293 ----
if (current->text[i]==ERR) {return ERR;}
i++;
! if (i>=SUB_MAX_TEXT) { printf ("Too many lines in a subtitle\n");current->lines=i;return current;}
}
current->lines=i+1;
***************
*** 317,320 ****
--- 318,338 ----
}
+ subtitle *sub_read_line_dunnowhat(FILE *fd,subtitle *current) {
+ char line[1001];
+ char text[1001];
+
+ bzero (current, sizeof(current));
+
+ if (!fgets (line, 1000, fd))
+ return NULL;
+ if (sscanf (line, "%ld,%ld,\"%[^\"]", &(current->start),
+ &(current->end), text) <3)
+ return ERR;
+ current->text[0] = strdup(text);
+ current->lines = 1;
+
+ return current;
+ }
+
int sub_autodetect (FILE *fd) {
char line[1001];
***************
*** 348,351 ****
--- 366,371 ----
if (!memcmp(line, "Dialogue: Marked", 16))
{sub_uses_time=1; return 6;}
+ if (sscanf (line, "%d,%d,\"%c", &i, &i, (char *) &i) == 3)
+ {sub_uses_time=0;return 7;}
}
***************
*** 358,362 ****
int n_max;
subtitle *first;
! subtitle * (*func[7])(FILE *fd,subtitle *dest)=
{
sub_read_line_microdvd,
--- 378,382 ----
int n_max;
subtitle *first;
! subtitle * (*func[])(FILE *fd,subtitle *dest)=
{
sub_read_line_microdvd,
***************
*** 366,370 ****
sub_read_line_vplayer,
sub_read_line_rt,
! sub_read_line_ssa
};
--- 386,391 ----
sub_read_line_vplayer,
sub_read_line_rt,
! sub_read_line_ssa,
! sub_read_line_dunnowhat
};
***************
*** 433,437 ****
".RT",
".txt",
! ".TXT"};
--- 454,460 ----
".RT",
".txt",
! ".TXT",
! ".ssa",
! ".SSA"};
***************
*** 446,450 ****
sub_name2=malloc (strlen(path) + strlen(fname) + 8);
! if (tmp=strrchr(fname,'/'))
sprintf (sub_name2, "%s%s", path, tmp+1);
else
--- 469,473 ----
sub_name2=malloc (strlen(path) + strlen(fname) + 8);
! if ((tmp=strrchr(fname,'/')))
sprintf (sub_name2, "%s%s", path, tmp+1);
else
***************
*** 490,494 ****
for(j=0;j<sub_num;j++){
egysub=&subs[j];
! printf ("%i line%c (%i-%i) ",
egysub->lines,
(1==egysub->lines)?' ':'s',
--- 513,517 ----
for(j=0;j<sub_num;j++){
egysub=&subs[j];
! printf ("%i line%c (%li-%li) ",
egysub->lines,
(1==egysub->lines)?' ':'s',
_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog
More information about the MPlayer-cvslog
mailing list