Mercurial > mplayer.hg
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 |
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 | 4 * Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
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 | 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 | 9 * it under the terms of the GNU General Public License as published by |
10 * the Free Software Foundation; either version 2 of the License, or | |
11 * (at your option) any later version. | |
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 | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 * GNU General Public License for more details. | |
17 * | |
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 | 20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
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 | 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 | 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 | 45 extern ass_library_t* ass_library; |
18937 | 46 extern int ass_enabled; |
47 extern float ass_font_scale; | |
48 extern float ass_line_spacing; | |
49 extern int ass_top_margin; | |
50 extern int ass_bottom_margin; | |
51 extern int extract_embedded_fonts; | |
19495 | 52 extern char **ass_force_style_list; |
19563 | 53 extern int ass_use_margins; |
19646 | 54 extern char* ass_color; |
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 | 58 |
20477 | 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 | 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 | 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 | 73 extern int ass_force_reload; |
74 ass_image_t* ass_mp_render_frame(ass_renderer_t *priv, ass_track_t* track, long long now, int* detect_change); | |
75 | |
25897
aaebaf255b23
Consistently give all libass multiple inclusion guards a LIBASS_ prefix.
diego
parents:
25813
diff
changeset
|
76 #endif /* LIBASS_MP_H */ |