2001-04-24 11:42:04 +00:00
|
|
|
#ifndef __MPLAYER_SUBREADER_H
|
|
|
|
#define __MPLAYER_SUBREADER_H
|
|
|
|
|
2004-07-28 17:03:09 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
|
2002-12-05 00:03:35 +00:00
|
|
|
extern int suboverlap_enabled;
|
2003-01-27 23:41:56 +00:00
|
|
|
extern int sub_no_text_pp; // disable text post-processing
|
2003-04-09 18:04:29 +00:00
|
|
|
extern int sub_match_fuzziness;
|
2001-11-15 11:53:11 +00:00
|
|
|
|
|
|
|
// subtitle formats
|
|
|
|
#define SUB_INVALID -1
|
|
|
|
#define SUB_MICRODVD 0
|
|
|
|
#define SUB_SUBRIP 1
|
|
|
|
#define SUB_SUBVIEWER 2
|
|
|
|
#define SUB_SAMI 3
|
|
|
|
#define SUB_VPLAYER 4
|
|
|
|
#define SUB_RT 5
|
|
|
|
#define SUB_SSA 6
|
2004-01-29 10:53:19 +00:00
|
|
|
#define SUB_PJS 7
|
2001-11-15 11:53:11 +00:00
|
|
|
#define SUB_MPSUB 8
|
|
|
|
#define SUB_AQTITLE 9
|
2002-05-07 21:58:01 +00:00
|
|
|
#define SUB_SUBVIEWER2 10
|
2002-05-13 20:41:20 +00:00
|
|
|
#define SUB_SUBRIP09 11
|
2002-10-30 19:16:58 +00:00
|
|
|
#define SUB_JACOSUB 12
|
2004-04-06 11:52:31 +00:00
|
|
|
#define SUB_MPL2 13
|
2001-11-15 11:53:11 +00:00
|
|
|
|
|
|
|
// One of the SUB_* constant above
|
|
|
|
extern int sub_format;
|
|
|
|
|
2003-04-07 16:04:02 +00:00
|
|
|
#define MAX_SUBTITLE_FILES 128
|
|
|
|
|
2002-09-01 11:08:28 +00:00
|
|
|
#define SUB_MAX_TEXT 10
|
2004-09-15 13:16:52 +00:00
|
|
|
#define SUB_ALIGNMENT_BOTTOMLEFT 1
|
|
|
|
#define SUB_ALIGNMENT_BOTTOMCENTER 2
|
|
|
|
#define SUB_ALIGNMENT_BOTTOMRIGHT 3
|
|
|
|
#define SUB_ALIGNMENT_MIDDLELEFT 4
|
|
|
|
#define SUB_ALIGNMENT_MIDDLECENTER 5
|
|
|
|
#define SUB_ALIGNMENT_MIDDLERIGHT 6
|
|
|
|
#define SUB_ALIGNMENT_TOPLEFT 7
|
|
|
|
#define SUB_ALIGNMENT_TOPCENTER 8
|
|
|
|
#define SUB_ALIGNMENT_TOPRIGHT 9
|
2001-03-30 03:07:45 +00:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
|
|
|
int lines;
|
|
|
|
|
|
|
|
unsigned long start;
|
|
|
|
unsigned long end;
|
|
|
|
|
|
|
|
char *text[SUB_MAX_TEXT];
|
2003-09-21 13:20:06 +00:00
|
|
|
unsigned char alignment;
|
2001-03-30 03:07:45 +00:00
|
|
|
} subtitle;
|
|
|
|
|
2003-04-07 16:04:02 +00:00
|
|
|
typedef struct {
|
|
|
|
subtitle *subtitles;
|
|
|
|
char *filename;
|
|
|
|
int sub_uses_time;
|
|
|
|
int sub_num; // number of subtitle structs
|
|
|
|
int sub_errs;
|
|
|
|
} sub_data;
|
|
|
|
|
2004-10-18 20:41:06 +00:00
|
|
|
#ifdef USE_FRIBIDI
|
|
|
|
extern char *fribidi_charset;
|
|
|
|
extern int flip_hebrew;
|
|
|
|
extern int fribidi_flip_commas;
|
|
|
|
#endif
|
|
|
|
|
2003-04-07 16:04:02 +00:00
|
|
|
sub_data* sub_read_file (char *filename, float pts);
|
2002-12-28 15:19:41 +00:00
|
|
|
subtitle* subcp_recode1 (subtitle *sub);
|
2004-07-28 12:40:35 +00:00
|
|
|
// enca_fd is the file enca uses to determine the codepage.
|
|
|
|
// setting to NULL disables enca.
|
|
|
|
void subcp_open (FILE *enca_fd); /* for demux_ogg.c */
|
2003-01-03 12:26:17 +00:00
|
|
|
void subcp_close (void); /* for demux_ogg.c */
|
2004-08-02 06:46:48 +00:00
|
|
|
#ifdef HAVE_ENCA
|
|
|
|
void* guess_cp(FILE *enca_fd, char *preferred_language, char *fallback);
|
|
|
|
#endif
|
2003-04-07 16:04:02 +00:00
|
|
|
char ** sub_filenames(char *path, char *fname);
|
|
|
|
void list_sub_file(sub_data* subd);
|
|
|
|
void dump_srt(sub_data* subd, float fps);
|
|
|
|
void dump_mpsub(sub_data* subd, float fps);
|
|
|
|
void dump_microdvd(sub_data* subd, float fps);
|
|
|
|
void dump_jacosub(sub_data* subd, float fps);
|
|
|
|
void dump_sami(sub_data* subd, float fps);
|
|
|
|
void sub_free( sub_data * subd );
|
|
|
|
void find_sub(sub_data* subd,int key);
|
|
|
|
void step_sub(sub_data *subd, float pts, int movement);
|
2001-05-17 09:17:16 +00:00
|
|
|
#endif
|