annotate libvo/vo_cvidix.c @ 28992:947ef23ba798

Test if create_vdp_decoder() might succeed by calling it from config() with a small value for max_reference_frames. This does not make automatic recovery by using software decoder possible, but lets MPlayer fail more graciously on - actually existing - buggy hardware that does not support certain H264 widths when using hardware accelerated decoding (784, 864, 944, 1024, 1808, 1888 pixels on NVIDIA G98) and if the user tries to hardware-decode more samples at the same time than supported. Might break playback of H264 Intra-Only samples on hardware with very little video memory.
author cehoyos
date Sat, 21 Mar 2009 20:11:05 +0000
parents 7681eab10aea
children 0f1b5b68af32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
1 /*
28446
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
2 * VIDIX-accelerated overlay on (black) background
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
3 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
4 * should work on any OS
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
5 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
6 * copyright (C) 2003 Sascha Sommer
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
7 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
8 * This file is part of MPlayer.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
9 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
10 * MPlayer is free software; you can redistribute it and/or modify
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
11 * it under the terms of the GNU General Public License as published by
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
13 * (at your option) any later version.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
14 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
15 * MPlayer is distributed in the hope that it will be useful,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
18 * GNU General Public License for more details.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
19 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
20 * You should have received a copy of the GNU General Public License along
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
21 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 27768
diff changeset
23 */
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
24
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
25 #include <stdio.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
26 #include <stdlib.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
27 #include <string.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
28 #include <math.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
29 #include <errno.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
30
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
31 #include "config.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
32 #include "video_out.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
33 #include "video_out_internal.h"
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
34 #include "aspect.h"
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
35 #include "geometry.h"
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
36
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
37 #include "mp_msg.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
38
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
39 #include "vosub_vidix.h"
27079
df448e1248b2 remove now useless vidixlib.h file
ben
parents: 26755
diff changeset
40 #include "vidix/vidix.h"
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
41
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
42
25216
3aee342be929 Make vo info structs const
reimar
parents: 20110
diff changeset
43 static const vo_info_t info = {
12783
d4739143fe2e output wording
diego
parents: 12769
diff changeset
44 "console VIDIX",
11017
afdf982f0673 consolevidix -> cvidix
faust3
parents: 10979
diff changeset
45 "cvidix",
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
46 "Sascha Sommer",
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
47 ""
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
48 };
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
49
11017
afdf982f0673 consolevidix -> cvidix
faust3
parents: 10979
diff changeset
50 LIBVO_EXTERN(cvidix)
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
51
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
52 #define UNUSED(x) ((void)(x)) /* Removes warning about unused arguments */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
53
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
54 /* VIDIX related */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
55 static char *vidix_name;
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
56 static uint32_t swidth,sheight,sformat;
13360
1f09ac7b543a center the image when screenw & height are set
faust3
parents: 13355
diff changeset
57 /// center video only when screenw & height are set
1f09ac7b543a center the image when screenw & height are set
faust3
parents: 13355
diff changeset
58 static uint32_t center=0;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
59 static vidix_grkey_t gr_key;
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
60
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
61
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 16388
diff changeset
62 static uint32_t setup_vidix(void){
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
63 int x=vo_dx,y=vo_dy;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
64 aspect(&vo_dwidth,&vo_dheight,vo_fs ? A_ZOOM : A_NOZOOM);
13360
1f09ac7b543a center the image when screenw & height are set
faust3
parents: 13355
diff changeset
65 if(vo_fs || center){
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
66 if(vo_dwidth <= vo_screenwidth)x = (vo_screenwidth - vo_dwidth)/2;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
67 else x=0;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
68 if(vo_dheight <= vo_screenheight)y = (vo_screenheight - vo_dheight)/2;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
69 else y=0;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
70 }
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
71 if(vo_config_count)vidix_stop();
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
72 if(vidix_init(swidth, sheight, x, y, vo_dwidth, vo_dheight, sformat, 32, vo_screenwidth,vo_screenheight)){
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
73 mp_msg(MSGT_VO, MSGL_FATAL, "Can't setup VIDIX driver: %s\n", strerror(errno));
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
74 return 1;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
75 }
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
76 vidix_start();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
77 if(vidix_grkey_support()){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
78 vidix_grkey_get(&gr_key);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
79 gr_key.key_op = KEYS_PUT;
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
80 if (!vo_fs && !(vo_colorkey & 0xff000000)){
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
81 gr_key.ckey.op = CKEY_TRUE;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
82 gr_key.ckey.red = (vo_colorkey & 0x00FF0000) >> 16;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
83 gr_key.ckey.green = (vo_colorkey & 0x0000FF00) >> 8;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
84 gr_key.ckey.blue = vo_colorkey & 0x000000FF;
11158
85f4534d1edb Colorkeying can be disabled. Fbdev, svga and vesa vidix colorkeying support
alex
parents: 11019
diff changeset
85 }
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
86 else gr_key.ckey.op = CKEY_FALSE;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
87 vidix_grkey_set(&gr_key);
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
88 }
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
89 return 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
90 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
91
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
92 static int config(uint32_t width, uint32_t height, uint32_t d_width,uint32_t d_height, uint32_t flags, char *title, uint32_t format){
15212
05aa13cdf92f replace VO and VF numeric flags with #defined identifiers
henry
parents: 14041
diff changeset
93 vo_fs = flags & VOFLAG_FULLSCREEN;
13360
1f09ac7b543a center the image when screenw & height are set
faust3
parents: 13355
diff changeset
94 if(!vo_config_count){
14041
928b03a98062 10l initial patch by Oded Shimon <ods15 at ods15.dyndns.org>
faust3
parents: 13787
diff changeset
95 if(vo_screenwidth && vo_screenheight){
928b03a98062 10l initial patch by Oded Shimon <ods15 at ods15.dyndns.org>
faust3
parents: 13787
diff changeset
96 if(!vo_geometry)center=1;
928b03a98062 10l initial patch by Oded Shimon <ods15 at ods15.dyndns.org>
faust3
parents: 13787
diff changeset
97 }
13360
1f09ac7b543a center the image when screenw & height are set
faust3
parents: 13355
diff changeset
98 }
27768
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
99 if(!vo_screenwidth){
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
100 mp_msg(MSGT_VO, MSGL_WARN, "vo_cvidix: Screen width not set (see -screenw), assuming 640 pixels.\n");
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
101 vo_screenwidth = 640;
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
102 }
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
103 if(!vo_screenheight){
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
104 mp_msg(MSGT_VO, MSGL_WARN, "vo_cvidix: Screen height not set (see -screenh), assuming 480 pixels.\n");
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
105 vo_screenheight = 480;
ffd1bd7043e6 Improve error message when screen width and height are not set.
diego
parents: 27079
diff changeset
106 }
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
107 swidth = width;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
108 sheight = height;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
109 sformat = format;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
110 vo_dwidth=d_width;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
111 vo_dheight=d_height;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
112 aspect_save_orig(width,height);
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
113 aspect_save_prescale(d_width,d_height);
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
114 aspect_save_screenres(vo_screenwidth,vo_screenheight);
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
115 if(!vo_geometry){
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
116 vo_dx=0;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
117 vo_dy=0;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
118 }
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
119 else geometry(&vo_dx, &vo_dy, &vo_dwidth, &vo_dheight,vo_screenwidth,vo_screenheight);
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
120 return setup_vidix();
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
121 }
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
122
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
123 static void check_events(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
124 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
125
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
126 /* draw_osd, flip_page, draw_slice, draw_frame should be
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
127 overwritten with vidix functions (vosub_vidix.c) */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
128 static void draw_osd(void){
11019
69daa4fb97d9 consolevidix -> cvidix
faust3
parents: 11017
diff changeset
129 mp_msg(MSGT_VO, MSGL_FATAL, "vo_cvidix: error: didn't use vidix draw_osd!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
130 return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
131 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
132
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
133 static void flip_page(void){
11019
69daa4fb97d9 consolevidix -> cvidix
faust3
parents: 11017
diff changeset
134 mp_msg(MSGT_VO, MSGL_FATAL, "vo_cvidix: error: didn't use vidix flip_page!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
135 return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
136 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
137
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
138 static int draw_slice(uint8_t *src[], int stride[],int w, int h, int x, int y){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
139 UNUSED(src);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
140 UNUSED(stride);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
141 UNUSED(w);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
142 UNUSED(h);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
143 UNUSED(x);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
144 UNUSED(y);
11019
69daa4fb97d9 consolevidix -> cvidix
faust3
parents: 11017
diff changeset
145 mp_msg(MSGT_VO, MSGL_FATAL, "vo_cvidix: error: didn't use vidix draw_slice!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
146 return -1;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
147 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
148
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
149 static int draw_frame(uint8_t *src[]){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
150 UNUSED(src);
11019
69daa4fb97d9 consolevidix -> cvidix
faust3
parents: 11017
diff changeset
151 mp_msg(MSGT_VO, MSGL_FATAL, "vo_cvidix: error: didn't use vidix draw_frame!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
152 return -1;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
153 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
154
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
155 static int query_format(uint32_t format){
26755
46f0b4d34fa1 cosmetics: Remove useless parentheses from from return statements.
diego
parents: 25216
diff changeset
156 return vidix_query_fourcc(format);
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
157 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
158
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
159 static void uninit(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
160 if(!vo_config_count) return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
161 vidix_term();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
162 if(vidix_name){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
163 free(vidix_name);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
164 vidix_name = NULL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
165 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
166 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
167
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
168 static int preinit(const char *arg){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
169 if(arg)vidix_name = strdup(arg);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
170 else {
11462
2e367138d4b5 message expanded with hint to use -v option
gabucino
parents: 11232
diff changeset
171 mp_msg(MSGT_VO, MSGL_INFO, "vo_cvidix: No vidix driver name provided, probing available ones (-v option for details)!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
172 vidix_name = NULL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
173 }
11019
69daa4fb97d9 consolevidix -> cvidix
faust3
parents: 11017
diff changeset
174 if(vidix_preinit(vidix_name, &video_out_cvidix))return 1;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
175 return 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
176 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
177
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15212
diff changeset
178 static int control(uint32_t request, void *data, ...){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
179 switch (request) {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
180 case VOCTRL_QUERY_FORMAT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
181 return query_format(*((uint32_t*)data));
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
182 case VOCTRL_FULLSCREEN:
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
183 if(vo_fs)vo_fs=0;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
184 else vo_fs=1;
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
185 setup_vidix();
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
186 return VO_TRUE;
16388
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
187 case VOCTRL_SET_EQUALIZER:
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
188 {
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
189 va_list ap;
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
190 int value;
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
191 va_start(ap, data);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
192 value = va_arg(ap, int);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
193 va_end(ap);
20110
d27e00bb61b8 Remove spurious casts to int. Blessed by Reimar.
rathann
parents: 17566
diff changeset
194 return vidix_control(request, data, value);
16388
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
195 }
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
196 case VOCTRL_GET_EQUALIZER:
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
197 {
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
198 va_list ap;
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
199 int *value;
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
200 va_start(ap, data);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
201 value = va_arg(ap, int *);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
202 va_end(ap);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
203 return vidix_control(request, data, value);
9bce6b40def2 Support equalizer.
reimar
parents: 16171
diff changeset
204 }
11232
147a4c50214d added aspect && geometry support
faust3
parents: 11216
diff changeset
205 }
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
206 return vidix_control(request, data);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
207 }