annotate libass/ass_types.h @ 27409:e2de11109139

If (has outline) blur(outline) else blur(glyph). If there is an outline, the glyph itself should not be blurred. Keeps the border between glyph and outline clear (unblurred), which is probably how it should be. Patch by Diogo Franco (diogomfranco gmail com).
author eugeni
date Thu, 07 Aug 2008 22:20:58 +0000
parents 588ce97b44f2
children 0366ab2c1cb9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 /*
26723
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
4 * Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
5 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
6 * This file is part of libass.
26723
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
7 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
8 * libass is free software; you can redistribute it and/or modify
26723
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
9 * it under the terms of the GNU General Public License as published by
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
11 * (at your option) any later version.
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
12 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
13 * libass is distributed in the hope that it will be useful,
26723
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
16 * GNU General Public License for more details.
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
17 *
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
18 * You should have received a copy of the GNU General Public License along
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
19 * with libass; if not, write to the Free Software Foundation, Inc.,
26723
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0f892cd714b2 Use standard license header.
diego
parents: 26138
diff changeset
21 */
20008
fa122b7c71c6 Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents: 19638
diff changeset
22
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25535
diff changeset
23 #ifndef LIBASS_TYPES_H
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25535
diff changeset
24 #define LIBASS_TYPES_H
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
25
26138
74055622161d Add missing header #includes to fix 'make checkheaders'.
diego
parents: 25897
diff changeset
26 #include <stdint.h>
74055622161d Add missing header #includes to fix 'make checkheaders'.
diego
parents: 25897
diff changeset
27
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
28 #define VALIGN_SUB 0
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
29 #define VALIGN_CENTER 8
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
30 #define VALIGN_TOP 4
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
31 #define HALIGN_LEFT 1
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
32 #define HALIGN_CENTER 2
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
33 #define HALIGN_RIGHT 3
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
34
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
35 /// ass Style: line
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
36 typedef struct ass_style_s {
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
37 char* Name;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
38 char* FontName;
23300
04dbd42b3962 Support fractional font sizes.
eugeni
parents: 22259
diff changeset
39 double FontSize;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
40 uint32_t PrimaryColour;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
41 uint32_t SecondaryColour;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
42 uint32_t OutlineColour;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
43 uint32_t BackColour;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
44 int Bold;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
45 int Italic;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
46 int Underline;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
47 int StrikeOut;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
48 double ScaleX;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
49 double ScaleY;
22259
cb409839a110 Correct implementation of text spacing.
eugeni
parents: 20477
diff changeset
50 double Spacing;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
51 int Angle;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
52 int BorderStyle;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
53 double Outline;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
54 double Shadow;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
55 int Alignment;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
56 int MarginL;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
57 int MarginR;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
58 int MarginV;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
59 // int AlphaLevel;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
60 int Encoding;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
61 } ass_style_t;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
62
19638
a3473d990fed Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents: 19492
diff changeset
63 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
64
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
65 /// ass_event_t corresponds to a single Dialogue line
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
66 /// Text is stored as-is, style overrides will be parsed later
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
67 typedef struct ass_event_s {
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
68 long long Start; // ms
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
69 long long Duration; // ms
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
70
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
71 int ReadOrder;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
72 int Layer;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
73 int Style;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
74 char* Name;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
75 int MarginL;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
76 int MarginR;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
77 int MarginV;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
78 char* Effect;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
79 char* Text;
19638
a3473d990fed Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents: 19492
diff changeset
80
a3473d990fed Better collision detection algorithm. The idea is to keep a subtitle in place
eugeni
parents: 19492
diff changeset
81 render_priv_t* render_priv;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
82 } ass_event_t;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
83
19492
c8daf3471201 SSA/ASS parser reworked, with 2 main results:
eugeni
parents: 18937
diff changeset
84 typedef struct parser_priv_s parser_priv_t;
c8daf3471201 SSA/ASS parser reworked, with 2 main results:
eugeni
parents: 18937
diff changeset
85
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20008
diff changeset
86 typedef struct ass_library_s ass_library_t;
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20008
diff changeset
87
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
88 /// ass track represent either an external script or a matroska subtitle stream (no real difference between them)
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
89 /// it can be used in rendering after the headers are parsed (i.e. events format line read)
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
90 typedef struct ass_track_s {
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
91 int n_styles; // amount used
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
92 int max_styles; // amount allocated
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
93 int n_events;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
94 int max_events;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
95 ass_style_t* styles; // array of styles, max_styles length, n_styles used
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
96 ass_event_t* events; // the same as styles
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
97
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
98 char* style_format; // style format line (everything after "Format: ")
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
99 char* event_format; // event format line
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
100
19492
c8daf3471201 SSA/ASS parser reworked, with 2 main results:
eugeni
parents: 18937
diff changeset
101 enum {TRACK_TYPE_UNKNOWN = 0, TRACK_TYPE_ASS, TRACK_TYPE_SSA} track_type;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
102
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
103 // script header fields
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
104 int PlayResX;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
105 int PlayResY;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
106 double Timer;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
107 int WrapStyle;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
108
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
109
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
110 int default_style; // index of default style
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
111 char* name; // file name in case of external subs, 0 for streams
19492
c8daf3471201 SSA/ASS parser reworked, with 2 main results:
eugeni
parents: 18937
diff changeset
112
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20008
diff changeset
113 ass_library_t* library;
19492
c8daf3471201 SSA/ASS parser reworked, with 2 main results:
eugeni
parents: 18937
diff changeset
114 parser_priv_t* parser_priv;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
115 } ass_track_t;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
116
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25535
diff changeset
117 #endif /* LIBASS_TYPES_H */