Mercurial > mplayer.hg
annotate libass/ass_types.h @ 24556:965062bfe084
Fix text height calculation. It depends on line spacing.
author | eugeni |
---|---|
date | Tue, 18 Sep 2007 18:41:38 +0000 |
parents | 3f0d00abc073 |
children | 3baf6a2283da |
rev | line source |
---|---|
20008
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
1 // -*- c-basic-offset: 8; indent-tabs-mode: t -*- |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
2 // vim:ts=8:sw=8:noet:ai: |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
3 /* |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
4 Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
5 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
6 This program is free software; you can redistribute it and/or modify |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
7 it under the terms of the GNU General Public License as published by |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
8 the Free Software Foundation; either version 2 of the License, or |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
9 (at your option) any later version. |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
10 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
11 This program is distributed in the hope that it will be useful, |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
14 GNU General Public License for more details. |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
15 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
16 You should have received a copy of the GNU General Public License |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
17 along with this program; if not, write to the Free Software |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
19 */ |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19638
diff
changeset
|
20 |
23689
3f0d00abc073
Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents:
23300
diff
changeset
|
21 #ifndef ASS_TYPES_H |
3f0d00abc073
Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents:
23300
diff
changeset
|
22 #define ASS_TYPES_H |
18937 | 23 |
24 #define VALIGN_SUB 0 | |
25 #define VALIGN_CENTER 8 | |
26 #define VALIGN_TOP 4 | |
27 #define HALIGN_LEFT 1 | |
28 #define HALIGN_CENTER 2 | |
29 #define HALIGN_RIGHT 3 | |
30 | |
31 /// ass Style: line | |
32 typedef struct ass_style_s { | |
33 char* Name; | |
34 char* FontName; | |
23300 | 35 double FontSize; |
18937 | 36 uint32_t PrimaryColour; |
37 uint32_t SecondaryColour; | |
38 uint32_t OutlineColour; | |
39 uint32_t BackColour; | |
40 int Bold; | |
41 int Italic; | |
42 int Underline; | |
43 int StrikeOut; | |
44 double ScaleX; | |
45 double ScaleY; | |
22259 | 46 double Spacing; |
18937 | 47 int Angle; |
48 int BorderStyle; | |
49 double Outline; | |
50 double Shadow; | |
51 int Alignment; | |
52 int MarginL; | |
53 int MarginR; | |
54 int MarginV; | |
55 // int AlphaLevel; | |
56 int Encoding; | |
57 } ass_style_t; | |
58 | |
19638
a3473d990fed
Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents:
19492
diff
changeset
|
59 typedef struct render_priv_s render_priv_t; |
a3473d990fed
Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents:
19492
diff
changeset
|
60 |
18937 | 61 /// ass_event_t corresponds to a single Dialogue line |
62 /// Text is stored as-is, style overrides will be parsed later | |
63 typedef struct ass_event_s { | |
64 long long Start; // ms | |
65 long long Duration; // ms | |
66 | |
67 int ReadOrder; | |
68 int Layer; | |
69 int Style; | |
70 char* Name; | |
71 int MarginL; | |
72 int MarginR; | |
73 int MarginV; | |
74 char* Effect; | |
75 char* Text; | |
19638
a3473d990fed
Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents:
19492
diff
changeset
|
76 |
a3473d990fed
Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents:
19492
diff
changeset
|
77 render_priv_t* render_priv; |
18937 | 78 } ass_event_t; |
79 | |
19492 | 80 typedef struct parser_priv_s parser_priv_t; |
81 | |
20477 | 82 typedef struct ass_library_s ass_library_t; |
83 | |
18937 | 84 /// ass track represent either an external script or a matroska subtitle stream (no real difference between them) |
85 /// it can be used in rendering after the headers are parsed (i.e. events format line read) | |
86 typedef struct ass_track_s { | |
87 int n_styles; // amount used | |
88 int max_styles; // amount allocated | |
89 int n_events; | |
90 int max_events; | |
91 ass_style_t* styles; // array of styles, max_styles length, n_styles used | |
92 ass_event_t* events; // the same as styles | |
93 | |
94 char* style_format; // style format line (everything after "Format: ") | |
95 char* event_format; // event format line | |
96 | |
19492 | 97 enum {TRACK_TYPE_UNKNOWN = 0, TRACK_TYPE_ASS, TRACK_TYPE_SSA} track_type; |
18937 | 98 |
99 // script header fields | |
100 int PlayResX; | |
101 int PlayResY; | |
102 double Timer; | |
103 int WrapStyle; | |
104 | |
105 | |
106 int default_style; // index of default style | |
107 char* name; // file name in case of external subs, 0 for streams | |
19492 | 108 |
20477 | 109 ass_library_t* library; |
19492 | 110 parser_priv_t* parser_priv; |
18937 | 111 } ass_track_t; |
112 | |
113 #endif | |
114 |