annotate vidix/vidix.c @ 28615:15e7abed4291

Use the same code to convert fps in float to fraction as used in mencoder, it ensures all the common frame rates work right. If this causes issues, it should be changed in the same way in mencoder.c
author reimar
date Wed, 18 Feb 2009 16:49:12 +0000
parents 42726ce8f60a
children 0f1b5b68af32
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.
26718
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
3 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
4 * This interface is introduced as universal one to MPEG decoder,
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
5 * Back End Scaler (BES) and YUV2RGB hw accelerators.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
6 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
7 * In the future it may be expanded up to capturing and audio things.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
8 * Main goal of this this interface imlpementation is providing DGA
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
9 * everywhere where it's possible (unlike X11 and other).
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
10 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
11 * This interface is based on v4l2, fbvid.h, mga_vid.h projects
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
12 * and personally my ideas.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
13 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
14 * NOTE: This interface is introduced as driver interface.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26203
diff changeset
15 *
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
16 * 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
17 * 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
18 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
19 * 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
20 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
21 * 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
22 * 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
23 * 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
24 * (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
25 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
26 * 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
27 * 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
28 * 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
29 * 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
30 *
26726
a1c020529cc0 Use standard license header with standard formatting.
diego
parents: 26718
diff changeset
31 * You should have received a copy of the GNU General Public License along
a1c020529cc0 Use standard license header with standard formatting.
diego
parents: 26718
diff changeset
32 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
a1c020529cc0 Use standard license header with standard formatting.
diego
parents: 26718
diff changeset
33 * 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
34 */
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22905
diff changeset
35
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
36 #include <stdlib.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
37 #include <stdio.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
38 #include <errno.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
39 #include <string.h>
dcc632dd2097 preliminary version
nick
parents:
diff changeset
40
26203
0d255d03016f #include config.h before all other headers.
diego
parents: 23046
diff changeset
41 #include "config.h"
27079
df448e1248b2 remove now useless vidixlib.h file
ben
parents: 26977
diff changeset
42 #include "vidix.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
43 #include "drivers.h"
22905
f34e5d778267 consistent include paths for config.h et al.
diego
parents: 22902
diff changeset
44 #include "libavutil/common.h"
f34e5d778267 consistent include paths for config.h et al.
diego
parents: 22902
diff changeset
45 #include "mpbswap.h"
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
46
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
47 VDXContext *vdlOpen(const char *name,unsigned cap,int verbose)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
48 {
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
49 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
50
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
51 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
52 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
53 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
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 /* 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
56 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
57
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 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
59 {
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 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
61 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
62 }
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 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
65 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
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 if (!ctx->drv || !ctx->drv->init)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
68 {
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
69 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
70 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
71 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
72 return NULL;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
73 }
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
74
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 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
76 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
77 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
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 (ctx->drv->init () !=0)
4011
ca163699151f lazy loader works better ;)
nick
parents: 4008
diff changeset
80 {
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
81 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
82 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
83 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
84 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
85 }
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
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 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
88 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
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 return ctx;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
91 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
92
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
93 void vdlClose(VDXContext *ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
94 {
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
95 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
96 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
97
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
98 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
99 free (ctx);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
100 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
101
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
102 int vdlGetCapability(VDXContext *ctx, vidix_capability_t *cap)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
103 {
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
104 return ctx->drv->get_caps (cap);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
105 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
106
4539
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
107 #define MPLAYER_IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
108 #define MPLAYER_IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
109 #define MPLAYER_IMGFMT_RGB_MASK 0xFFFFFF00
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
110
27083
ef28bbd026b2 cosmetic: give a coherent indentation
ben
parents: 27082
diff changeset
111 static uint32_t normalize_fourcc (uint32_t fourcc)
4539
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
112 {
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
113 if((fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_RGB|0) ||
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
114 (fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_BGR|0))
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
115 return bswap_32(fourcc);
27081
35039052457d remove useless 'else'
ben
parents: 27080
diff changeset
116 return fourcc;
4539
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
117 }
fcd6e49cb3cc mplayer has swapped RGB's fourcc :(
nick
parents: 4509
diff changeset
118
27087
42726ce8f60a cosmetic: be consistent
ben
parents: 27084
diff changeset
119 int vdlQueryFourcc (VDXContext *ctx, vidix_fourcc_t *f)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
120 {
4547
nick
parents: 4539
diff changeset
121 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
122 return ctx->drv->query_fourcc (f);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
123 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
124
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
125 int vdlConfigPlayback (VDXContext *ctx, vidix_playback_t *p)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
126 {
4547
nick
parents: 4539
diff changeset
127 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
128 return ctx->drv->config_playback (p);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
129 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
130
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
131 int vdlPlaybackOn (VDXContext *ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
132 {
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
133 return ctx->drv->playback_on ();
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
134 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
135
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
136 int vdlPlaybackOff (VDXContext *ctx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
137 {
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
138 return ctx->drv->playback_off ();
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
139 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
140
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
141 int vdlPlaybackFrameSelect (VDXContext *ctx, unsigned frame_idx)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
142 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
143 return ctx->drv->frame_sel ? ctx->drv->frame_sel (frame_idx) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
144 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
145
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
146 int vdlPlaybackGetEq (VDXContext *ctx, vidix_video_eq_t *e)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
147 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
148 return ctx->drv->get_eq ? ctx->drv->get_eq (e) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
149 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
150
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
151 int vdlPlaybackSetEq (VDXContext *ctx, const vidix_video_eq_t *e)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
152 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
153 return ctx->drv->set_eq ? ctx->drv->set_eq (e) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
154 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
155
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
156 int vdlPlaybackCopyFrame (VDXContext *ctx, const vidix_dma_t *f)
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
157 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
158 return ctx->drv->copy_frame ? ctx->drv->copy_frame (f) : ENOSYS;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
159 }
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
160
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
161 int vdlGetGrKeys (VDXContext *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
162 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
163 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
164 }
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4011
diff changeset
165
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
166 int vdlSetGrKeys (VDXContext *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
167 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
168 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
169 }
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
170
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
171 int vdlPlaybackGetDeint (VDXContext *ctx, vidix_deinterlace_t *d)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
172 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
173 return ctx->drv->get_deint ? ctx->drv->get_deint (d) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
174 }
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
175
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27083
diff changeset
176 int vdlPlaybackSetDeint (VDXContext *ctx, const vidix_deinterlace_t *d)
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
177 {
22885
2fb21c753674 remove useless ()
aurel
parents: 22865
diff changeset
178 return ctx->drv->set_deint ? ctx->drv->set_deint (d) : ENOSYS;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
179 }