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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2158
508468a75be0 new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff changeset
1 /*
3964
4911e2fc554b -npp fq:<quantizer>
michael
parents: 3832
diff changeset
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
491d4fc9b6f2 small changes for mplayer integration:
arpi
parents: 2179
diff changeset
19 #ifndef NEWPOSTPROCESS_H
491d4fc9b6f2 small changes for mplayer integration:
arpi
parents: 2179
diff changeset
20 #define NEWPOSTPROCESS_H
2158
508468a75be0 new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff changeset
21
8040
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
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
ad8d6f993c81 cosmetics requested by kabi
michael
parents: 7985
diff changeset
26 typedef void pp_context_t;
8038
fe30880576dc cleanup
michael
parents: 8019
diff changeset
27 typedef void pp_mode_t;
2389
bd3f33e7dd26 auto brightness/ contrast bugfix
michael
parents: 2292
diff changeset
28
8038
fe30880576dc cleanup
michael
parents: 8019
diff changeset
29 extern char *pp_help; //a simple help text
2389
bd3f33e7dd26 auto brightness/ contrast bugfix
michael
parents: 2292
diff changeset
30
7961
78e0f2776da7 cosmetics ;)
michael
parents: 7960
diff changeset
31 void pp_postprocess(uint8_t * src[3], int srcStride[3],
7946
f483ab704252 postprocessing cleanup:
michael
parents: 5576
diff changeset
32 uint8_t * dst[3], int dstStride[3],
f483ab704252 postprocessing cleanup:
michael
parents: 5576
diff changeset
33 int horizontalSize, int verticalSize,
f483ab704252 postprocessing cleanup:
michael
parents: 5576
diff changeset
34 QP_STORE_T *QP_store, int QP_stride,
8038
fe30880576dc cleanup
michael
parents: 8019
diff changeset
35 pp_mode_t *mode, pp_context_t *ppContext, int pict_type);
2189
82556b3a1228 Cleanup:
arpi
parents: 2186
diff changeset
36
8040
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
37
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
38 /**
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
39 * returns a pp_mode_t or NULL if an error occured
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
40 * name is the string after "-pp" on the command line
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
41 * quality is a number from 0 to PP_QUALITY_MAX
5241f95b5ec4 cleanup
michael
parents: 8038
diff changeset
42 */
8038
fe30880576dc cleanup
michael
parents: 8019
diff changeset
43 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality);
fe30880576dc cleanup
michael
parents: 8019
diff changeset
44 void pp_free_mode(pp_mode_t *mode);
7946
f483ab704252 postprocessing cleanup:
michael
parents: 5576
diff changeset
45
8805
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
46 pp_context_t *pp_get_context(int width, int height, int flags);
8019
ad8d6f993c81 cosmetics requested by kabi
michael
parents: 7985
diff changeset
47 void pp_free_context(pp_context_t *ppContext);
3771
a14b3a600b81 new -pp options stuff (-npp ...)
michael
parents: 3154
diff changeset
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
6d1103afba1c cleanly passing the cpuCaps
michael
parents: 7963
diff changeset
52
8805
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
53 #define PP_FORMAT 0x00000008
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
54 #define PP_FORMAT_420 (0x00000011|PP_FORMAT)
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
55 #define PP_FORMAT_422 (0x00000001|PP_FORMAT)
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
56 #define PP_FORMAT_411 (0x00000002|PP_FORMAT)
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
57 #define PP_FORMAT_444 (0x00000000|PP_FORMAT)
e547ce712577 YUV 411/422/444 support for pp
michael
parents: 8040
diff changeset
58
2158
508468a75be0 new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff changeset
59 #endif