annotate vidix/vidixlib.c @ 23980:27bac14b4ce4

More simple and correct font reselection. Since ass_font_t contains a list of font faces, there is no need to select the face with maximum charset coverage each time. It is enough to select any face with the required glyph.
author eugeni
date Fri, 03 Aug 2007 13:43:11 +0000
parents 82216ef041e0
children 0d255d03016f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
1 /*
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
2 * VIDIX - VIDeo Interface for *niX.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
3 * Copyright (C) 2002 Nick Kurshev
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
4 * Copyright (C) 2007 Benjamin Zores <ben@geexbox.org>
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
5 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
6 * 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
7 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
8 * 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
9 * 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
10 * 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
11 * (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
12 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
13 * 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
14 * 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
15 * 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
16 * 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
17 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
18 * You should have received a copy of the GNU General Public License
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
19 * along with MPlayer; if not, write to the Free Software
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
21 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
22 * This interface is introduced as universal one to MPEG decoder,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
23 * Back End Scaler (BES) and YUV2RGB hw accelerators.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
24 *
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
25 * In the future it may be expanded up to capturing and audio things.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
26 * Main goal of this this interface imlpementation is providing DGA
dcc632dd2097 preliminary version
nick
parents:
diff changeset
27 * everywhere where it's possible (unlike X11 and other).
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
28 *
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
29 * This interface is based on v4l2, fbvid.h, mga_vid.h projects
dcc632dd2097 preliminary version
nick
parents:
diff changeset
30 * and personally my ideas.
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
31 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
32 * NOTE: This interface is introduces as driver interface.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
33 */
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
34
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
35 #include <stdlib.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
36 #include <stdio.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
37 #include <errno.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
38 #include <string.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
39
dcc632dd2097 preliminary version
nick
parents:
diff changeset
40 #include "vidixlib.h"
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: 21507
diff changeset
41 #include "drivers.h"
22905
f34e5d778267 consistent include paths for config.h et al.
diego
parents: 22902
diff changeset
42 #include "config.h"
f34e5d778267 consistent include paths for config.h et al.
diego
parents: 22902
diff changeset
43 #include "libavutil/common.h"
f34e5d778267 consistent include paths for config.h et al.
diego
parents: 22902
diff changeset
44 #include "mpbswap.h"
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
45
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: 21507
diff changeset
46 extern unsigned int vdlGetVersion( void )
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
47 {
dcc632dd2097 preliminary version
nick
parents:
diff changeset
48 return VIDIX_VERSION;
dcc632dd2097 preliminary version
nick
parents:
diff changeset
49 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
50
3995
0d9de811e312 minor interface changing
nick
parents: 3991
diff changeset
51 VDL_HANDLE vdlOpen(const char *path,const char *name,unsigned cap,int verbose)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
52 {
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: 21507
diff changeset
53 VDXContext *ctx;
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: 21507
diff changeset
54
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: 21507
diff changeset
55 if (!(ctx = malloc (sizeof (VDXContext))))
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: 21507
diff changeset
56 return 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: 21507
diff changeset
57 memset (ctx, 0, sizeof (VDXContext));
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: 21507
diff changeset
58
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: 21507
diff changeset
59 /* register all drivers */
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: 21507
diff changeset
60 vidix_register_all_drivers ();
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: 21507
diff changeset
61
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: 21507
diff changeset
62 if (!vidix_find_driver (ctx, name, cap, verbose))
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: 21507
diff changeset
63 {
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: 21507
diff changeset
64 free (ctx);
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: 21507
diff changeset
65 return 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: 21507
diff changeset
66 }
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: 21507
diff changeset
67
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: 21507
diff changeset
68 if (verbose)
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: 21507
diff changeset
69 printf ("vidixlib: will use %s driver\n", ctx->drv->name);
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: 21507
diff changeset
70
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: 21507
diff changeset
71 if (!ctx->drv || !ctx->drv->init)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
72 {
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: 21507
diff changeset
73 if (verbose)
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: 21507
diff changeset
74 printf ("vidixlib: Can't init driver\n");
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: 21507
diff changeset
75 free (ctx);
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: 21507
diff changeset
76 return NULL;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
77 }
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: 21507
diff changeset
78
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: 21507
diff changeset
79 if (verbose)
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: 21507
diff changeset
80 printf ("vidixlib: Attempt to initialize driver at: %p\n",
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: 21507
diff changeset
81 ctx->drv->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: 21507
diff changeset
82
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: 21507
diff changeset
83 if (ctx->drv->init () !=0)
4011
ca163699151f lazy loader works better ;)
nick
parents: 4008
diff changeset
84 {
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: 21507
diff changeset
85 if (verbose)
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: 21507
diff changeset
86 printf ("vidixlib: Can't init driver\n");
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: 21507
diff changeset
87 free (ctx);
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: 21507
diff changeset
88 return 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: 21507
diff changeset
89 }
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: 21507
diff changeset
90
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: 21507
diff changeset
91 if (verbose)
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: 21507
diff changeset
92 printf("vidixlib: '%s'successfully loaded\n", ctx->drv->name);
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: 21507
diff changeset
93
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: 21507
diff changeset
94 return ctx;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
95 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
96
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
97 void vdlClose(VDL_HANDLE ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
98 {
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: 21507
diff changeset
99 if (ctx->drv->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: 21507
diff changeset
100 ctx->drv->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: 21507
diff changeset
101
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: 21507
diff changeset
102 memset (ctx, 0, sizeof (VDXContext)); /* <- it's not stupid */
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: 21507
diff changeset
103 free (ctx);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
104 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
105
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
106 int vdlGetCapability(VDL_HANDLE ctx, vidix_capability_t *cap)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
107 {
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: 21507
diff changeset
108 return ctx->drv->get_caps (cap);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
109 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
110
4539
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
111 #define MPLAYER_IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
112 #define MPLAYER_IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
113 #define MPLAYER_IMGFMT_RGB_MASK 0xFFFFFF00
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
114
4547
nick
parents: 4539
diff changeset
115 static uint32_t normalize_fourcc(uint32_t fourcc)
4539
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
116 {
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
117 if((fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_RGB|0) ||
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
118 (fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_BGR|0))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
119 return bswap_32(fourcc);
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
120 else return fourcc;
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
121 }
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
122
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
123 int vdlQueryFourcc(VDL_HANDLE ctx,vidix_fourcc_t *f)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
124 {
4547
nick
parents: 4539
diff changeset
125 f->fourcc = normalize_fourcc(f->fourcc);
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: 21507
diff changeset
126 return ctx->drv->query_fourcc (f);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
127 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
128
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
129 int vdlConfigPlayback(VDL_HANDLE ctx,vidix_playback_t *p)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
130 {
4547
nick
parents: 4539
diff changeset
131 p->fourcc = normalize_fourcc(p->fourcc);
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: 21507
diff changeset
132 return ctx->drv->config_playback (p);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
133 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
134
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
135 int vdlPlaybackOn(VDL_HANDLE ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
136 {
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: 21507
diff changeset
137 return ctx->drv->playback_on ();
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
138 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
139
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
140 int vdlPlaybackOff(VDL_HANDLE ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
141 {
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: 21507
diff changeset
142 return ctx->drv->playback_off ();
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
143 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
144
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
145 int vdlPlaybackFrameSelect(VDL_HANDLE ctx, unsigned frame_idx )
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
146 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
147 return ctx->drv->frame_sel ? ctx->drv->frame_sel (frame_idx) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
148 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
149
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
150 int vdlPlaybackGetEq(VDL_HANDLE ctx, vidix_video_eq_t * e)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
151 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
152 return ctx->drv->get_eq ? ctx->drv->get_eq (e) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
153 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
154
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
155 int vdlPlaybackSetEq(VDL_HANDLE ctx, const vidix_video_eq_t * e)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
156 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
157 return ctx->drv->set_eq ? ctx->drv->set_eq (e) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
158 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
159
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
160 int vdlPlaybackCopyFrame(VDL_HANDLE ctx, const vidix_dma_t * f)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
161 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
162 return ctx->drv->copy_frame ? ctx->drv->copy_frame (f) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
163 }
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
164
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
165 int vdlGetGrKeys(VDL_HANDLE ctx, vidix_grkey_t * k)
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
166 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
167 return ctx->drv->get_gkey ? ctx->drv->get_gkey (k) : ENOSYS;
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
168 }
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
169
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
170 int vdlSetGrKeys(VDL_HANDLE ctx, const vidix_grkey_t * k)
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
171 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
172 return ctx->drv->set_gkey ? ctx->drv->set_gkey (k) : ENOSYS;
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
173 }
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
174
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
175 int vdlPlaybackGetDeint(VDL_HANDLE ctx, vidix_deinterlace_t * d)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
176 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
177 return ctx->drv->get_deint ? ctx->drv->get_deint (d) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
178 }
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
179
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
180 int vdlPlaybackSetDeint(VDL_HANDLE ctx, const vidix_deinterlace_t * d)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
181 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
182 return ctx->drv->set_deint ? ctx->drv->set_deint (d) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
183 }
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
184
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
185 int vdlQueryNumOemEffects(VDL_HANDLE ctx, unsigned * number )
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
186 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
187 return ctx->drv->get_num_fx ? ctx->drv->get_num_fx (number) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
188 }
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
189
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
190 int vdlGetOemEffect(VDL_HANDLE ctx, vidix_oem_fx_t * f)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
191 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
192 return ctx->drv->get_fx ? ctx->drv->get_fx (f) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
193 }
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
194
22865
441582f3ed87 simplified function prototypes to avoid casts but keep external API compatibility
ben
parents: 22857
diff changeset
195 int vdlSetOemEffect(VDL_HANDLE ctx, const vidix_oem_fx_t * f)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
196 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
197 return ctx->drv->set_fx ? ctx->drv->set_fx (f) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
198 }