annotate libass/ass.h @ 30811:50e0f6942e43

Implement Win32 mutexes. Implement Win32 mutexes; they used to just be mapped on top of events, which is not the same thing at all. The implementation is pretty much the obvious one, similar to the current critical section implementation and the semaphore implementation; a single lock count protected by a pthread mutex, and an event lockers can sleep on to know when the mutex is available. Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs support is not configured.
author sesse
date Sat, 06 Mar 2010 10:13:37 +0000
parents 48d020c5ceca
children ee7beb1a3a6e
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: 19652
diff changeset
1 /*
26723
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
2 * Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
3 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
4 * This file is part of libass.
26723
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
5 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
6 * libass is free software; you can redistribute it and/or modify
26723
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
7 * it under the terms of the GNU General Public License as published by
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
9 * (at your option) any later version.
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
10 *
26738
588ce97b44f2 Speak of libass instead of MPlayer in the libass license headers.
diego
parents: 26723
diff changeset
11 * libass is distributed in the hope that it will be useful,
26723
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
14 * GNU General Public License for more details.
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
15 *
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
16 * 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
17 * with libass; if not, write to the Free Software Foundation, Inc.,
26723
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0f892cd714b2 Use standard license header.
diego
parents: 26582
diff changeset
19 */
20008
fa122b7c71c6 Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents: 19652
diff changeset
20
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25613
diff changeset
21 #ifndef LIBASS_ASS_H
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25613
diff changeset
22 #define LIBASS_ASS_H
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
23
26138
74055622161d Add missing header #includes to fix 'make checkheaders'.
diego
parents: 25897
diff changeset
24 #include <stdio.h>
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
25 #include <stdarg.h>
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
26 #include "ass_types.h"
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
27
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
28 #define LIBASS_VERSION 0x00908000
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
29
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
30 /*
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
31 * A linked list of images produced by an ass renderer.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
32 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
33 * These images have to be rendered in-order for the correct screen
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
34 * composition. The libass renderer clips these bitmaps to the frame size.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
35 * w/h can be zero, in this case the bitmap should not be rendered at all.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
36 * The last bitmap row is not guaranteed to be padded up to stride size,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
37 * e.g. in the worst case a bitmap has the size stride * (h - 1) + w.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
38 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
39 typedef struct ass_image {
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
40 int w, h; // Bitmap width/height
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
41 int stride; // Bitmap stride
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
42 unsigned char *bitmap; // 1bpp stride*h alpha buffer
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
43 // Note: the last row may not be padded to
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
44 // bitmap stride!
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
45 uint32_t color; // Bitmap color and alpha, RGBA
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
46 int dst_x, dst_y; // Bitmap placement inside the video frame
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
47
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
48 struct ass_image *next; // Next image, or NULL
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
49 } ASS_Image;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
50
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
51 /*
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
52 * Hinting type. (see ass_set_hinting below)
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
53 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
54 * FreeType's native hinter is still buggy sometimes and it is recommended
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
55 * to use the light autohinter, ASS_HINTING_LIGHT, instead. For best
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
56 * compatibility with problematic fonts, disable hinting.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
57 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
58 typedef enum {
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
59 ASS_HINTING_NONE = 0,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
60 ASS_HINTING_LIGHT,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
61 ASS_HINTING_NORMAL,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
62 ASS_HINTING_NATIVE
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
63 } ASS_Hinting;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
64
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
65 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
66 * \brief Initialize the library.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
67 * \return library handle or NULL if failed
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
68 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
69 ASS_Library *ass_library_init(void);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
70
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
71 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
72 * \brief Finalize the library
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
73 * \param priv library handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
74 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
75 void ass_library_done(ASS_Library *priv);
23134
1de2a46a0987 Add -ass-hinting option for setting font hinting method.
eugeni
parents: 21506
diff changeset
76
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
77 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
78 * \brief Set private font directory.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
79 * It is used for saving embedded fonts and also in font lookup.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
80 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
81 * \param priv library handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
82 * \param fonts_dir private directory for font extraction
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
83 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
84 void ass_set_fonts_dir(ASS_Library *priv, const char *fonts_dir);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
85
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
86 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
87 * \brief Whether fonts should be extracted from track data.
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
88 * \param priv library handle
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
89 * \param extract whether to extract fonts
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
90 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
91 void ass_set_extract_fonts(ASS_Library *priv, int extract);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
92
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
93 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
94 * \brief Register style overrides with a library instance.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
95 * The overrides should have the form [Style.]Param=Value, e.g.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
96 * SomeStyle.Font=Arial
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
97 * ScaledBorderAndShadow=yes
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
98 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
99 * \param priv library handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
100 * \param list NULL-terminated list of strings
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
101 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
102 void ass_set_style_overrides(ASS_Library *priv, char **list);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
103
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
104 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
105 * \brief Explicitly process style overrides for a track.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
106 * \param track track handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
107 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
108 void ass_process_force_style(ASS_Track *track);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
109
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
110 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
111 * \brief Register a callback for debug/info messages.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
112 * If a callback is registered, it is called for every message emitted by
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
113 * libass. The callback receives a format string and a list of arguments,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
114 * to be used for the printf family of functions. Additionally, a log level
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
115 * from 0 (FATAL errors) to 7 (verbose DEBUG) is passed. Usually, level 5
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
116 * should be used by applications.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
117 * If no callback is set, all messages level < 5 are printed to stderr,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
118 * prefixed with [ass].
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
119 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
120 * \param priv library handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
121 * \param msg_cb pointer to callback function
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
122 * \param data additional data, will be passed to callback
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
123 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
124 void ass_set_message_cb(ASS_Library *priv, void (*msg_cb)
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
125 (int level, const char *fmt, va_list args, void *data),
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
126 void *data);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
127
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
128 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
129 * \brief Initialize the renderer.
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
130 * \param priv library handle
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
131 * \return renderer handle or NULL if failed
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
132 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
133 ASS_Renderer *ass_renderer_init(ASS_Library *);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
134
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
135 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
136 * \brief Finalize the renderer.
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
137 * \param priv renderer handle
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
138 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
139 void ass_renderer_done(ASS_Renderer *priv);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
140
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
141 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
142 * \brief Set the frame size in pixels, including margins.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
143 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
144 * \param w width
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
145 * \param h height
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
146 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
147 void ass_set_frame_size(ASS_Renderer *priv, int w, int h);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
148
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
149 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
150 * \brief Set frame margins. These values may be negative if pan-and-scan
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
151 * is used.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
152 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
153 * \param t top margin
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
154 * \param b bottom margin
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
155 * \param l left margin
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
156 * \param r right margin
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
157 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
158 void ass_set_margins(ASS_Renderer *priv, int t, int b, int l, int r);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
159
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
160 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
161 * \brief Whether margins should be used for placing regular events.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
162 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
163 * \param use whether to use the margins
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
164 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
165 void ass_set_use_margins(ASS_Renderer *priv, int use);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
166
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
167 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
168 * \brief Set aspect ratio parameters.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
169 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
170 * \param dar display aspect ratio (DAR), prescaled for output PAR
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
171 * \param sar storage aspect ratio (SAR)
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
172 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
173 void ass_set_aspect_ratio(ASS_Renderer *priv, double dar, double sar);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
174
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
175 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
176 * \brief Set a fixed font scaling factor.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
177 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
178 * \param font_scale scaling factor, default is 1.0
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
179 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
180 void ass_set_font_scale(ASS_Renderer *priv, double font_scale);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
181
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
182 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
183 * \brief Set font hinting method.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
184 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
185 * \param ht hinting method
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
186 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
187 void ass_set_hinting(ASS_Renderer *priv, ASS_Hinting ht);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
188
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
189 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
190 * \brief Set line spacing. Will not be scaled with frame size.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
191 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
192 * \param line_spacing line spacing in pixels
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
193 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
194 void ass_set_line_spacing(ASS_Renderer *priv, double line_spacing);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
195
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
196 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
197 * \brief Set font lookup defaults.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
198 * \param default_font path to default font to use. Must be supplied if
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
199 * fontconfig is disabled or unavailable.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
200 * \param default_family fallback font family for fontconfig, or NULL
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
201 * \param fc whether to use fontconfig
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
202 * \param config path to fontconfig configuration file, or NULL. Only relevant
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
203 * if fontconfig is used.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
204 * \param update whether fontconfig cache should be built/updated now. Only
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
205 * relevant if fontconfig is used.
26582
62ac4f8062ee Remove libass dependency on global font_fontconfig variable.
eugeni
parents: 26138
diff changeset
206 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
207 void ass_set_fonts(ASS_Renderer *priv, const char *default_font,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
208 const char *default_family, int fc, const char *config,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
209 int update);
26582
62ac4f8062ee Remove libass dependency on global font_fontconfig variable.
eugeni
parents: 26138
diff changeset
210
62ac4f8062ee Remove libass dependency on global font_fontconfig variable.
eugeni
parents: 26138
diff changeset
211 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
212 * \brief Update/build font cache. This needs to be called if it was
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
213 * disabled when ass_set_fonts was set.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
214 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
215 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
216 * \return success
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
217 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
218 int ass_fonts_update(ASS_Renderer *priv);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
219
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
220 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
221 * \brief Set hard cache limits. Do not set, or set to zero, for reasonable
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
222 * defaults.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
223 *
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
224 * \param priv renderer handle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
225 * \param glyph_max maximum number of cached glyphs
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
226 * \param bitmap_max_size maximum bitmap cache size (in MB)
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
227 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
228 void ass_set_cache_limits(ASS_Renderer *priv, int glyph_max,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
229 int bitmap_max_size);
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
230
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
231 /**
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
232 * \brief Render a frame, producing a list of ASS_Image.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
233 * \param priv renderer handle
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
234 * \param track subtitle track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
235 * \param now video timestamp in milliseconds
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
236 * \param detect_change will be set to 1 if a change occured compared
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
237 * to the last invocation
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
238 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
239 ASS_Image *ass_render_frame(ASS_Renderer *priv, ASS_Track *track,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
240 long long now, int *detect_change);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
241
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
242
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
243 /*
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
244 * The following functions operate on track objects and do not need
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
245 * an ass_renderer
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
246 */
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
247
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
248 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
249 * \brief Allocate a new empty track object.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
250 * \param library handle
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
251 * \return pointer to empty track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
252 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
253 ASS_Track *ass_new_track(ASS_Library *);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
254
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
255 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
256 * \brief Deallocate track and all its child objects (styles and events).
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
257 * \param track track to deallocate
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
258 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
259 void ass_free_track(ASS_Track *track);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
260
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
261 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
262 * \brief Allocate new style.
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
263 * \param track track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
264 * \return newly allocated style id
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
265 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
266 int ass_alloc_style(ASS_Track *track);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
267
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
268 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
269 * \brief Allocate new event.
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
270 * \param track track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
271 * \return newly allocated event id
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
272 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
273 int ass_alloc_event(ASS_Track *track);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
274
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
275 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
276 * \brief Delete a style.
19474
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
277 * \param track track
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
278 * \param sid style id
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
279 * Deallocates style data. Does not modify track->n_styles.
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
280 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
281 void ass_free_style(ASS_Track *track, int sid);
19474
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
282
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
283 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
284 * \brief Delete an event.
19474
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
285 * \param track track
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
286 * \param eid event id
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
287 * Deallocates event data. Does not modify track->n_events.
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
288 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
289 void ass_free_event(ASS_Track *track, int eid);
19474
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
290
07209f48e527 Add public functions for removal of styles and events.
eugeni
parents: 18937
diff changeset
291 /**
27498
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
292 * \brief Parse a chunk of subtitle stream data.
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
293 * \param track track
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
294 * \param data string to parse
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
295 * \param size length of data
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
296 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
297 void ass_process_data(ASS_Track *track, char *data, int size);
27498
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
298
d895515b366d libass: add a new ass_process_data() to process demuxed subtitle packets
aurel
parents: 26738
diff changeset
299 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
300 * \brief Parse Codec Private section of subtitle stream.
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
301 * \param track target track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
302 * \param data string to parse
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
303 * \param size length of data
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
304 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
305 void ass_process_codec_private(ASS_Track *track, char *data, int size);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
306
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
307 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
308 * \brief Parse a chunk of subtitle stream data. In Matroska,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
309 * this contains exactly 1 event (or a commentary).
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
310 * \param track track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
311 * \param data string to parse
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
312 * \param size length of data
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
313 * \param timecode starting time of the event (milliseconds)
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
314 * \param duration duration of the event (milliseconds)
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
315 */
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
316 void ass_process_chunk(ASS_Track *track, char *data, int size,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
317 long long timecode, long long duration);
23424
7286d245bf33 Move code for reading a file and recoding it to utf-8 to a separate function.
eugeni
parents: 23134
diff changeset
318
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
319 /**
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
320 * \brief Read subtitles from file.
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
321 * \param library library handle
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
322 * \param fname file name
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
323 * \param codepage encoding (iconv format)
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
324 * \return newly allocated track
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
325 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
326 ASS_Track *ass_read_file(ASS_Library *library, char *fname,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
327 char *codepage);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
328
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
329 /**
20603
b0814eba65ec Implement loading subtitles from memory.
eugeni
parents: 20477
diff changeset
330 * \brief Read subtitles from memory.
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
331 * \param library library handle
20603
b0814eba65ec Implement loading subtitles from memory.
eugeni
parents: 20477
diff changeset
332 * \param buf pointer to subtitles text
b0814eba65ec Implement loading subtitles from memory.
eugeni
parents: 20477
diff changeset
333 * \param bufsize size of buffer
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
334 * \param codepage encoding (iconv format)
20603
b0814eba65ec Implement loading subtitles from memory.
eugeni
parents: 20477
diff changeset
335 * \return newly allocated track
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27499
diff changeset
336 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
337 ASS_Track *ass_read_memory(ASS_Library *library, char *buf,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
338 size_t bufsize, char *codepage);
20603
b0814eba65ec Implement loading subtitles from memory.
eugeni
parents: 20477
diff changeset
339 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
340 * \brief Read styles from file into already initialized track.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
341 * \param fname file name
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
342 * \param codepage encoding (iconv format)
19652
2c016957360a Add -ass-styles option. It allows to load styles from a file and use them
eugeni
parents: 19638
diff changeset
343 * \return 0 on success
2c016957360a Add -ass-styles option. It allows to load styles from a file and use them
eugeni
parents: 19638
diff changeset
344 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
345 int ass_read_styles(ASS_Track *track, char *fname, char *codepage);
19652
2c016957360a Add -ass-styles option. It allows to load styles from a file and use them
eugeni
parents: 19638
diff changeset
346
2c016957360a Add -ass-styles option. It allows to load styles from a file and use them
eugeni
parents: 19638
diff changeset
347 /**
21455
dd49d3712e6f Rename: ass_process_font -> ass_add_font.
eugeni
parents: 20603
diff changeset
348 * \brief Add a memory font.
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
349 * \param library library handle
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
350 * \param name attachment name
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
351 * \param data binary font data
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
352 * \param data_size data size
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
353 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
354 void ass_add_font(ASS_Library *library, char *name, char *data,
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
355 int data_size);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
356
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
357 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
358 * \brief Remove all fonts stored in an ass_library object.
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
359 * \param library library handle
25613
f00333e3facf Copy font data to ass_library instead of referencing demuxer-owned memory.
eugeni
parents: 25535
diff changeset
360 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
361 void ass_clear_fonts(ASS_Library *library);
25613
f00333e3facf Copy font data to ass_library instead of referencing demuxer-owned memory.
eugeni
parents: 25535
diff changeset
362
f00333e3facf Copy font data to ass_library instead of referencing demuxer-owned memory.
eugeni
parents: 25535
diff changeset
363 /**
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
364 * \brief Calculates timeshift from now to the start of some other subtitle
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
365 * event, depending on movement parameter.
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
366 * \param track subtitle track
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
367 * \param now current time in milliseconds
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
368 * \param movement how many events to skip from the one currently displayed
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
369 * +2 means "the one after the next", -1 means "previous"
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
370 * \return timeshift in milliseconds
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
371 */
30200
48d020c5ceca Update internal libass copy to commit 8db4a5
greg
parents: 30066
diff changeset
372 long long ass_step_sub(ASS_Track *track, long long now, int movement);
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
373
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25613
diff changeset
374 #endif /* LIBASS_ASS_H */