Mercurial > mplayer.hg
annotate vidix/pm3_vid.c @ 36838:7df9dd22f234
Don't set win32 as audio driver if none has been given.
Select from the list of audio drivers instead.
Having win32 as selected item in the combo box although
this isn't used by MPlayer by default is confusing as well.
Besides that, there seem to be issues with this driver
when changing from or to it during playback.
author | ib |
---|---|
date | Tue, 25 Feb 2014 13:16:35 +0000 |
parents | 945eab072c9d |
children | 3c5c93a30fb7 |
rev | line source |
---|---|
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
1 /* |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
2 * VIDIX driver for 3DLabs Glint R3 and Permedia 3 chipsets. |
23734 | 3 * Copyright (C) 2002 Måns Rullgård |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
4 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
5 * This file is part of MPlayer. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
6 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
7 * MPlayer is free software; you can redistribute it and/or modify |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
10 * (at your option) any later version. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
11 * |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
12 * MPlayer is distributed in the hope that it will be useful, |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
15 * GNU General Public License for more details. |
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
16 * |
26719 | 17 * You should have received a copy of the GNU General Public License along |
18 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
23046
82216ef041e0
updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents:
22905
diff
changeset
|
20 */ |
22850 | 21 |
22 #include <errno.h> | |
23 #include <stdio.h> | |
24 #include <stdlib.h> | |
25 #include <string.h> | |
26 #include <inttypes.h> | |
27 #include <unistd.h> | |
28 | |
26203 | 29 #include "config.h" |
22850 | 30 #include "vidix.h" |
31 #include "fourcc.h" | |
22901 | 32 #include "dha.h" |
22900
a9e111b88c4a
merged libdha and libvidix, moved all files from libdha to vidix directory
ben
parents:
22869
diff
changeset
|
33 #include "pci_ids.h" |
a9e111b88c4a
merged libdha and libvidix, moved all files from libdha to vidix directory
ben
parents:
22869
diff
changeset
|
34 #include "pci_names.h" |
22850 | 35 |
36 #include "pm3_regs.h" | |
37 | |
38 #if 0 | |
39 #define TRACE_ENTER() fprintf(stderr, "%s: enter\n", __FUNCTION__) | |
40 #define TRACE_EXIT() fprintf(stderr, "%s: exit\n", __FUNCTION__) | |
41 #else | |
42 #define TRACE_ENTER() | |
43 #define TRACE_EXIT() | |
44 #endif | |
45 | |
23056 | 46 static pciinfo_t pci_info; |
22850 | 47 |
48 void *pm3_reg_base; | |
23056 | 49 static void *pm3_mem; |
22850 | 50 |
51 static vidix_capability_t pm3_cap = | |
52 { | |
53 "3DLabs GLINT R3/Permedia3 driver", | |
23734 | 54 "Måns Rullgård <mru@users.sf.net>", |
22850 | 55 TYPE_OUTPUT, |
56 { 0, 0, 0, 0 }, | |
57 2048, | |
58 2048, | |
59 4, | |
60 4, | |
61 -1, | |
62 FLAG_UPSCALER|FLAG_DOWNSCALER, | |
63 VENDOR_3DLABS, | |
64 -1, | |
65 { 0, 0, 0, 0 } | |
66 }; | |
67 | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27079
diff
changeset
|
68 static unsigned short pm3_card_ids[] = |
22850 | 69 { |
70 DEVICE_3DLABS_GLINT_R3 | |
71 }; | |
72 | |
73 static int find_chip(unsigned chip_id) | |
74 { | |
75 unsigned i; | |
76 for(i = 0;i < sizeof(pm3_card_ids)/sizeof(unsigned short);i++) | |
77 { | |
78 if(chip_id == pm3_card_ids[i]) return i; | |
79 } | |
80 return -1; | |
81 } | |
82 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
83 static int pm3_probe(int verbose, int force) |
22850 | 84 { |
85 pciinfo_t lst[MAX_PCI_DEVICES]; | |
86 unsigned i,num_pci; | |
87 int err; | |
88 | |
89 err = pci_scan(lst,&num_pci); | |
90 if(err) | |
91 { | |
92 printf("[pm3] Error occurred during pci scan: %s\n",strerror(err)); | |
93 return err; | |
94 } | |
95 else | |
96 { | |
97 err = ENXIO; | |
98 for(i=0; i < num_pci; i++) | |
99 { | |
100 if(lst[i].vendor == VENDOR_3DLABS) | |
101 { | |
102 int idx; | |
103 const char *dname; | |
104 idx = find_chip(lst[i].device); | |
105 if(idx == -1) | |
106 continue; | |
107 dname = pci_device_name(VENDOR_3DLABS, lst[i].device); | |
108 dname = dname ? dname : "Unknown chip"; | |
109 printf("[pm3] Found chip: %s\n", dname); | |
23167
2ab3eac7f6da
synced with upstream vidix, prevented some drivers to work on some configs/archs
ben
parents:
23060
diff
changeset
|
110 #if 0 |
22850 | 111 if ((lst[i].command & PCI_COMMAND_IO) == 0) |
112 { | |
113 printf("[pm3] Device is disabled, ignoring\n"); | |
114 continue; | |
115 } | |
23167
2ab3eac7f6da
synced with upstream vidix, prevented some drivers to work on some configs/archs
ben
parents:
23060
diff
changeset
|
116 #endif |
22850 | 117 pm3_cap.device_id = lst[i].device; |
118 err = 0; | |
119 memcpy(&pci_info, &lst[i], sizeof(pciinfo_t)); | |
120 break; | |
121 } | |
122 } | |
123 } | |
124 if(err && verbose) printf("[pm3] Can't find chip\n"); | |
125 return err; | |
126 } | |
127 | |
128 #define PRINT_REG(reg) \ | |
129 { \ | |
130 long _foo = READ_REG(reg); \ | |
131 printf("[pm3] " #reg " (%x) = %#lx (%li)\n", reg, _foo, _foo); \ | |
132 } | |
133 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
134 static int pm3_init(void) |
22850 | 135 { |
136 pm3_reg_base = map_phys_mem(pci_info.base0, 0x20000); | |
137 pm3_mem = map_phys_mem(pci_info.base2, 0x2000000); | |
138 return 0; | |
139 } | |
140 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
141 static void pm3_destroy(void) |
22850 | 142 { |
143 unmap_phys_mem(pm3_reg_base, 0x20000); | |
144 unmap_phys_mem(pm3_mem, 0x2000000); | |
145 } | |
146 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
147 static int pm3_get_caps(vidix_capability_t *to) |
22850 | 148 { |
149 memcpy(to, &pm3_cap, sizeof(vidix_capability_t)); | |
150 return 0; | |
151 } | |
152 | |
153 static int is_supported_fourcc(uint32_t fourcc) | |
154 { | |
155 switch(fourcc){ | |
156 case IMGFMT_YUY2: | |
157 case IMGFMT_UYVY: | |
158 return 1; | |
159 default: | |
160 return 0; | |
161 } | |
162 } | |
163 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
164 static int pm3_query_fourcc(vidix_fourcc_t *to) |
22850 | 165 { |
166 if(is_supported_fourcc(to->fourcc)) | |
167 { | |
23060 | 168 to->depth = VID_DEPTH_ALL; |
22850 | 169 to->flags = VID_CAP_EXPAND | VID_CAP_SHRINK | VID_CAP_COLORKEY; |
170 return 0; | |
171 } | |
172 return ENOSYS; | |
173 } | |
174 | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27079
diff
changeset
|
175 #define FORMAT_RGB8888 PM3VideoOverlayMode_COLORFORMAT_RGB8888 |
22850 | 176 #define FORMAT_RGB4444 PM3VideoOverlayMode_COLORFORMAT_RGB4444 |
177 #define FORMAT_RGB5551 PM3VideoOverlayMode_COLORFORMAT_RGB5551 | |
178 #define FORMAT_RGB565 PM3VideoOverlayMode_COLORFORMAT_RGB565 | |
179 #define FORMAT_RGB332 PM3VideoOverlayMode_COLORFORMAT_RGB332 | |
180 #define FORMAT_BGR8888 PM3VideoOverlayMode_COLORFORMAT_BGR8888 | |
181 #define FORMAT_BGR4444 PM3VideoOverlayMode_COLORFORMAT_BGR4444 | |
182 #define FORMAT_BGR5551 PM3VideoOverlayMode_COLORFORMAT_BGR5551 | |
183 #define FORMAT_BGR565 PM3VideoOverlayMode_COLORFORMAT_BGR565 | |
184 #define FORMAT_BGR332 PM3VideoOverlayMode_COLORFORMAT_BGR332 | |
185 #define FORMAT_CI8 PM3VideoOverlayMode_COLORFORMAT_CI8 | |
186 #define FORMAT_VUY444 PM3VideoOverlayMode_COLORFORMAT_VUY444 | |
187 #define FORMAT_YUV444 PM3VideoOverlayMode_COLORFORMAT_YUV444 | |
188 #define FORMAT_VUY422 PM3VideoOverlayMode_COLORFORMAT_VUY422 | |
189 #define FORMAT_YUV422 PM3VideoOverlayMode_COLORFORMAT_YUV422 | |
190 | |
191 /* Notice, have to check that we don't overflow the deltas here ... */ | |
192 static void | |
193 compute_scale_factor( | |
194 short* src_w, short* dst_w, | |
22869 | 195 uint32_t* shrink_delta, uint32_t* zoom_delta) |
22850 | 196 { |
197 /* NOTE: If we don't return reasonable values here then the video | |
198 * unit can potential shut off and won't display an image until re-enabled. | |
199 * Seems as though the zoom_delta is o.k, and I've not had the problem. | |
200 * The 'shrink_delta' is prone to this the most - FIXME ! */ | |
201 | |
202 if (*src_w >= *dst_w) { | |
203 *src_w &= ~0x3; | |
204 *dst_w &= ~0x3; | |
205 *shrink_delta = (((*src_w << 16) / *dst_w) + 0x0f) & 0x0ffffff0; | |
206 *zoom_delta = 1<<16; | |
207 if ( ((*shrink_delta * *dst_w) >> 16) & 0x03 ) | |
208 *shrink_delta += 0x10; | |
209 } else { | |
210 *src_w &= ~0x3; | |
211 *dst_w &= ~0x3; | |
212 *zoom_delta = (((*src_w << 16) / *dst_w) + 0x0f) & 0x0001fff0; | |
213 *shrink_delta = 1<<16; | |
214 if ( ((*zoom_delta * *dst_w) >> 16) & 0x03 ) | |
215 *zoom_delta += 0x10; | |
216 } | |
217 } | |
218 | |
219 static int frames[VID_PLAY_MAXFRAMES]; | |
220 | |
221 static long overlay_mode, overlay_control; | |
222 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
223 static int pm3_config_playback(vidix_playback_t *info) |
22850 | 224 { |
22869 | 225 uint32_t shrink, zoom; |
22850 | 226 short src_w, drw_w; |
227 short src_h, drw_h; | |
228 long base0; | |
229 int pitch; | |
230 int format; | |
231 unsigned int i; | |
232 | |
233 TRACE_ENTER(); | |
234 | |
235 if(!is_supported_fourcc(info->fourcc)) | |
236 return -1; | |
237 | |
238 switch(info->fourcc){ | |
239 case IMGFMT_YUY2: | |
240 format = FORMAT_YUV422; | |
241 break; | |
242 case IMGFMT_UYVY: | |
243 format = FORMAT_VUY422; | |
244 break; | |
245 default: | |
246 return -1; | |
247 } | |
248 | |
249 src_w = info->src.w; | |
250 src_h = info->src.h; | |
251 | |
252 drw_w = info->dest.w; | |
253 drw_h = info->dest.h; | |
254 | |
255 pitch = src_w; | |
256 | |
257 /* Assume we have 16 MB to play with */ | |
258 info->num_frames = 0x1000000 / (pitch * src_h * 2); | |
259 if(info->num_frames > VID_PLAY_MAXFRAMES) | |
260 info->num_frames = VID_PLAY_MAXFRAMES; | |
261 | |
262 /* Start at 16 MB. Let's hope it's not in use. */ | |
263 base0 = 0x1000000; | |
264 info->dga_addr = pm3_mem + base0; | |
265 | |
266 info->dest.pitch.y = 2; | |
267 info->dest.pitch.u = 0; | |
268 info->dest.pitch.v = 0; | |
269 info->offset.y = 0; | |
270 info->offset.v = 0; | |
271 info->offset.u = 0; | |
272 info->frame_size = pitch * src_h * 2; | |
273 for(i = 0; i < info->num_frames; i++){ | |
274 info->offsets[i] = info->frame_size * i; | |
275 frames[i] = (base0 + info->offsets[i]) >> 1; | |
276 } | |
277 | |
278 compute_scale_factor(&src_w, &drw_w, &shrink, &zoom); | |
279 | |
280 WRITE_REG(PM3VideoOverlayBase0, base0 >> 1); | |
281 WRITE_REG(PM3VideoOverlayStride, PM3VideoOverlayStride_STRIDE(pitch)); | |
282 WRITE_REG(PM3VideoOverlayWidth, PM3VideoOverlayWidth_WIDTH(src_w)); | |
283 WRITE_REG(PM3VideoOverlayHeight, PM3VideoOverlayHeight_HEIGHT(src_h)); | |
284 WRITE_REG(PM3VideoOverlayOrigin, 0); | |
285 | |
286 /* Scale the source to the destinationsize */ | |
287 if (src_h == drw_h) { | |
288 WRITE_REG(PM3VideoOverlayYDelta, PM3VideoOverlayYDelta_NONE); | |
289 } else { | |
290 WRITE_REG(PM3VideoOverlayYDelta, | |
291 PM3VideoOverlayYDelta_DELTA(src_h, drw_h)); | |
292 } | |
293 if (src_w == drw_w) { | |
294 WRITE_REG(PM3VideoOverlayShrinkXDelta, 1<<16); | |
295 WRITE_REG(PM3VideoOverlayZoomXDelta, 1<<16); | |
296 } else { | |
297 WRITE_REG(PM3VideoOverlayShrinkXDelta, shrink); | |
298 WRITE_REG(PM3VideoOverlayZoomXDelta, zoom); | |
299 } | |
300 WRITE_REG(PM3VideoOverlayIndex, 0); | |
301 | |
302 /* Now set the ramdac video overlay region and mode */ | |
303 RAMDAC_SET_REG(PM3RD_VideoOverlayXStartLow, (info->dest.x & 0xff)); | |
304 RAMDAC_SET_REG(PM3RD_VideoOverlayXStartHigh, (info->dest.x & 0xf00)>>8); | |
305 RAMDAC_SET_REG(PM3RD_VideoOverlayXEndLow, (info->dest.x+drw_w) & 0xff); | |
306 RAMDAC_SET_REG(PM3RD_VideoOverlayXEndHigh, | |
307 ((info->dest.x+drw_w) & 0xf00)>>8); | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27079
diff
changeset
|
308 RAMDAC_SET_REG(PM3RD_VideoOverlayYStartLow, (info->dest.y & 0xff)); |
22850 | 309 RAMDAC_SET_REG(PM3RD_VideoOverlayYStartHigh, (info->dest.y & 0xf00)>>8); |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27079
diff
changeset
|
310 RAMDAC_SET_REG(PM3RD_VideoOverlayYEndLow, (info->dest.y+drw_h) & 0xff); |
22850 | 311 RAMDAC_SET_REG(PM3RD_VideoOverlayYEndHigh, |
312 ((info->dest.y+drw_h) & 0xf00)>>8); | |
313 | |
314 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, 0xff); | |
315 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, 0x00); | |
316 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, 0xff); | |
317 | |
318 overlay_mode = | |
319 1 << 5 | | |
320 format | | |
321 PM3VideoOverlayMode_FILTER_FULL | | |
322 PM3VideoOverlayMode_BUFFERSYNC_MANUAL | | |
323 PM3VideoOverlayMode_FLIP_VIDEO; | |
324 | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27079
diff
changeset
|
325 overlay_control = |
22850 | 326 PM3RD_VideoOverlayControl_KEY_COLOR | |
327 PM3RD_VideoOverlayControl_MODE_MAINKEY | | |
328 PM3RD_VideoOverlayControl_DIRECTCOLOR_ENABLED; | |
329 | |
330 TRACE_EXIT(); | |
331 return 0; | |
332 } | |
333 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
334 static int pm3_playback_on(void) |
22850 | 335 { |
336 TRACE_ENTER(); | |
337 | |
338 WRITE_REG(PM3VideoOverlayMode, | |
339 overlay_mode | PM3VideoOverlayMode_ENABLE); | |
340 RAMDAC_SET_REG(PM3RD_VideoOverlayControl, | |
341 overlay_control | PM3RD_VideoOverlayControl_ENABLE); | |
342 WRITE_REG(PM3VideoOverlayUpdate, | |
343 PM3VideoOverlayUpdate_ENABLE); | |
344 | |
345 TRACE_EXIT(); | |
346 return 0; | |
347 } | |
348 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
349 static int pm3_playback_off(void) |
22850 | 350 { |
351 RAMDAC_SET_REG(PM3RD_VideoOverlayControl, | |
352 PM3RD_VideoOverlayControl_DISABLE); | |
353 WRITE_REG(PM3VideoOverlayMode, | |
354 PM3VideoOverlayMode_DISABLE); | |
355 | |
356 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyR, 0x01); | |
357 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyG, 0x01); | |
358 RAMDAC_SET_REG(PM3RD_VideoOverlayKeyB, 0xfe); | |
359 | |
360 return 0; | |
361 } | |
362 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
363 static int pm3_frame_select(unsigned int frame) |
22850 | 364 { |
365 WRITE_REG(PM3VideoOverlayBase0, frames[frame]); | |
366 return 0; | |
367 } | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
368 |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
369 VDXDriver pm3_drv = { |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
370 "pm3", |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
371 NULL, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
372 .probe = pm3_probe, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
373 .get_caps = pm3_get_caps, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
374 .query_fourcc = pm3_query_fourcc, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
375 .init = pm3_init, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
376 .destroy = pm3_destroy, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
377 .config_playback = pm3_config_playback, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
378 .playback_on = pm3_playback_on, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
379 .playback_off = pm3_playback_off, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
380 .frame_sel = pm3_frame_select, |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
22850
diff
changeset
|
381 }; |