annotate libvo/vo_tga.c @ 15721:eec6ace22741

small change to field-matching metrics which hopefully makes a big improvement to results. inter-field comparison is now counterbalanced with intra-field total (vertical) variation. this means that areas of extreme high frequency content, which become aliased within individual fields, will not interfere with field matching. examples: white noise effects, small kanji, very small latin text, ... may still need tweaking. please report regressions. this change will likely be made optional in the future (right now it's enclosed in "if (1)"...
author rfelker
date Tue, 14 Jun 2005 05:33:34 +0000
parents 05aa13cdf92f
children fd51fd1ff231
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
1 /*
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
2 * vo_tga.c: targa output
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
3 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
4 * this video output module write targa uncompressed file in 15, 24 and 32 bit bgr format.
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
5 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
6 * to select the output format use the format filter:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
7 * mplayer -vo tga -vf format=bgr15 ...
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
8 * mplayer -vo tga -vf format=bgr24 ...
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
9 * mplayer -vo tga -vf format=bgr32 ...
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
10 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
11 * The 16 bit file are loaded without problem from Gimp and ImageMagick but give an error
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
12 * with entice (a visualizer from the enlightenment package that use the imlib2 package).
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
13 *
12573
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
14 * In 32 bit mode the alpha channel is set to 255 (0xff). For big endian
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
15 * machines, TGA_ALPHA32 changes from 0xff000000 to 0x000000ff, and TGA_SHIFT32 from 0 to 8.
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
16 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
17 * I need to fill the alpha channel because entice consider that alpha channel (and displays
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
18 * nothing, only the background!), but ImageMacick (the program display) or gimp doesn't
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
19 * care.
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
20 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
21 * maybe is possible (with a compilation switch) to avoid the fill of the alpha channel
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
22 * and work outside mplayer (if needed)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
23 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
24 * Daniele Forghieri ( guru@digitalfantasy.it )
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
25 *
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
26 */
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
27
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
28 #include <stdio.h>
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
29 #include <stdlib.h>
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
30 #include <string.h>
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
31 #include <errno.h>
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
32 #include <math.h>
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
33
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
34 #include "config.h"
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
35 #include "video_out.h"
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
36 #include "video_out_internal.h"
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
37
12573
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
38 #ifdef WORDS_BIGENDIAN
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
39 #define TGA_ALPHA32 0x000000ff
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
40 #define TGA_SHIFT32 8
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
41 #else
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
42 #define TGA_ALPHA32 0xff000000
12573
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
43 #define TGA_SHIFT32 0
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
44 #endif
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
45
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
46 static vo_info_t info =
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
47 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
48 "Targa output",
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
49 "tga",
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
50 "Daniele Forghieri - guru@digitalfantasy.it",
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
51 ""
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
52 };
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
53
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
54
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
55 LIBVO_EXTERN (tga)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
56
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
57 /* locals vars */
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
58 static int frame_num = 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
59 static void *line_buff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
60
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
61 static void tga_make_header(uint8_t *h, int dx, int dy, int bpp)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
62 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
63
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
64 int i;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
65
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
66 for(i = 0; i < 18; i++) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
67 switch (i) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
68 case 2:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
69 *h = 0x02;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
70 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
71
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
72 case 12:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
73 *h = dx & 0xff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
74 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
75
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
76 case 13:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
77 *h = (dx >> 8) & 0xff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
78 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
79
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
80 case 14:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
81 *h = dy & 0xff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
82 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
83
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
84 case 15:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
85 *h = (dy >> 8) & 0xff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
86 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
87
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
88 case 16:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
89 *h = bpp;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
90 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
91
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
92 case 17:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
93 *h = 0x20;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
94 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
95
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
96 default:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
97 *h = 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
98 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
99 ++h;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
100 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
101
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
102 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
103
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
104 static int write_tga( char *file, int bpp, int dx, int dy, uint8_t *buf, int stride)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
105 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
106 int er;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
107 FILE *fo;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
108
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
109 fo = fopen(file, "wb");
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
110 if (fo != NULL) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
111 uint8_t hdr[18];
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
112
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
113 er = 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
114 tga_make_header(hdr, dx, dy, bpp);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
115 if (fwrite(hdr, sizeof(hdr), 1, fo) == 1) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
116 int wb;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
117
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
118 wb = ((bpp + 7) / 8) * dx;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
119 if (bpp == 32) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
120 /* Setup the alpha channel for every pixel */
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
121 while (dy-- > 0) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
122 uint32_t *d;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
123 uint32_t *s;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
124 int x;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
125
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
126 s = (uint32_t *)buf;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
127 d = line_buff;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
128 for(x = 0; x < dx; x++) {
12573
e14b7c6e9d54 Fix for big endian systems
rtognimp
parents: 10689
diff changeset
129 *d++ = ((*s++) << TGA_SHIFT32) | TGA_ALPHA32;
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
130 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
131 if (fwrite(line_buff, wb, 1, fo) != 1) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
132 er = 4;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
133 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
134 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
135 buf += stride;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
136 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
137
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
138 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
139 else {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
140 while (dy-- > 0) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
141 if (fwrite(buf, wb, 1, fo) != 1) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
142 er = 4;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
143 break;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
144 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
145 buf += stride;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
146 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
147 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
148 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
149 else {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
150 er = 2;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
151 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
152
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
153 fclose(fo);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
154 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
155 else {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
156 er = 1;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
157 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
158
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
159 if (er) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
160 fprintf(stderr, "Error writing file [%s]\n", file);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
161 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
162 return(er);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
163 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
164
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
165 static uint32_t draw_image(mp_image_t* mpi)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
166 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
167 char file[20 + 1];
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
168
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
169 snprintf (file, 20, "%08d.tga", ++frame_num);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
170
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
171 write_tga( file,
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
172 mpi->bpp,
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
173 mpi->w,
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
174 mpi->h,
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
175 mpi->planes[0],
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
176 mpi->stride[0]);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
177
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
178 return VO_TRUE;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
179 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
180
15212
05aa13cdf92f replace VO and VF numeric flags with #defined identifiers
henry
parents: 12573
diff changeset
181 static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
10689
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
182 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
183 /* buffer for alpha */
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
184 if(line_buff){ free(line_buff); line_buff=NULL; }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
185 if (format == (IMGFMT_BGR | 32)) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
186 line_buff = malloc(width * 4);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
187 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
188 return 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
189 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
190
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
191 static void draw_osd(void)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
192 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
193 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
194
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
195 static void flip_page (void)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
196 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
197 return;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
198 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
199
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
200 static uint32_t draw_slice(uint8_t *srcimg[], int stride[], int w,int h,int x,int y)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
201 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
202 return -1;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
203 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
204
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
205 static uint32_t draw_frame(uint8_t * src[])
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
206 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
207 return -1;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
208 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
209
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
210 static uint32_t query_format(uint32_t format)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
211 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
212 switch(format){
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
213 case IMGFMT_BGR|15:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
214 case IMGFMT_BGR|24:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
215 case IMGFMT_BGR|32:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
216 return VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
217 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
218 return 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
219 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
220
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
221 static void uninit(void)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
222 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
223 if(line_buff){ free(line_buff); line_buff=NULL; }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
224 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
225
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
226 static void check_events(void)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
227 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
228 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
229
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
230 static uint32_t preinit(const char *arg)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
231 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
232 if(arg) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
233 printf("vo_tga: Unknown subdevice: %s\n",arg);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
234 return ENOSYS;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
235 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
236 return 0;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
237 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
238
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
239 static uint32_t control(uint32_t request, void *data, ...)
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
240 {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
241 switch (request) {
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
242 case VOCTRL_DRAW_IMAGE:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
243 return draw_image(data);
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
244
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
245 case VOCTRL_QUERY_FORMAT:
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
246 return query_format(*((uint32_t*)data));
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
247 }
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
248 return VO_NOTIMPL;
c6c54f467984 TGA image output VO module
arpi
parents:
diff changeset
249 }