annotate libvo/vo_svga.c @ 1346:d6e6132bff35

AUDIO_ENCODING_LINEAR8 format is not available on sunos 5.5. Format is unsupported in mplayer for now, to get the code compiled on that old version of the OS.
author jkeil
date Thu, 19 Jul 2001 20:04:54 +0000
parents bf2c01c5e9dc
children d40f2b686846
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
1 /*
292
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
2 Video driver for SVGAlib - alpha, slow
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
3 by Zoltan Mark Vician <se7en@sch.bme.hu>
381
bbd079aa1614 Date bugfix :)
se7encode
parents: 377
diff changeset
4 Code started: Mon Apr 1 23:25:47 2001
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
5
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
6 Uses HW acceleration if your card is supported by SVGAlib.
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
7 */
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
8
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
9 #include <stdio.h>
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
10 #include <stdlib.h>
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
11
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
12 #include <vga.h>
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
13 #include <vgagl.h>
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
14
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
15 #include <limits.h>
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
16
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
17 #include "config.h"
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
18 #include "video_out.h"
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
19 #include "video_out_internal.h"
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
20
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
21 #include "yuv2rgb.h"
1339
bf2c01c5e9dc svga driver didn't compile on linux/ppc
jkeil
parents: 989
diff changeset
22 #ifdef HAVE_MMX
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
23 #include "mmx.h"
1339
bf2c01c5e9dc svga driver didn't compile on linux/ppc
jkeil
parents: 989
diff changeset
24 #endif
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
25
616
41d6eec69b60 clean up
pontscho
parents: 612
diff changeset
26 #include "sub.h"
41d6eec69b60 clean up
pontscho
parents: 612
diff changeset
27
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
28 extern void rgb15to16_mmx(char* s0,char* d0,int count);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
29 extern int vo_dbpp;
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
30 extern int verbose;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
31
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
32 LIBVO_EXTERN(svga)
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
33
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
34 static vo_info_t vo_info = {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
35 "SVGAlib",
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
36 "svga",
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
37 "Zoltan Mark Vician <se7en@sch.bme.hu>",
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
38 ""
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
39 };
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
40
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
41 // SVGAlib definitions
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
42
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
43 GraphicsContext *screen;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
44 GraphicsContext *virt;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
45
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
46 static uint8_t *scalebuf = NULL, *yuvbuf = NULL, *bppbuf = NULL;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
47
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
48 static uint32_t orig_w, orig_h, maxw, maxh; // Width, height
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
49 static float scaling = 1.0;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
50 static uint32_t x_pos, y_pos; // Position
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
51
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
52 // SVGAlib - list of detected modes
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
53 typedef struct vga_modelist_s {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
54 uint16_t modenum;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
55 vga_modeinfo modeinfo;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
56 struct vga_modelist_s *next;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
57 } vga_modelist_t;
447
b3b28a0d9404 All available videomodes support added.
se7encode
parents: 411
diff changeset
58
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
59 vga_modelist_t *modelist = NULL;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
60
327
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
61 static uint8_t bpp;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
62 static uint8_t bpp_conv = 0;
448
198b46b739d8 qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents: 447
diff changeset
63 static uint32_t pformat;
447
b3b28a0d9404 All available videomodes support added.
se7encode
parents: 411
diff changeset
64
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
65 #define BPP_15 1
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
66 #define BPP_16 2
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
67 #define BPP_24 4
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
68 #define BPP_32 8
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
69 static uint8_t bpp_avail = 0;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
70
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
71 static uint8_t checked = 0;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
72
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
73 static uint32_t add_mode(uint16_t mode, vga_modeinfo minfo) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
74 vga_modelist_t *list;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
75
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
76 if (modelist == NULL) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
77 modelist = (vga_modelist_t *) malloc(sizeof(vga_modelist_t));
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
78 if (modelist == NULL) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
79 printf("vo_svga: add_mode() failed. Not enough memory for modelist.");
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
80 return(1); // error
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
81 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
82 modelist->modenum = mode;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
83 modelist->modeinfo = minfo;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
84 modelist->next = NULL;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
85 } else {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
86 list = modelist;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
87 while (list->next != NULL)
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
88 list = list->next;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
89 list->next = (vga_modelist_t *) malloc(sizeof(vga_modelist_t));
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
90 if (list->next == NULL) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
91 printf("vo_svga: add_mode() failed. Not enough memory for modelist.");
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
92 return(1); // error
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
93 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
94 list = list->next;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
95 list->modenum = mode;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
96 list->modeinfo = minfo;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
97 list->next = NULL;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
98 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
99 return (0);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
100 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
101
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
102 static int checksupportedmodes() {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
103 uint16_t i, max;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
104 vga_modeinfo *minfo;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
105
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
106 checked = 1;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
107 vga_init();
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
108 vga_disabledriverreport();
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
109 max = vga_lastmodenumber();
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
110 for (i = 1; i < max; i++)
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
111 if (vga_hasmode(i) > 0) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
112 minfo = vga_getmodeinfo(i);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
113 switch (minfo->colors) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
114 case 32768: bpp_avail |= BPP_15; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
115 case 65536: bpp_avail |= BPP_16; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
116 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
117 switch (minfo->bytesperpixel) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
118 case 3: bpp_avail |= BPP_24; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
119 case 4: bpp_avail |= BPP_32; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
120 }
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
121 if (verbose >= 2)
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
122 printf("vo_svga: Mode found: %s\n",vga_getmodename(i));
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
123 if (add_mode(i, *minfo))
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
124 return(1);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
125 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
126 return(0);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
127 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
128
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
129 static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
130 uint32_t d_height, uint32_t fullscreen, char *title,
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
131 uint32_t format) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
132 uint32_t req_w = (d_width > 0 ? d_width : width);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
133 uint32_t req_h = (d_height > 0 ? d_height : height);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
134 uint16_t vid_mode = 0;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
135 uint8_t res_widescr, vid_widescr = (((req_w*1.0)/req_h) > (4.0/3)) ? 1 : 0;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
136 uint16_t buf_w = USHRT_MAX, buf_h = USHRT_MAX;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
137 vga_modelist_t *list = modelist;
387
43acef8f7c74 Requested resolution (d_width) added.
se7encode
parents: 381
diff changeset
138
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
139 if (!checked) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
140 if (checksupportedmodes()) // Looking for available video modes
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
141 return(1);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
142 }
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
143
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
144 bpp_avail = 0;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
145 while (list != NULL) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
146 if ((list->modeinfo.width >= req_w) && (list->modeinfo.height >= req_h)) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
147 switch (list->modeinfo.colors) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
148 case 32768: bpp_avail |= BPP_15; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
149 case 65536: bpp_avail |= BPP_16; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
150 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
151 switch (list->modeinfo.bytesperpixel) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
152 case 3: bpp_avail |= BPP_24; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
153 case 4: bpp_avail |= BPP_32; break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
154 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
155 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
156 list = list->next;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
157 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
158
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
159 pformat = format;
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
160
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
161 // bpp check
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
162 bpp_conv = 0;
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
163 if (!vo_dbpp) {
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
164 if (format == IMGFMT_YV12) bpp = 32;
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
165 else bpp = format & 255;
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
166 if (verbose)
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
167 printf("vo_svga: vo_dbpp == 0, bpp: %d\n",bpp);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
168 switch (bpp) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
169 case 32: if (!(bpp_avail & BPP_32)) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
170 printf("vo_svga: Haven't found video mode which fit to: %dx%d %dbpp\n",req_w,req_h,bpp);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
171 printf("vo_svga: Maybe you should try -bpp\n");
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
172 return(1);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
173 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
174 break;
619
99a716d8cac8 -Wall warnings fixed.
se7encode
parents: 617
diff changeset
175 case 24: if (!(bpp_avail & BPP_24)) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
176 if (!(bpp_avail & BPP_32)) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
177 printf("vo_svga: Haven't found video mode which fit to: %dx%d %dbpp\n",req_w,req_h,bpp);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
178 printf("vo_svga: Maybe you should try -bpp\n");
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
179 return(1);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
180 } else {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
181 bpp = 32;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
182 bpp_conv = 1;
617
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
183 printf("vo_svga: BPP conversion 24->32\n");
619
99a716d8cac8 -Wall warnings fixed.
se7encode
parents: 617
diff changeset
184 }
99a716d8cac8 -Wall warnings fixed.
se7encode
parents: 617
diff changeset
185 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
186 break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
187 case 16: if (!(bpp_avail & BPP_16)) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
188 printf("vo_svga: Haven't found video mode which fit to: %dx%d %dbpp\n",req_w,req_h,bpp);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
189 printf("vo_svga: Maybe you should try -bpp\n");
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
190 return(1);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
191 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
192 break;
619
99a716d8cac8 -Wall warnings fixed.
se7encode
parents: 617
diff changeset
193 case 15: if (!(bpp_avail & BPP_15)) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
194 if (!(bpp_avail & BPP_16)) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
195 printf("vo_svga: Haven't found video mode which fit to: %dx%d %dbpp\n",req_w,req_h,bpp);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
196 printf("vo_svga: Maybe you should try -bpp\n");
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
197 return(1);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
198 } else {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
199 bpp = 16;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
200 bpp_conv = 1;
617
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
201 printf("vo_svga: BPP conversion 15->16\n");
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
202 }
619
99a716d8cac8 -Wall warnings fixed.
se7encode
parents: 617
diff changeset
203 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
204 break;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
205 }
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
206 } else {
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
207 bpp = vo_dbpp;
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
208 if (verbose)
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
209 printf("vo_svga: vo_dbpp == %d\n",bpp);
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
210 switch (bpp) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
211 case 32: if (!(bpp_avail & BPP_32)) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
212 printf("vo_svga: %dbpp not supported in %dx%d (or larger resoltuion) by HW or SVGAlib\n",bpp,req_w,req_h);
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
213 return(1);
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
214 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
215 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
216 case 24: if (!(bpp_avail & BPP_24)) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
217 printf("vo_svga: %dbpp not supported in %dx%d (or larger resoltuion) by HW or SVGAlib\n",bpp,req_w,req_h);
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
218 return(1);
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
219 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
220 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
221 case 16: if (!(bpp_avail & BPP_16)) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
222 printf("vo_svga: %dbpp not supported in %dx%d (or larger resoltuion) by HW or SVGAlib\n",bpp,req_w,req_h);
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
223 return(1);
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
224 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
225 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
226 case 15: if (!(bpp_avail & BPP_15)) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
227 printf("vo_svga: %dbpp not supported in %dx%d (or larger resoltuion) by HW or SVGAlib\n",bpp,req_w,req_h);
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
228 return(1);
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
229 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
230 break;
411
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
231 }
53203545daa7 -bpp added.
se7encode
parents: 407
diff changeset
232 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
233
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
234 list = modelist;
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
235 if (verbose) {
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
236 printf("vo_svga: Looking for the best resolution...\n");
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
237 printf("vo_svga: req_w: %d, req_h: %d, bpp: %d\n",req_w,req_h,bpp);
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
238 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
239 while (list != NULL) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
240 if ((list->modeinfo.width >= req_w) && (list->modeinfo.height >= req_h)) {
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
241 if (verbose) {
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
242 switch (list->modeinfo.colors) {
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
243 case 32768: printf("vo_svga: vid_mode: %d, %dx%d 15bpp\n",list->modenum,list->modeinfo.width,list->modeinfo.height);
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
244 break;
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
245 case 65536: printf("vo_svga: vid_mode: %d, %dx%d 16bpp\n",list->modenum,list->modeinfo.width,list->modeinfo.height);
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
246 break;
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
247 }
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
248 switch (list->modeinfo.bytesperpixel) {
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
249 case 3: printf("vo_svga: vid_mode: %d, %dx%d 24bpp\n",list->modenum,list->modeinfo.width,list->modeinfo.height);
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
250 break;
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
251 case 4: printf("vo_svga: vid_mode: %d, %dx%d 32bpp\n",list->modenum,list->modeinfo.width,list->modeinfo.height);
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
252 break;
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
253 }
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
254 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
255 switch (bpp) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
256 case 32: if (list->modeinfo.bytesperpixel == 4)
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
257 if ((list->modeinfo.width < buf_w) || (list->modeinfo.height < buf_h)) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
258 vid_mode = list->modenum;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
259 buf_w = list->modeinfo.width;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
260 buf_h = list->modeinfo.height;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
261 res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
262 }
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
263 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
264 case 24: if (list->modeinfo.bytesperpixel == 3)
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
265 if ((list->modeinfo.width < buf_w) || (list->modeinfo.height < buf_h)) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
266 vid_mode = list->modenum;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
267 buf_w = list->modeinfo.width;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
268 buf_h = list->modeinfo.height;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
269 res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
270 }
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
271 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
272 case 16: if (list->modeinfo.colors == 65536)
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
273 if ((list->modeinfo.width < buf_w) || (list->modeinfo.height < buf_h)) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
274 vid_mode = list->modenum;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
275 buf_w = list->modeinfo.width;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
276 buf_h = list->modeinfo.height;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
277 res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
278 }
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
279 break;
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
280 case 15: if (list->modeinfo.colors == 32768)
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
281 if ((list->modeinfo.width < buf_w) || (list->modeinfo.height < buf_h)) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
282 vid_mode = list->modenum;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
283 buf_w = list->modeinfo.width;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
284 buf_h = list->modeinfo.height;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
285 res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
286 }
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
287 break;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
288 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
289 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
290 list = list->next;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
291 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
292
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
293 if (verbose)
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
294 printf("vo_svga: vid_mode: %d\n",vid_mode);
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
295 vga_setlinearaddressing();
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
296 if (vga_setmode(vid_mode) == -1) {
286
b2f3f2ab3787 integrated vo_svga by se7en
arpi_esp
parents: 285
diff changeset
297 printf("vo_svga: vga_setmode(%d) failed.\n",vid_mode);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
298 uninit();
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
299 return(1); // error
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
300 }
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
301 if (gl_setcontextvga(vid_mode)) {
286
b2f3f2ab3787 integrated vo_svga by se7en
arpi_esp
parents: 285
diff changeset
302 printf("vo_svga: gl_setcontextvga(%d) failed.\n",vid_mode);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
303 uninit();
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
304 return(1); // error
286
b2f3f2ab3787 integrated vo_svga by se7en
arpi_esp
parents: 285
diff changeset
305 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
306 screen = gl_allocatecontext();
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
307 gl_getcontext(screen);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
308 if (gl_setcontextvgavirtual(vid_mode)) {
286
b2f3f2ab3787 integrated vo_svga by se7en
arpi_esp
parents: 285
diff changeset
309 printf("vo_svga: gl_setcontextvgavirtual(%d) failed.\n",vid_mode);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
310 uninit();
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
311 return(1); // error
286
b2f3f2ab3787 integrated vo_svga by se7en
arpi_esp
parents: 285
diff changeset
312 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
313 virt = gl_allocatecontext();
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
314 gl_getcontext(virt);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
315 gl_setcontext(virt);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
316 gl_clearscreen(0);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
317
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
318 if (bpp_conv) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
319 bppbuf = malloc(maxw * maxh * BYTESPERPIXEL);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
320 if (bppbuf == NULL) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
321 printf("vo_svga: bppbuf -> Not enough memory for buffering!\n");
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
322 uninit();
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
323 return (1);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
324 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
325 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
326
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
327 orig_w = width;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
328 orig_h = height;
976
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
329 if ((fullscreen & 0x04) && (WIDTH != orig_w) && (HEIGHT != orig_h)) {
90408bd383a5 Scaling bug fixed.
se7encode
parents: 875
diff changeset
330 if (!vid_widescr || !res_widescr) {
292
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
331 maxh = HEIGHT;
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
332 scaling = maxh / (orig_h * 1.0);
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
333 maxw = (uint32_t) (orig_w * scaling);
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
334 scalebuf = malloc(maxw * maxh * BYTESPERPIXEL);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
335 if (scalebuf == NULL) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
336 printf("vo_svga: scalebuf -> Not enough memory for buffering!\n");
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
337 uninit();
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
338 return (1);
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
339 }
292
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
340 } else {
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
341 maxw = WIDTH;
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
342 scaling = maxw / (orig_w * 1.0);
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
343 maxh = (uint32_t) (orig_h * scaling);
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
344 scalebuf = malloc(maxw * maxh * BYTESPERPIXEL);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
345 if (scalebuf == NULL) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
346 printf("vo_svga: scalebuf -> Not enough memory for buffering!\n");
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
347 uninit();
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
348 return (1);
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
349 }
292
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
350 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
351 } else {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
352 maxw = orig_w;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
353 maxh = orig_h;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
354 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
355 x_pos = (WIDTH - maxw) / 2;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
356 y_pos = (HEIGHT - maxh) / 2;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
357
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
358 if (pformat == IMGFMT_YV12) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
359 yuv2rgb_init(bpp, MODE_RGB);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
360 yuvbuf = malloc(maxw * maxh * BYTESPERPIXEL);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
361 if (yuvbuf == NULL) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
362 printf("vo_svga: yuvbuf -> Not enough memory for buffering!\n");
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
363 uninit();
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
364 return (1);
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
365 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
366 }
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
367
504
a77e23145686 Some debug information (using verbose) added.
se7encode
parents: 502
diff changeset
368 printf("vo_svga: SVGAlib resolution: %dx%d %dbpp - ", WIDTH, HEIGHT, bpp);
293
f7e65132e296 Some bugfix.
se7encode
parents: 292
diff changeset
369 if (maxw != orig_w || maxh != orig_h) printf("Video scaled to: %dx%d\n",maxw,maxh);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
370 else printf("No video scaling\n");
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
371
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
372 return (0);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
373 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
374
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
375 static uint32_t query_format(uint32_t format) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
376 uint32_t res = 0;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
377
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
378 if (!checked) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
379 if (checksupportedmodes()) // Looking for available video modes
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
380 return(0);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
381 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
382
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
383 // if (vo_dbpp) => There is NO conversion!!!
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
384 if (vo_dbpp) {
712
ea093aa3ecae -bpp bug fixed.
se7encode
parents: 620
diff changeset
385 if (format == IMGFMT_YV12) return (1);
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
386 switch (vo_dbpp) {
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
387 case 32: if ((format == IMGFMT_RGB32) || (format == IMGFMT_BGR32))
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
388 return ((bpp_avail & BPP_32) ? 1 : 0);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
389 break;
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
390 case 24: if ((format == IMGFMT_RGB24) || (format == IMGFMT_BGR24))
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
391 return ((bpp_avail & BPP_24) ? 1 : 0);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
392 break;
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
393 case 16: if ((format == IMGFMT_RGB16) || (format == IMGFMT_BGR16))
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
394 return ((bpp_avail & BPP_16) ? 1 : 0);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
395 break;
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
396 case 15: if ((format == IMGFMT_RGB15) || (format == IMGFMT_BGR15))
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
397 return ((bpp_avail & BPP_15) ? 1 : 0);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
398 break;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
399 }
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
400 } else {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
401 switch (format) {
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
402 case IMGFMT_RGB32:
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
403 case IMGFMT_BGR32: return ((bpp_avail & BPP_32) ? 1 : 0); break;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
404 case IMGFMT_RGB24:
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
405 case IMGFMT_BGR24: {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
406 res = (bpp_avail & BPP_24) ? 1 : 0;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
407 if (!res)
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
408 res = (bpp_avail & BPP_32) ? 1 : 0;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
409 return (res);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
410 } break;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
411 case IMGFMT_RGB16:
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
412 case IMGFMT_BGR16: return ((bpp_avail & BPP_16) ? 1 : 0); break;
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
413 case IMGFMT_RGB15:
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
414 case IMGFMT_BGR15: {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
415 res = (bpp_avail & BPP_15) ? 1 : 0;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
416 if (!res)
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
417 res = (bpp_avail & BPP_16) ? 1 : 0;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
418 return (res);
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
419 } break;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
420 case IMGFMT_YV12: return (1); break;
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
421 }
488
108be5ee3b1a Thanx to Arpi, There is no more YUY2 bug.
se7encode
parents: 486
diff changeset
422 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
423 return (0);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
424 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
425
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
426 static const vo_info_t* get_info(void) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
427 return (&vo_info);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
428 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
429
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
430 static void draw_alpha(int x0, int y0, int w, int h, unsigned char *src,
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
431 unsigned char *srca, int stride) {
327
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
432 switch (bpp) {
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
433 case 32:
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
434 vo_draw_alpha_rgb32(w, h, src, srca, stride, virt->vbuf+4*(y0*WIDTH+x0), 4*WIDTH);
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
435 break;
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
436 case 24:
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
437 vo_draw_alpha_rgb24(w, h, src, srca, stride, virt->vbuf+3*(y0*WIDTH+x0), 3*WIDTH);
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
438 break;
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
439 case 16:
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
440 vo_draw_alpha_rgb16(w, h, src, srca, stride, virt->vbuf+2*(y0*WIDTH+x0), 2*WIDTH);
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
441 break;
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
442 case 15:
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
443 vo_draw_alpha_rgb15(w, h, src, srca, stride, virt->vbuf+2*(y0*WIDTH+x0), 2*WIDTH);
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
444 break;
e7731f5c76cc OSD renderers for all modes added.
se7encode
parents: 293
diff changeset
445 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
446 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
447
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
448 static uint32_t draw_frame(uint8_t *src[]) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
449 if (pformat == IMGFMT_YV12) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
450 yuv2rgb(yuvbuf, src[0], src[1], src[2], orig_w, orig_h, orig_w * BYTESPERPIXEL, orig_w, orig_w / 2);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
451 src[0] = yuvbuf;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
452 }
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
453 if (scalebuf != NULL) {
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
454 gl_scalebox(orig_w, orig_h, src[0], maxw, maxh, scalebuf);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
455 src[0] = scalebuf;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
456 }
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
457 if (bpp_conv) {
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
458 switch(bpp) {
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
459 case 32: {
620
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
460 uint8_t *source = src[0];
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
461 uint8_t *dest = bppbuf;
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
462 register uint32_t i = 0;
502
75c689abb763 Maybe a little speedup.
se7encode
parents: 488
diff changeset
463
620
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
464 while (i < (maxw * maxh * 4)) {
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
465 dest[i] = source[i];
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
466 dest[i+1] = source[i+1];
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
467 dest[i+2] = source[i+2];
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
468 dest[i+3] = 0;
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
469 i += 4;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
470 }
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
471 } break;
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
472 case 16: {
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
473 #ifdef HAVE_MMX
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
474 rgb15to16_mmx(src[0],bppbuf,maxw * maxh * 2);
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
475 #else
502
75c689abb763 Maybe a little speedup.
se7encode
parents: 488
diff changeset
476 uint16_t *source = (uint16_t *) src[0];
75c689abb763 Maybe a little speedup.
se7encode
parents: 488
diff changeset
477 uint16_t *dest = (uint16_t *) bppbuf;
620
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
478 register uint32_t i = 0;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
479 register uint16_t srcdata;
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
480
620
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
481 while (i < (maxw * maxh)) {
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
482 srcdata = source[i];
b623949ddedb Some names, types changed.
se7encode
parents: 619
diff changeset
483 dest[i++] = (srcdata & 0x1f) | ((srcdata & 0x7fe0) << 1);
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
484 }
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
485 #endif
485
dfafa47d751d Tons of code rewrites.
se7encode
parents: 483
diff changeset
486 } break;
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
487 }
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
488 src[0] = bppbuf;
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
489 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
490 gl_putbox(x_pos, y_pos, maxw, maxh, src[0]);
617
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
491
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
492 return (0);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
493 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
494
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
495 static uint32_t draw_slice(uint8_t *image[], int stride[],
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
496 int w, int h, int x, int y) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
497 uint8_t *src = yuvbuf;
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
498 uint32_t sw, sh;
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
499
875
c1cd62f01b2f removed emms() and reordered stuff
arpi_esp
parents: 874
diff changeset
500 yuv2rgb(yuvbuf, image[0], image[1], image[2], w, h, orig_w * BYTESPERPIXEL, stride[0], stride[1]);
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
501 sw = (uint32_t) (w * scaling);
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
502 sh = (uint32_t) (h * scaling);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
503 if (scalebuf != NULL) {
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
504 gl_scalebox(w, h, yuvbuf, sw, sh, scalebuf);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
505 src = scalebuf;
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
506 }
377
8ad594a8c94c Bugfixes in draw_slice.
se7encode
parents: 343
diff changeset
507 gl_putbox((int)(x * scaling) + x_pos, (int)(y * scaling) + y_pos, sw, sh, src);
617
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
508
33b559940fb4 *** empty log message ***
se7encode
parents: 616
diff changeset
509 return (0);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
510 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
511
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
512 static void flip_page(void) {
292
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
513 if (y_pos) {
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
514 gl_fillbox(0, 0, WIDTH, y_pos, 0);
2c0bb83b77b3 Some bugfix.
se7encode
parents: 290
diff changeset
515 gl_fillbox(0, HEIGHT - y_pos, WIDTH, y_pos, 0);
989
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
516 }
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
517 if (x_pos) {
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
518 gl_fillbox(0, 0, x_pos, HEIGHT, 0);
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
519 gl_fillbox(WIDTH - x_pos, 0, x_pos, HEIGHT, 0);
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
520 }
1be1647ebd7d flip_page gl_fillbox fix.
se7encode
parents: 976
diff changeset
521
486
4f52aa06f0fc A couple of bugfixes.
se7encode
parents: 485
diff changeset
522 vo_draw_text(WIDTH, HEIGHT, draw_alpha);
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
523 gl_copyscreen(screen);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
524 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
525
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
526 static void check_events(void) {
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
527 }
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
528
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
529 static void uninit(void) {
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
530 vga_modelist_t *list = modelist;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
531
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
532 gl_freecontext(screen);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
533 gl_freecontext(virt);
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
534 vga_setmode(TEXT);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
535 if (bppbuf != NULL)
407
0a5b131f1f11 24/15bpp -> 32/16bpp added.
se7encode
parents: 387
diff changeset
536 free(bppbuf);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
537 if (scalebuf != NULL)
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
538 free(scalebuf);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
539 if (yuvbuf != NULL)
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
540 free(yuvbuf);
483
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
541 if (modelist != NULL) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
542 while (modelist->next != NULL) {
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
543 list = modelist;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
544 while (list->next != NULL)
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
545 list = list->next;
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
546 free(list);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
547 }
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
548 free(modelist);
92f170c8b9ba fix to newest revision after cvs rollback
atmosfear
parents: 448
diff changeset
549 }
285
5cb4fdc94146 SVGAlib support - vo_svga.c added.
se7encode
parents:
diff changeset
550 }