Mercurial > mplayer.hg
annotate sub/sub.h @ 33040:a6be6a134ac0
Fix XVMC decoding (avcodec_open would fail if thread_count is set)
and simplify code a bit in the process.
author | reimar |
---|---|
date | Sun, 27 Mar 2011 13:09:27 +0000 |
parents | 732cd2afae10 |
children |
rev | line source |
---|---|
32467 | 1 /* |
2 * This file is part of MPlayer. | |
3 * | |
4 * MPlayer is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * MPlayer is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License along | |
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 */ | |
18 | |
19 #ifndef MPLAYER_SUB_H | |
20 #define MPLAYER_SUB_H | |
21 | |
22 typedef struct mp_osd_bbox_s { | |
23 int x1,y1,x2,y2; | |
24 } mp_osd_bbox_t; | |
25 | |
26 #define OSDTYPE_OSD 1 | |
27 #define OSDTYPE_SUBTITLE 2 | |
28 #define OSDTYPE_PROGBAR 3 | |
29 #define OSDTYPE_SPU 4 | |
30 #define OSDTYPE_DVDNAV 5 | |
31 #define OSDTYPE_TELETEXT 6 | |
32 | |
33 #define OSDFLAG_VISIBLE 1 | |
34 #define OSDFLAG_CHANGED 2 | |
35 #define OSDFLAG_BBOX 4 | |
36 #define OSDFLAG_OLD_BBOX 8 | |
37 #define OSDFLAG_FORCE_UPDATE 16 | |
38 | |
39 #define MAX_UCS 1600 | |
40 #define MAX_UCSLINES 16 | |
41 | |
42 typedef struct mp_osd_obj_s { | |
43 struct mp_osd_obj_s* next; | |
44 unsigned char type; | |
45 unsigned char alignment; // 2 bits: x;y percentages, 2 bits: x;y relative to parent; 2 bits: alignment left/right/center | |
46 unsigned short flags; | |
47 int x,y; | |
48 int dxs,dys; | |
49 mp_osd_bbox_t bbox; // bounding box | |
50 mp_osd_bbox_t old_bbox; // the renderer will save bbox here | |
51 union { | |
52 struct { | |
53 void* sub; // value of vo_sub at last update | |
54 int utbl[MAX_UCS+1]; // subtitle text | |
55 int xtbl[MAX_UCSLINES]; // x positions | |
56 int lines; // no. of lines | |
57 } subtitle; | |
58 struct { | |
59 int elems; | |
60 } progbar; | |
61 } params; | |
62 int stride; | |
63 | |
64 int allocated; | |
65 unsigned char *alpha_buffer; | |
66 unsigned char *bitmap_buffer; | |
67 } mp_osd_obj_t; | |
68 | |
69 | |
70 #include "subreader.h" | |
71 | |
72 extern sub_data* subdata; //currently used subtitles | |
73 extern subtitle* vo_sub; | |
74 | |
75 extern unsigned char* vo_osd_text; | |
76 | |
77 extern void* vo_osd_teletext_page; | |
78 extern int vo_osd_teletext_half; | |
79 extern int vo_osd_teletext_mode; | |
80 extern int vo_osd_teletext_format; | |
81 | |
82 extern int vo_osd_progbar_type; | |
83 extern int vo_osd_progbar_value; // 0..255 | |
84 | |
85 extern mp_osd_obj_t *vo_osd_list; | |
86 | |
87 extern void* vo_spudec; | |
88 extern void* vo_vobsub; | |
32724
732cd2afae10
Replace hacky vobsub loading with a new clean one.
cboesch
parents:
32467
diff
changeset
|
89 extern char *vobsub_name; |
32467 | 90 |
91 #define OSD_PLAY 0x01 | |
92 #define OSD_PAUSE 0x02 | |
93 #define OSD_STOP 0x03 | |
94 #define OSD_REW 0x04 | |
95 #define OSD_FFW 0x05 | |
96 #define OSD_CLOCK 0x06 | |
97 #define OSD_CONTRAST 0x07 | |
98 #define OSD_SATURATION 0x08 | |
99 #define OSD_VOLUME 0x09 | |
100 #define OSD_BRIGHTNESS 0x0A | |
101 #define OSD_HUE 0x0B | |
102 #define OSD_BALANCE 0x0C | |
103 #define OSD_PANSCAN 0x50 | |
104 | |
105 #define OSD_PB_START 0x10 | |
106 #define OSD_PB_0 0x11 | |
107 #define OSD_PB_END 0x12 | |
108 #define OSD_PB_1 0x13 | |
109 | |
110 /* now in textform */ | |
111 extern char * sub_osd_names[]; | |
112 extern char * sub_osd_names_short[]; | |
113 | |
114 extern int sub_unicode; | |
115 extern int sub_utf8; | |
116 | |
117 extern int sub_pos; | |
118 extern int sub_width_p; | |
119 extern int sub_alignment; | |
120 extern int sub_justify; | |
121 extern int sub_visibility; | |
122 extern int sub_bg_color; /* subtitles background color */ | |
123 extern int sub_bg_alpha; | |
124 extern int spu_alignment; | |
125 extern int spu_aamode; | |
126 extern float spu_gaussvar; | |
127 | |
128 void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); | |
129 void vo_draw_text_ext(int dxs, int dys, int left_border, int top_border, | |
130 int right_border, int bottom_border, int orig_w, int orig_h, | |
131 void (*draw_alpha)(int x0, int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); | |
132 void vo_remove_text(int dxs,int dys,void (*remove)(int x0,int y0, int w,int h)); | |
133 | |
134 void vo_init_osd(void); | |
135 int vo_update_osd(int dxs,int dys); | |
136 int vo_osd_changed(int new_value); | |
137 int vo_osd_check_range_update(int,int,int,int); | |
138 void free_osd_list(void); | |
139 | |
140 extern int vo_osd_changed_flag; | |
141 | |
142 unsigned utf8_get_char(const char **str); | |
143 | |
144 #ifdef CONFIG_DVDNAV | |
145 #include <inttypes.h> | |
146 void osd_set_nav_box (uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey); | |
147 #endif | |
148 | |
149 #endif /* MPLAYER_SUB_H */ |