Mercurial > libavcodec.hg
comparison libpostproc/postprocess.h @ 829:c39e14fc2392 libavcodec
cleanup
author | michael |
---|---|
date | Sat, 02 Nov 2002 13:58:14 +0000 |
parents | 6d225a8f0ff0 |
children | 0a1fbae9f6e1 |
comparison
equal
deleted
inserted
replaced
828:ace3ccd18dd2 | 829:c39e14fc2392 |
---|---|
14 You should have received a copy of the GNU General Public License | 14 You should have received a copy of the GNU General Public License |
15 along with this program; if not, write to the Free Software | 15 along with this program; if not, write to the Free Software |
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
17 */ | 17 */ |
18 | 18 |
19 // POSTPROCESS_H is defined by opendivx's postprocess.h | |
20 #ifndef NEWPOSTPROCESS_H | 19 #ifndef NEWPOSTPROCESS_H |
21 #define NEWPOSTPROCESS_H | 20 #define NEWPOSTPROCESS_H |
22 | 21 |
23 #define V_DEBLOCK 0x01 | |
24 #define H_DEBLOCK 0x02 | |
25 #define DERING 0x04 | |
26 #define LEVEL_FIX 0x08 /* Brightness & Contrast */ | |
27 | |
28 #define LUM_V_DEBLOCK V_DEBLOCK // 1 | |
29 #define LUM_H_DEBLOCK H_DEBLOCK // 2 | |
30 #define CHROM_V_DEBLOCK (V_DEBLOCK<<4) // 16 | |
31 #define CHROM_H_DEBLOCK (H_DEBLOCK<<4) // 32 | |
32 #define LUM_DERING DERING // 4 | |
33 #define CHROM_DERING (DERING<<4) // 64 | |
34 #define LUM_LEVEL_FIX LEVEL_FIX // 8 | |
35 #define CHROM_LEVEL_FIX (LEVEL_FIX<<4) // 128 (not implemented yet) | |
36 | |
37 // Experimental vertical filters | |
38 #define V_X1_FILTER 0x0200 // 512 | |
39 | |
40 // Experimental horizontal filters | |
41 #define H_X1_FILTER 0x2000 // 8192 | |
42 | |
43 // select between full y range (255-0) or standart one (234-16) | |
44 #define FULL_Y_RANGE 0x8000 // 32768 | |
45 | |
46 //Deinterlacing Filters | |
47 #define LINEAR_IPOL_DEINT_FILTER 0x10000 // 65536 | |
48 #define LINEAR_BLEND_DEINT_FILTER 0x20000 // 131072 | |
49 #define CUBIC_BLEND_DEINT_FILTER 0x8000 // (not implemented yet) | |
50 #define CUBIC_IPOL_DEINT_FILTER 0x40000 // 262144 | |
51 #define MEDIAN_DEINT_FILTER 0x80000 // 524288 | |
52 #define FFMPEG_DEINT_FILTER 0x400000 | |
53 | |
54 #define TEMP_NOISE_FILTER 0x100000 | |
55 #define FORCE_QUANT 0x200000 | |
56 | |
57 #define GET_PP_QUALITY_MAX 6 | 22 #define GET_PP_QUALITY_MAX 6 |
58 | |
59 //use if u want a faster postprocessing code | |
60 //cant differentiate between chroma & luma filters (both on or both off) | |
61 //obviosly the -pp option at the commandline has no effect except turning the here selected | |
62 //filters on | |
63 //#define COMPILE_TIME_MODE 0x77 | |
64 | 23 |
65 #define QP_STORE_T int8_t | 24 #define QP_STORE_T int8_t |
66 | 25 |
67 typedef void pp_context_t; | 26 typedef void pp_context_t; |
27 typedef void pp_mode_t; | |
68 | 28 |
69 extern char *pp_help; | 29 extern char *pp_help; //a simple help text |
70 | |
71 //FIXME decide if this should be exported at all | |
72 typedef struct PPMode{ | |
73 int lumMode; // acivates filters for luminance | |
74 int chromMode; // acivates filters for chrominance | |
75 int error; // non zero on error | |
76 | |
77 int minAllowedY; // for brigtness correction | |
78 int maxAllowedY; // for brihtness correction | |
79 float maxClippedThreshold; // amount of "black" u r willing to loose to get a brightness corrected picture | |
80 | |
81 int maxTmpNoise[3]; // for Temporal Noise Reducing filter (Maximal sum of abs differences) | |
82 | |
83 int baseDcDiff; | |
84 int flatnessThreshold; | |
85 | |
86 int forcedQuant; // quantizer if FORCE_QUANT is used | |
87 } PPMode; | |
88 | 30 |
89 void pp_postprocess(uint8_t * src[3], int srcStride[3], | 31 void pp_postprocess(uint8_t * src[3], int srcStride[3], |
90 uint8_t * dst[3], int dstStride[3], | 32 uint8_t * dst[3], int dstStride[3], |
91 int horizontalSize, int verticalSize, | 33 int horizontalSize, int verticalSize, |
92 QP_STORE_T *QP_store, int QP_stride, | 34 QP_STORE_T *QP_store, int QP_stride, |
93 PPMode *mode, pp_context_t *ppContext, int pict_type); | 35 pp_mode_t *mode, pp_context_t *ppContext, int pict_type); |
94 | 36 |
95 // name is the stuff after "-pp" on the command line | 37 // name is the stuff after "-pp" on the command line |
96 PPMode pp_get_mode_by_name_and_quality(char *name, int quality); | 38 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); |
39 void pp_free_mode(pp_mode_t *mode); | |
97 | 40 |
98 pp_context_t *pp_get_context(int width, int height, int cpuCaps); | 41 pp_context_t *pp_get_context(int width, int height, int cpuCaps); |
99 void pp_free_context(pp_context_t *ppContext); | 42 void pp_free_context(pp_context_t *ppContext); |
100 | 43 |
101 #define PP_CPU_CAPS_MMX 0x80000000 | 44 #define PP_CPU_CAPS_MMX 0x80000000 |