Mercurial > mplayer.hg
annotate postproc/postprocess.h @ 9046:13b7ad16f278
This patch should fix the display problem with 4bpp and 8bpp modes.
The problem was that the new drawing method assumes a linear
framebuffer, which is not available in those modes. This can be worked
around by using the old drawing method, which is what this patch does.
The old method can be forced, by using the "old" driver option.
This patch also enables linear addressing, since it improves write speed
to video memory considerably. The mentioned problem:
"it is not compatable with vga_draw* for some cards"
Is a bug in svgalib, which I think should be fixed in recent svgalib
versions. If someone sees this problem, please report to svgalib
maintainer (that's me).
patch by Matan Ziv-Av. matan@svgalib.org
author | arpi |
---|---|
date | Mon, 20 Jan 2003 21:33:11 +0000 |
parents | e547ce712577 |
children | f7be067d683e |
rev | line source |
---|---|
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
1 /* |
3964 | 2 Copyright (C) 2001-2002 Michael Niedermayer (michaelni@gmx.at) |
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
3 |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
4 This program is free software; you can redistribute it and/or modify |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
5 it under the terms of the GNU General Public License as published by |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
6 the Free Software Foundation; either version 2 of the License, or |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
7 (at your option) any later version. |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
8 |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
9 This program is distributed in the hope that it will be useful, |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
10 but WITHOUT ANY WARRANTY; without even the implied warranty of |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
12 GNU General Public License for more details. |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
13 |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
14 You should have received a copy of the GNU General Public License |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
15 along with this program; if not, write to the Free Software |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
17 */ |
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
18 |
2186 | 19 #ifndef NEWPOSTPROCESS_H |
20 #define NEWPOSTPROCESS_H | |
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
21 |
8040 | 22 #define PP_QUALITY_MAX 6 |
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
23 |
7984
a57c1fc0c2fc
change qscale type to int8 and fix qscale ordering
michael
parents:
7973
diff
changeset
|
24 #define QP_STORE_T int8_t |
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
25 |
8019 | 26 typedef void pp_context_t; |
8038 | 27 typedef void pp_mode_t; |
2389 | 28 |
8038 | 29 extern char *pp_help; //a simple help text |
2389 | 30 |
7961 | 31 void pp_postprocess(uint8_t * src[3], int srcStride[3], |
7946 | 32 uint8_t * dst[3], int dstStride[3], |
33 int horizontalSize, int verticalSize, | |
34 QP_STORE_T *QP_store, int QP_stride, | |
8038 | 35 pp_mode_t *mode, pp_context_t *ppContext, int pict_type); |
2189 | 36 |
8040 | 37 |
38 /** | |
39 * returns a pp_mode_t or NULL if an error occured | |
40 * name is the string after "-pp" on the command line | |
41 * quality is a number from 0 to PP_QUALITY_MAX | |
42 */ | |
8038 | 43 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); |
44 void pp_free_mode(pp_mode_t *mode); | |
7946 | 45 |
8805 | 46 pp_context_t *pp_get_context(int width, int height, int flags); |
8019 | 47 void pp_free_context(pp_context_t *ppContext); |
3771 | 48 |
7973
ade6eb7abc2a
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
7972
diff
changeset
|
49 #define PP_CPU_CAPS_MMX 0x80000000 |
ade6eb7abc2a
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
7972
diff
changeset
|
50 #define PP_CPU_CAPS_MMX2 0x20000000 |
ade6eb7abc2a
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
7972
diff
changeset
|
51 #define PP_CPU_CAPS_3DNOW 0x40000000 |
7972 | 52 |
8805 | 53 #define PP_FORMAT 0x00000008 |
54 #define PP_FORMAT_420 (0x00000011|PP_FORMAT) | |
55 #define PP_FORMAT_422 (0x00000001|PP_FORMAT) | |
56 #define PP_FORMAT_411 (0x00000002|PP_FORMAT) | |
57 #define PP_FORMAT_444 (0x00000000|PP_FORMAT) | |
58 | |
2158
508468a75be0
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
59 #endif |