Mercurial > mplayer.hg
comparison sub/subreader.h @ 32454:69d3be4d52a2
Create a new directory, "sub", for subtitles and OSD related code.
Move subreader.[ch] into it.
author | cigaes |
---|---|
date | Wed, 27 Oct 2010 16:28:50 +0000 |
parents | |
children | 7b135236a44a |
comparison
equal
deleted
inserted
replaced
32453:e789ea19fa5a | 32454:69d3be4d52a2 |
---|---|
1 /* | |
2 * This file is part of MPlayer. | |
3 * | |
4 * MPlayer is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * MPlayer is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License along | |
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 */ | |
18 | |
19 #ifndef MPLAYER_SUBREADER_H | |
20 #define MPLAYER_SUBREADER_H | |
21 | |
22 #include <stdio.h> | |
23 | |
24 #include "config.h" | |
25 | |
26 extern int suboverlap_enabled; | |
27 extern int sub_no_text_pp; // disable text post-processing | |
28 extern int sub_match_fuzziness; | |
29 extern int sub_format; | |
30 extern char *sub_cp; | |
31 | |
32 // subtitle formats | |
33 #define SUB_INVALID -1 | |
34 #define SUB_MICRODVD 0 | |
35 #define SUB_SUBRIP 1 | |
36 #define SUB_SUBVIEWER 2 | |
37 #define SUB_SAMI 3 | |
38 #define SUB_VPLAYER 4 | |
39 #define SUB_RT 5 | |
40 #define SUB_SSA 6 | |
41 #define SUB_PJS 7 | |
42 #define SUB_MPSUB 8 | |
43 #define SUB_AQTITLE 9 | |
44 #define SUB_SUBVIEWER2 10 | |
45 #define SUB_SUBRIP09 11 | |
46 #define SUB_JACOSUB 12 | |
47 #define SUB_MPL2 13 | |
48 | |
49 #define MAX_SUBTITLE_FILES 128 | |
50 | |
51 #define SUB_MAX_TEXT 12 | |
52 #define SUB_ALIGNMENT_BOTTOMLEFT 1 | |
53 #define SUB_ALIGNMENT_BOTTOMCENTER 2 | |
54 #define SUB_ALIGNMENT_BOTTOMRIGHT 3 | |
55 #define SUB_ALIGNMENT_MIDDLELEFT 4 | |
56 #define SUB_ALIGNMENT_MIDDLECENTER 5 | |
57 #define SUB_ALIGNMENT_MIDDLERIGHT 6 | |
58 #define SUB_ALIGNMENT_TOPLEFT 7 | |
59 #define SUB_ALIGNMENT_TOPCENTER 8 | |
60 #define SUB_ALIGNMENT_TOPRIGHT 9 | |
61 | |
62 typedef struct { | |
63 | |
64 int lines; | |
65 | |
66 unsigned long start; | |
67 unsigned long end; | |
68 | |
69 char *text[SUB_MAX_TEXT]; | |
70 double endpts[SUB_MAX_TEXT]; | |
71 unsigned char alignment; | |
72 } subtitle; | |
73 | |
74 typedef struct { | |
75 subtitle *subtitles; | |
76 char *filename; | |
77 int sub_uses_time; | |
78 int sub_num; // number of subtitle structs | |
79 int sub_errs; | |
80 } sub_data; | |
81 | |
82 extern char *fribidi_charset; | |
83 extern int flip_hebrew; | |
84 extern int fribidi_flip_commas; | |
85 | |
86 sub_data* sub_read_file (char *filename, float pts); | |
87 subtitle* subcp_recode (subtitle *sub); | |
88 // enca_fd is the file enca uses to determine the codepage. | |
89 // setting to NULL disables enca. | |
90 struct stream; | |
91 void subcp_open (struct stream *st); /* for demux_ogg.c */ | |
92 void subcp_close (void); /* for demux_ogg.c */ | |
93 #ifdef CONFIG_ENCA | |
94 const char* guess_buffer_cp(unsigned char* buffer, int buflen, const char *preferred_language, const char *fallback); | |
95 const char* guess_cp(struct stream *st, const char *preferred_language, const char *fallback); | |
96 #endif | |
97 char ** sub_filenames(const char *path, char *fname); | |
98 void list_sub_file(sub_data* subd); | |
99 void dump_srt(sub_data* subd, float fps); | |
100 void dump_mpsub(sub_data* subd, float fps); | |
101 void dump_microdvd(sub_data* subd, float fps); | |
102 void dump_jacosub(sub_data* subd, float fps); | |
103 void dump_sami(sub_data* subd, float fps); | |
104 void sub_free( sub_data * subd ); | |
105 void find_sub(sub_data* subd,int key); | |
106 void step_sub(sub_data *subd, float pts, int movement); | |
107 void sub_add_text(subtitle *sub, const char *txt, int len, double endpts, int strip_markup); | |
108 int sub_clear_text(subtitle *sub, double pts); | |
109 | |
110 #endif /* MPLAYER_SUBREADER_H */ |