Mercurial > mplayer.hg
annotate libvo/vesa_lvo.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 | d97a607821f1 |
children | 0f1b5b68af32 |
rev | line source |
---|---|
2869 | 1 /* |
27509
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
2 * vo_vesa interface to Linux Video Overlay |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
3 * (partly based on vo_mga.c) |
2869 | 4 * |
27509
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
5 * copyright (C) 2001 Nick Kurshev <nickols_k@mail.ru> |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
6 * |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
7 * This file is part of MPlayer. |
2869 | 8 * |
27509
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
9 * MPlayer is free software; you can redistribute it and/or modify |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
12 * (at your option) any later version. |
2869 | 13 * |
27509
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
14 * MPlayer is distributed in the hope that it will be useful, |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
17 * GNU General Public License for more details. |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
18 * |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
19 * You should have received a copy of the GNU General Public License along |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
20 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
d97a607821f1
Replace casual GPL notices by proper license headers.
diego
parents:
25527
diff
changeset
|
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
2869 | 22 */ |
23 | |
24 #include <inttypes.h> | |
25 #include <sys/ioctl.h> | |
26 #include <unistd.h> | |
27 #include <fcntl.h> | |
28 #include <sys/mman.h> | |
29 #include <stdio.h> | |
30 #include <stdlib.h> | |
31 #include <string.h> | |
32 | |
3205 | 33 #include "config.h" |
17932 | 34 #include "mp_msg.h" |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
35 #include "help_mp.h" |
3205 | 36 |
2869 | 37 #include "vesa_lvo.h" |
19431
ac69ba536915
Explicitly include libmpcodecs/img_format.h and libvo/fastmemcpy.h.
diego
parents:
18234
diff
changeset
|
38 #include "libmpcodecs/img_format.h" |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
6817
diff
changeset
|
39 #include "drivers/mga_vid.h" /* <- should be changed to "linux/'something'.h" */ |
2869 | 40 #include "fastmemcpy.h" |
3205 | 41 #include "osd.h" |
3202 | 42 #include "video_out.h" |
25518 | 43 #include "sub.h" |
15212
05aa13cdf92f
replace VO and VF numeric flags with #defined identifiers
henry
parents:
13787
diff
changeset
|
44 #include "libmpcodecs/vfcap.h" |
3202 | 45 |
3165 | 46 #define WIDTH_ALIGN 32 /* should be 16 for rage:422 and 32 for rage:420 */ |
3266
ff90589b635f
Fixed single buffering problems and -vo mga compatibility by number of buffers
nick
parents:
3205
diff
changeset
|
47 #define NUM_FRAMES 10 |
3205 | 48 #define UNUSED(x) ((void)(x)) /**< Removes warning about unused arguments */ |
49 | |
2869 | 50 static uint8_t *frames[NUM_FRAMES]; |
51 | |
52 static int lvo_handler = -1; | |
53 static uint8_t *lvo_mem = NULL; | |
54 static uint8_t next_frame; | |
55 static mga_vid_config_t mga_vid_config; | |
2974
49199909c939
Ugly YV12 support on Radeon BES. (Only radeon_vid currently work with this stuff :( Sorry!)
nick
parents:
2971
diff
changeset
|
56 static unsigned image_bpp,image_height,image_width,src_format; |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
57 uint32_t vlvo_control(uint32_t request, void *data, ...); |
2869 | 58 |
59 #define PIXEL_SIZE() ((video_mode_info.BitsPerPixel+7)/8) | |
60 #define SCREEN_LINE_SIZE(pixel_size) (video_mode_info.XResolution*(pixel_size) ) | |
61 #define IMAGE_LINE_SIZE(pixel_size) (image_width*(pixel_size)) | |
62 | |
3202 | 63 extern vo_functions_t video_out_vesa; |
64 | |
2971 | 65 int vlvo_preinit(const char *drvname) |
66 { | |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
67 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported); |
4493 | 68 return -1; |
17932 | 69 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
70 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_preinit(%s) was called\n",drvname);} |
2971 | 71 lvo_handler = open(drvname,O_RDWR); |
72 if(lvo_handler == -1) | |
73 { | |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
74 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_VESA_CouldntOpen,drvname); |
2971 | 75 return -1; |
76 } | |
3202 | 77 /* we are able to tune up this stuff depend on fourcc format */ |
78 video_out_vesa.draw_slice=vlvo_draw_slice; | |
79 video_out_vesa.draw_frame=vlvo_draw_frame; | |
80 video_out_vesa.flip_page=vlvo_flip_page; | |
81 video_out_vesa.draw_osd=vlvo_draw_osd; | |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
82 video_out_vesa.control=vlvo_control; |
2971 | 83 return 0; |
84 } | |
85 | |
86 int vlvo_init(unsigned src_width,unsigned src_height, | |
2869 | 87 unsigned x_org,unsigned y_org,unsigned dst_width, |
88 unsigned dst_height,unsigned format,unsigned dest_bpp) | |
89 { | |
90 size_t i,awidth; | |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
91 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported); |
4493 | 92 return -1; |
17932 | 93 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
94 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_init() was called\n");} |
2869 | 95 image_width = src_width; |
96 image_height = src_height; | |
97 mga_vid_config.version=MGA_VID_VERSION; | |
2974
49199909c939
Ugly YV12 support on Radeon BES. (Only radeon_vid currently work with this stuff :( Sorry!)
nick
parents:
2971
diff
changeset
|
98 src_format = mga_vid_config.format=format; |
2869 | 99 awidth = (src_width + (WIDTH_ALIGN-1)) & ~(WIDTH_ALIGN-1); |
100 switch(format){ | |
101 case IMGFMT_YV12: | |
102 case IMGFMT_I420: | |
103 case IMGFMT_IYUV: | |
104 image_bpp=16; | |
105 mga_vid_config.frame_size = awidth*src_height+(awidth*src_height)/2; | |
106 break; | |
107 case IMGFMT_YUY2: | |
108 case IMGFMT_UYVY: | |
109 image_bpp=16; | |
110 mga_vid_config.frame_size = awidth*src_height*2; | |
111 break; | |
112 case IMGFMT_RGB15: | |
113 case IMGFMT_BGR15: | |
114 case IMGFMT_RGB16: | |
115 case IMGFMT_BGR16: | |
116 image_bpp=16; | |
117 mga_vid_config.frame_size = awidth*src_height*2; | |
118 break; | |
119 case IMGFMT_RGB24: | |
120 case IMGFMT_BGR24: | |
121 image_bpp=24; | |
122 mga_vid_config.frame_size = awidth*src_height*3; | |
123 break; | |
124 case IMGFMT_RGB32: | |
125 case IMGFMT_BGR32: | |
126 image_bpp=32; | |
127 mga_vid_config.frame_size = awidth*src_height*4; | |
128 break; | |
129 default: | |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
130 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_VESA_InvalidOutputFormat,vo_format_name(format),format); |
2869 | 131 return -1; |
132 } | |
133 mga_vid_config.colkey_on=0; | |
134 mga_vid_config.src_width = src_width; | |
135 mga_vid_config.src_height= src_height; | |
136 mga_vid_config.dest_width = dst_width; | |
137 mga_vid_config.dest_height= dst_height; | |
138 mga_vid_config.x_org=x_org; | |
139 mga_vid_config.y_org=y_org; | |
140 mga_vid_config.num_frames=NUM_FRAMES; | |
141 if (ioctl(lvo_handler,MGA_VID_CONFIG,&mga_vid_config)) | |
142 { | |
2971 | 143 perror("vesa_lvo: Error in mga_vid_config ioctl()"); |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
144 mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_VESA_IncompatibleDriverVersion); |
2869 | 145 return -1; |
146 } | |
147 ioctl(lvo_handler,MGA_VID_ON,0); | |
148 | |
149 frames[0] = (char*)mmap(0,mga_vid_config.frame_size*mga_vid_config.num_frames,PROT_WRITE,MAP_SHARED,lvo_handler,0); | |
150 for(i=1;i<NUM_FRAMES;i++) | |
151 frames[i] = frames[i-1] + mga_vid_config.frame_size; | |
152 next_frame = 0; | |
153 lvo_mem = frames[next_frame]; | |
154 | |
155 /*clear the buffer*/ | |
156 memset(frames[0],0x80,mga_vid_config.frame_size*mga_vid_config.num_frames); | |
157 return 0; | |
158 } | |
159 | |
160 void vlvo_term( void ) | |
161 { | |
17932 | 162 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
163 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_term() was called\n");} |
2869 | 164 ioctl( lvo_handler,MGA_VID_OFF,0 ); |
165 munmap(frames[0],mga_vid_config.frame_size*mga_vid_config.num_frames); | |
166 if(lvo_handler != -1) close(lvo_handler); | |
167 } | |
168 | |
3165 | 169 uint32_t vlvo_draw_slice_420(uint8_t *image[], int stride[], int w,int h,int x,int y) |
2869 | 170 { |
171 uint8_t *src; | |
172 uint8_t *dest; | |
3020 | 173 uint32_t bespitch,bespitch2; |
2869 | 174 int i; |
175 | |
176 bespitch = (mga_vid_config.src_width + (WIDTH_ALIGN-1)) & ~(WIDTH_ALIGN-1); | |
177 bespitch2 = bespitch/2; | |
178 | |
179 dest = lvo_mem + bespitch * y + x; | |
180 src = image[0]; | |
181 for(i=0;i<h;i++){ | |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
19431
diff
changeset
|
182 fast_memcpy(dest,src,w); |
2869 | 183 src+=stride[0]; |
184 dest += bespitch; | |
185 } | |
186 | |
187 w/=2;h/=2;x/=2;y/=2; | |
188 | |
189 dest = lvo_mem + bespitch*mga_vid_config.src_height + bespitch2 * y + x; | |
190 src = image[1]; | |
191 for(i=0;i<h;i++){ | |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
19431
diff
changeset
|
192 fast_memcpy(dest,src,w); |
2869 | 193 src+=stride[1]; |
194 dest += bespitch2; | |
195 } | |
196 | |
197 dest = lvo_mem + bespitch*mga_vid_config.src_height | |
198 + bespitch*mga_vid_config.src_height / 4 | |
199 + bespitch2 * y + x; | |
200 src = image[2]; | |
201 for(i=0;i<h;i++){ | |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
19431
diff
changeset
|
202 fast_memcpy(dest,src,w); |
2869 | 203 src+=stride[2]; |
204 dest += bespitch2; | |
205 } | |
3020 | 206 return 0; |
207 } | |
208 | |
209 uint32_t vlvo_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y) | |
210 { | |
17932 | 211 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
212 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_draw_slice() was called\n");} |
3165 | 213 if(src_format == IMGFMT_YV12 || src_format == IMGFMT_I420 || src_format == IMGFMT_IYUV) |
3202 | 214 vlvo_draw_slice_420(image,stride,w,h,x,y); |
2974
49199909c939
Ugly YV12 support on Radeon BES. (Only radeon_vid currently work with this stuff :( Sorry!)
nick
parents:
2971
diff
changeset
|
215 else |
3202 | 216 { |
217 uint8_t *dst; | |
218 uint8_t bytpp; | |
219 bytpp = (image_bpp+7)/8; | |
220 dst = lvo_mem + (image_width * y + x)*bytpp; | |
221 /* vlvo_draw_slice_422(image,stride,w,h,x,y); just for speed */ | |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
19431
diff
changeset
|
222 fast_memcpy(dst,image[0],mga_vid_config.frame_size); |
3202 | 223 } |
2924 | 224 return 0; |
2869 | 225 } |
226 | |
3017 | 227 uint32_t vlvo_draw_frame(uint8_t *image[]) |
2869 | 228 { |
3017 | 229 /* Note it's very strange but sometime for YUY2 draw_frame is called */ |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
19431
diff
changeset
|
230 fast_memcpy(lvo_mem,image[0],mga_vid_config.frame_size); |
17932 | 231 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
232 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_flip_page() was called\n");} |
3017 | 233 return 0; |
2869 | 234 } |
235 | |
236 void vlvo_flip_page(void) | |
237 { | |
17932 | 238 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
239 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: vlvo_draw_osd() was called\n");} |
3266
ff90589b635f
Fixed single buffering problems and -vo mga compatibility by number of buffers
nick
parents:
3205
diff
changeset
|
240 if(vo_doublebuffering) |
ff90589b635f
Fixed single buffering problems and -vo mga compatibility by number of buffers
nick
parents:
3205
diff
changeset
|
241 { |
2869 | 242 ioctl(lvo_handler,MGA_VID_FSEL,&next_frame); |
243 next_frame=(next_frame+1)%mga_vid_config.num_frames; | |
244 lvo_mem=frames[next_frame]; | |
3266
ff90589b635f
Fixed single buffering problems and -vo mga compatibility by number of buffers
nick
parents:
3205
diff
changeset
|
245 } |
2869 | 246 } |
247 | |
25519 | 248 #if 0 |
3205 | 249 static void draw_alpha_null(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride) |
250 { | |
251 UNUSED(x0); | |
252 UNUSED(y0); | |
253 UNUSED(w); | |
254 UNUSED(h); | |
255 UNUSED(src); | |
256 UNUSED(srca); | |
257 UNUSED(stride); | |
258 } | |
259 | |
260 static void draw_alpha(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride) | |
261 { | |
262 uint32_t bespitch = /*(*/mga_vid_config.src_width;// + 15) & ~15; | |
263 switch(mga_vid_config.format){ | |
264 case IMGFMT_BGR15: | |
265 case IMGFMT_RGB15: | |
266 vo_draw_alpha_rgb15(w,h,src,srca,stride,lvo_mem+2*(y0*bespitch+x0),2*bespitch); | |
267 break; | |
268 case IMGFMT_BGR16: | |
269 case IMGFMT_RGB16: | |
270 vo_draw_alpha_rgb16(w,h,src,srca,stride,lvo_mem+2*(y0*bespitch+x0),2*bespitch); | |
271 break; | |
272 case IMGFMT_BGR24: | |
273 case IMGFMT_RGB24: | |
274 vo_draw_alpha_rgb24(w,h,src,srca,stride,lvo_mem+3*(y0*bespitch+x0),3*bespitch); | |
275 break; | |
276 case IMGFMT_BGR32: | |
277 case IMGFMT_RGB32: | |
278 vo_draw_alpha_rgb32(w,h,src,srca,stride,lvo_mem+4*(y0*bespitch+x0),4*bespitch); | |
279 break; | |
280 case IMGFMT_YV12: | |
281 case IMGFMT_IYUV: | |
282 case IMGFMT_I420: | |
283 vo_draw_alpha_yv12(w,h,src,srca,stride,lvo_mem+bespitch*y0+x0,bespitch); | |
284 break; | |
285 case IMGFMT_YUY2: | |
286 vo_draw_alpha_yuy2(w,h,src,srca,stride,lvo_mem+2*(bespitch*y0+x0),bespitch); | |
287 break; | |
288 case IMGFMT_UYVY: | |
289 vo_draw_alpha_yuy2(w,h,src,srca,stride,lvo_mem+2*(bespitch*y0+x0)+1,bespitch); | |
290 break; | |
291 default: | |
292 draw_alpha_null(x0,y0,w,h,src,srca,stride); | |
293 } | |
294 } | |
25519 | 295 #endif |
3205 | 296 |
2869 | 297 void vlvo_draw_osd(void) |
298 { | |
17932 | 299 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
300 mp_msg(MSGT_VO,MSGL_DBG2,"vesa_lvo: vlvo_draw_osd() was called\n"); } |
2869 | 301 /* TODO: hw support */ |
3205 | 302 #if 0 |
303 /* disable this stuff until new fbvid.h interface will be implemented | |
304 because in different fourcc radeon_vid and rage128_vid have different | |
305 width alignment */ | |
306 vo_draw_text(mga_vid_config.src_width,mga_vid_config.src_height,draw_alpha); | |
307 #endif | |
2869 | 308 } |
309 | |
310 uint32_t vlvo_query_info(uint32_t format) | |
311 { | |
17932 | 312 if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
17932
diff
changeset
|
313 mp_msg(MSGT_VO,MSGL_DBG2, "vesa_lvo: query_format was called: %x (%s)\n",format,vo_format_name(format)); } |
15212
05aa13cdf92f
replace VO and VF numeric flags with #defined identifiers
henry
parents:
13787
diff
changeset
|
314 return VFCAP_CSP_SUPPORTED; |
2869 | 315 } |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
316 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
317 uint32_t vlvo_control(uint32_t request, void *data, ...) |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
318 { |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
319 switch (request) { |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
320 case VOCTRL_QUERY_FORMAT: |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
321 return vlvo_query_info(*((uint32_t*)data)); |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
322 } |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
323 return VO_NOTIMPL; |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4493
diff
changeset
|
324 } |