annotate libass/ass_mp.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 1f2ecb6a3f3d
children 2b6a652aefbe
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 // -*- c-basic-offset: 8; indent-tabs-mode: t -*-
fa122b7c71c6 Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents: 19652
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: 19652
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: 19652
diff changeset
22
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25813
diff changeset
23 #ifndef LIBASS_MP_H
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25813
diff changeset
24 #define LIBASS_MP_H
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
25
19401
c0c3a2f8bb32 Add subdata to ass_track conversion for external subtitles.
eugeni
parents: 18937
diff changeset
26 #include "subreader.h"
30124
248d9886d0b0 Fix compilation if FreeType is not available, in particular do not try to build
reimar
parents: 30066
diff changeset
27 #if defined(CONFIG_ASS_INTERNAL) || !defined(CONFIG_ASS)
26138
74055622161d Add missing header #includes to fix 'make checkheaders'.
diego
parents: 25897
diff changeset
28 #include "ass.h"
30026
868442ec038e Make ass_mp.h use the system-libass headers when the internal one is disabled.
reimar
parents: 26738
diff changeset
29 #else
868442ec038e Make ass_mp.h use the system-libass headers when the internal one is disabled.
reimar
parents: 26738
diff changeset
30 #include <ass/ass.h>
868442ec038e Make ass_mp.h use the system-libass headers when the internal one is disabled.
reimar
parents: 26738
diff changeset
31 #endif
30197
871e061553bb Fix libass API checks
greg
parents: 30124
diff changeset
32 #if defined(LIBASS_VERSION) && LIBASS_VERSION >= 0x00907010
30065
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
33 #define ass_library_t ASS_Library
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
34 #define ass_track_t ASS_Track
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
35 #define ass_track_s ASS_Track
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
36 #define ass_renderer_t ASS_Renderer
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
37 #define ass_image_t ASS_Image
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
38 #define ass_style_t ASS_Style
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
39 #define ass_event_t ASS_Event
30066
a2e4fd61dc4a Revert renaming of process_force_style to restore compilation against
reimar
parents: 30065
diff changeset
40 #define process_force_style(t) ass_process_force_style(t)
a2e4fd61dc4a Revert renaming of process_force_style to restore compilation against
reimar
parents: 30065
diff changeset
41 #else
a2e4fd61dc4a Revert renaming of process_force_style to restore compilation against
reimar
parents: 30065
diff changeset
42 void process_force_style(ass_track_t* track);
30065
d5d20b8256b7 Some ugly hacks to make compiling against a newer external version of libass work.
reimar
parents: 30031
diff changeset
43 #endif
19401
c0c3a2f8bb32 Add subdata to ass_track conversion for external subtitles.
eugeni
parents: 18937
diff changeset
44
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
45 extern ass_library_t* ass_library;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
46 extern int ass_enabled;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
47 extern float ass_font_scale;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
48 extern float ass_line_spacing;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
49 extern int ass_top_margin;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
50 extern int ass_bottom_margin;
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
51 extern int extract_embedded_fonts;
19495
31ac2e1a5695 New cmdline option: -ass-force-style.
eugeni
parents: 19401
diff changeset
52 extern char **ass_force_style_list;
19563
661d6c8a4adb Add -(no)ass-use-margins option.
eugeni
parents: 19495
diff changeset
53 extern int ass_use_margins;
19646
e6cdf80eb941 ass-color and ass-border-color options.
eugeni
parents: 19643
diff changeset
54 extern char* ass_color;
e6cdf80eb941 ass-color and ass-border-color options.
eugeni
parents: 19643
diff changeset
55 extern char* ass_border_color;
19652
2c016957360a Add -ass-styles option. It allows to load styles from a file and use them
eugeni
parents: 19646
diff changeset
56 extern char* ass_styles_file;
23134
1de2a46a0987 Add -ass-hinting option for setting font hinting method.
eugeni
parents: 22886
diff changeset
57 extern int ass_hinting;
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents:
diff changeset
58
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
59 ass_track_t* ass_default_track(ass_library_t* library);
19643
f48d49b400cf Add support for rendering matroska plaintext subtitles with libass.
eugeni
parents: 19563
diff changeset
60 int ass_process_subtitle(ass_track_t* track, subtitle* sub);
20477
de4a66d99f41 Libass interface reworked:
eugeni
parents: 20446
diff changeset
61 ass_track_t* ass_read_subdata(ass_library_t* library, sub_data* subdata, double fps);
30698
1f2ecb6a3f3d Add const to ass_read_stream fname argument, the string is not modified.
reimar
parents: 30473
diff changeset
62 ass_track_t* ass_read_stream(ass_library_t* library, const char *fname, char *charset);
19401
c0c3a2f8bb32 Add subdata to ass_track conversion for external subtitles.
eugeni
parents: 18937
diff changeset
63
23134
1de2a46a0987 Add -ass-hinting option for setting font hinting method.
eugeni
parents: 22886
diff changeset
64 void ass_configure(ass_renderer_t* priv, int w, int h, int hinting);
20706
6ae01628975f Initialize fontconfig in VFCTRL_INIT_EOSD handler.
eugeni
parents: 20502
diff changeset
65 void ass_configure_fonts(ass_renderer_t* priv);
22886
71b3e04d0555 "()" to "(void)" function param list fixes
uau
parents: 21506
diff changeset
66 ass_library_t* ass_init(void);
20446
e8adc3778348 Split ass_configure() into several smaller functions.
eugeni
parents: 20008
diff changeset
67
21506
8174acbf0633 Speed up ASS subtitles display by detecting changes between two consecutive
eugeni
parents: 20706
diff changeset
68 typedef struct {
8174acbf0633 Speed up ASS subtitles display by detecting changes between two consecutive
eugeni
parents: 20706
diff changeset
69 ass_image_t* imgs;
8174acbf0633 Speed up ASS subtitles display by detecting changes between two consecutive
eugeni
parents: 20706
diff changeset
70 int changed;
8174acbf0633 Speed up ASS subtitles display by detecting changes between two consecutive
eugeni
parents: 20706
diff changeset
71 } mp_eosd_images_t;
8174acbf0633 Speed up ASS subtitles display by detecting changes between two consecutive
eugeni
parents: 20706
diff changeset
72
25813
ba7bd4f7e322 Add global ass_force_reload flag.
eugeni
parents: 25535
diff changeset
73 extern int ass_force_reload;
ba7bd4f7e322 Add global ass_force_reload flag.
eugeni
parents: 25535
diff changeset
74 ass_image_t* ass_mp_render_frame(ass_renderer_t *priv, ass_track_t* track, long long now, int* detect_change);
ba7bd4f7e322 Add global ass_force_reload flag.
eugeni
parents: 25535
diff changeset
75
25897
aaebaf255b23 Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents: 25813
diff changeset
76 #endif /* LIBASS_MP_H */