Mercurial > mplayer.hg
comparison libswscale/swscale_internal.h @ 23155:1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
author | diego |
---|---|
date | Sun, 29 Apr 2007 13:39:27 +0000 |
parents | 29827d88d2da |
children | b745a8414f2c |
comparison
equal
deleted
inserted
replaced
23154:e564b9cd7290 | 23155:1befc8d767cd |
---|---|
38 typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, | 38 typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, |
39 int srcSliceH, uint8_t* dst[], int dstStride[]); | 39 int srcSliceH, uint8_t* dst[], int dstStride[]); |
40 | 40 |
41 /* this struct should be aligned on at least 32-byte boundary */ | 41 /* this struct should be aligned on at least 32-byte boundary */ |
42 typedef struct SwsContext{ | 42 typedef struct SwsContext{ |
43 /** | 43 /** |
44 * info on struct for av_log | 44 * info on struct for av_log |
45 */ | 45 */ |
46 AVClass *av_class; | 46 AVClass *av_class; |
47 | 47 |
48 /** | 48 /** |
49 * | 49 * |
50 * Note the src,dst,srcStride,dstStride will be copied, in the sws_scale() warper so they can freely be modified here | 50 * Note the src,dst,srcStride,dstStride will be copied, in the sws_scale() warper so they can freely be modified here |
51 */ | 51 */ |
52 SwsFunc swScale; | 52 SwsFunc swScale; |
53 int srcW, srcH, dstH; | 53 int srcW, srcH, dstH; |
54 int chrSrcW, chrSrcH, chrDstW, chrDstH; | 54 int chrSrcW, chrSrcH, chrDstW, chrDstH; |
55 int lumXInc, chrXInc; | 55 int lumXInc, chrXInc; |
56 int lumYInc, chrYInc; | 56 int lumYInc, chrYInc; |
57 int dstFormat, srcFormat; ///< format 4:2:0 type is always YV12 | 57 int dstFormat, srcFormat; ///< format 4:2:0 type is always YV12 |
58 int origDstFormat, origSrcFormat; ///< format | 58 int origDstFormat, origSrcFormat; ///< format |
59 int chrSrcHSubSample, chrSrcVSubSample; | 59 int chrSrcHSubSample, chrSrcVSubSample; |
60 int chrIntHSubSample, chrIntVSubSample; | 60 int chrIntHSubSample, chrIntVSubSample; |
61 int chrDstHSubSample, chrDstVSubSample; | 61 int chrDstHSubSample, chrDstVSubSample; |
62 int vChrDrop; | 62 int vChrDrop; |
63 int sliceDir; | 63 int sliceDir; |
64 double param[2]; | 64 double param[2]; |
65 | 65 |
66 int16_t **lumPixBuf; | 66 int16_t **lumPixBuf; |
67 int16_t **chrPixBuf; | 67 int16_t **chrPixBuf; |
68 int16_t *hLumFilter; | 68 int16_t *hLumFilter; |
69 int16_t *hLumFilterPos; | 69 int16_t *hLumFilterPos; |
70 int16_t *hChrFilter; | 70 int16_t *hChrFilter; |
71 int16_t *hChrFilterPos; | 71 int16_t *hChrFilterPos; |
72 int16_t *vLumFilter; | 72 int16_t *vLumFilter; |
73 int16_t *vLumFilterPos; | 73 int16_t *vLumFilterPos; |
74 int16_t *vChrFilter; | 74 int16_t *vChrFilter; |
75 int16_t *vChrFilterPos; | 75 int16_t *vChrFilterPos; |
76 | 76 |
77 uint8_t formatConvBuffer[4000]; //FIXME dynamic alloc, but we have to change a lot of code for this to be useful | 77 uint8_t formatConvBuffer[4000]; //FIXME dynamic alloc, but we have to change a lot of code for this to be useful |
78 | 78 |
79 int hLumFilterSize; | 79 int hLumFilterSize; |
80 int hChrFilterSize; | 80 int hChrFilterSize; |
81 int vLumFilterSize; | 81 int vLumFilterSize; |
82 int vChrFilterSize; | 82 int vChrFilterSize; |
83 int vLumBufSize; | 83 int vLumBufSize; |
84 int vChrBufSize; | 84 int vChrBufSize; |
85 | 85 |
86 uint8_t *funnyYCode; | 86 uint8_t *funnyYCode; |
87 uint8_t *funnyUVCode; | 87 uint8_t *funnyUVCode; |
88 int32_t *lumMmx2FilterPos; | 88 int32_t *lumMmx2FilterPos; |
89 int32_t *chrMmx2FilterPos; | 89 int32_t *chrMmx2FilterPos; |
90 int16_t *lumMmx2Filter; | 90 int16_t *lumMmx2Filter; |
91 int16_t *chrMmx2Filter; | 91 int16_t *chrMmx2Filter; |
92 | 92 |
93 int canMMX2BeUsed; | 93 int canMMX2BeUsed; |
94 | 94 |
95 int lastInLumBuf; | 95 int lastInLumBuf; |
96 int lastInChrBuf; | 96 int lastInChrBuf; |
97 int lumBufIndex; | 97 int lumBufIndex; |
98 int chrBufIndex; | 98 int chrBufIndex; |
99 int dstY; | 99 int dstY; |
100 int flags; | 100 int flags; |
101 void * yuvTable; // pointer to the yuv->rgb table start so it can be freed() | 101 void * yuvTable; // pointer to the yuv->rgb table start so it can be freed() |
102 uint8_t * table_rV[256]; | 102 uint8_t * table_rV[256]; |
103 uint8_t * table_gU[256]; | 103 uint8_t * table_gU[256]; |
104 int table_gV[256]; | 104 int table_gV[256]; |
105 uint8_t * table_bU[256]; | 105 uint8_t * table_bU[256]; |
106 | 106 |
107 //Colorspace stuff | 107 //Colorspace stuff |
108 int contrast, brightness, saturation; // for sws_getColorspaceDetails | 108 int contrast, brightness, saturation; // for sws_getColorspaceDetails |
109 int srcColorspaceTable[4]; | 109 int srcColorspaceTable[4]; |
110 int dstColorspaceTable[4]; | 110 int dstColorspaceTable[4]; |
111 int srcRange, dstRange; | 111 int srcRange, dstRange; |
112 | 112 |
113 #define RED_DITHER "0*8" | 113 #define RED_DITHER "0*8" |
114 #define GREEN_DITHER "1*8" | 114 #define GREEN_DITHER "1*8" |
115 #define BLUE_DITHER "2*8" | 115 #define BLUE_DITHER "2*8" |
116 #define Y_COEFF "3*8" | 116 #define Y_COEFF "3*8" |
117 #define VR_COEFF "4*8" | 117 #define VR_COEFF "4*8" |
118 #define UB_COEFF "5*8" | 118 #define UB_COEFF "5*8" |
119 #define VG_COEFF "6*8" | 119 #define VG_COEFF "6*8" |
120 #define UG_COEFF "7*8" | 120 #define UG_COEFF "7*8" |
121 #define Y_OFFSET "8*8" | 121 #define Y_OFFSET "8*8" |
122 #define U_OFFSET "9*8" | 122 #define U_OFFSET "9*8" |
123 #define V_OFFSET "10*8" | 123 #define V_OFFSET "10*8" |
124 #define LUM_MMX_FILTER_OFFSET "11*8" | 124 #define LUM_MMX_FILTER_OFFSET "11*8" |
125 #define CHR_MMX_FILTER_OFFSET "11*8+4*4*256" | 125 #define CHR_MMX_FILTER_OFFSET "11*8+4*4*256" |
126 #define DSTW_OFFSET "11*8+4*4*256*2" //do not change, its hardcoded in the asm | 126 #define DSTW_OFFSET "11*8+4*4*256*2" //do not change, its hardcoded in the asm |
127 #define ESP_OFFSET "11*8+4*4*256*2+8" | 127 #define ESP_OFFSET "11*8+4*4*256*2+8" |
128 #define VROUNDER_OFFSET "11*8+4*4*256*2+16" | 128 #define VROUNDER_OFFSET "11*8+4*4*256*2+16" |
129 #define U_TEMP "11*8+4*4*256*2+24" | 129 #define U_TEMP "11*8+4*4*256*2+24" |
130 #define V_TEMP "11*8+4*4*256*2+32" | 130 #define V_TEMP "11*8+4*4*256*2+32" |
131 | 131 |
132 uint64_t redDither __attribute__((aligned(8))); | 132 uint64_t redDither __attribute__((aligned(8))); |
133 uint64_t greenDither __attribute__((aligned(8))); | 133 uint64_t greenDither __attribute__((aligned(8))); |
134 uint64_t blueDither __attribute__((aligned(8))); | 134 uint64_t blueDither __attribute__((aligned(8))); |
135 | 135 |
136 uint64_t yCoeff __attribute__((aligned(8))); | 136 uint64_t yCoeff __attribute__((aligned(8))); |
137 uint64_t vrCoeff __attribute__((aligned(8))); | 137 uint64_t vrCoeff __attribute__((aligned(8))); |
138 uint64_t ubCoeff __attribute__((aligned(8))); | 138 uint64_t ubCoeff __attribute__((aligned(8))); |
139 uint64_t vgCoeff __attribute__((aligned(8))); | 139 uint64_t vgCoeff __attribute__((aligned(8))); |
140 uint64_t ugCoeff __attribute__((aligned(8))); | 140 uint64_t ugCoeff __attribute__((aligned(8))); |
141 uint64_t yOffset __attribute__((aligned(8))); | 141 uint64_t yOffset __attribute__((aligned(8))); |
142 uint64_t uOffset __attribute__((aligned(8))); | 142 uint64_t uOffset __attribute__((aligned(8))); |
143 uint64_t vOffset __attribute__((aligned(8))); | 143 uint64_t vOffset __attribute__((aligned(8))); |
144 int32_t lumMmxFilter[4*MAX_FILTER_SIZE]; | 144 int32_t lumMmxFilter[4*MAX_FILTER_SIZE]; |
145 int32_t chrMmxFilter[4*MAX_FILTER_SIZE]; | 145 int32_t chrMmxFilter[4*MAX_FILTER_SIZE]; |
146 int dstW; | 146 int dstW; |
147 uint64_t esp __attribute__((aligned(8))); | 147 uint64_t esp __attribute__((aligned(8))); |
148 uint64_t vRounder __attribute__((aligned(8))); | 148 uint64_t vRounder __attribute__((aligned(8))); |
149 uint64_t u_temp __attribute__((aligned(8))); | 149 uint64_t u_temp __attribute__((aligned(8))); |
150 uint64_t v_temp __attribute__((aligned(8))); | 150 uint64_t v_temp __attribute__((aligned(8))); |
151 | 151 |
152 #ifdef HAVE_ALTIVEC | 152 #ifdef HAVE_ALTIVEC |
153 | 153 |
154 vector signed short CY; | 154 vector signed short CY; |
155 vector signed short CRV; | 155 vector signed short CRV; |
156 vector signed short CBU; | 156 vector signed short CBU; |
157 vector signed short CGU; | 157 vector signed short CGU; |
158 vector signed short CGV; | 158 vector signed short CGV; |
159 vector signed short OY; | 159 vector signed short OY; |
160 vector unsigned short CSHIFT; | 160 vector unsigned short CSHIFT; |
161 vector signed short *vYCoeffsBank, *vCCoeffsBank; | 161 vector signed short *vYCoeffsBank, *vCCoeffsBank; |
162 | 162 |
163 #endif | 163 #endif |
164 | 164 |
165 } SwsContext; | 165 } SwsContext; |
166 //FIXME check init (where 0) | 166 //FIXME check init (where 0) |
169 int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation); | 169 int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation); |
170 | 170 |
171 char *sws_format_name(int format); | 171 char *sws_format_name(int format); |
172 | 172 |
173 //FIXME replace this with something faster | 173 //FIXME replace this with something faster |
174 #define isPlanarYUV(x) ((x)==PIX_FMT_YUV410P || (x)==PIX_FMT_YUV420P \ | 174 #define isPlanarYUV(x) ((x)==PIX_FMT_YUV410P || (x)==PIX_FMT_YUV420P \ |
175 || (x)==PIX_FMT_YUV411P || (x)==PIX_FMT_YUV422P \ | 175 || (x)==PIX_FMT_YUV411P || (x)==PIX_FMT_YUV422P \ |
176 || (x)==PIX_FMT_YUV444P || (x)==PIX_FMT_NV12 \ | 176 || (x)==PIX_FMT_YUV444P || (x)==PIX_FMT_NV12 \ |
177 || (x)==PIX_FMT_NV21) | 177 || (x)==PIX_FMT_NV21) |
178 #define isYUV(x) ((x)==PIX_FMT_UYVY422 || (x)==PIX_FMT_YUYV422 || isPlanarYUV(x)) | 178 #define isYUV(x) ((x)==PIX_FMT_UYVY422 || (x)==PIX_FMT_YUYV422 || isPlanarYUV(x)) |
179 #define isGray(x) ((x)==PIX_FMT_GRAY8 || (x)==PIX_FMT_GRAY16BE || (x)==PIX_FMT_GRAY16LE) | 179 #define isGray(x) ((x)==PIX_FMT_GRAY8 || (x)==PIX_FMT_GRAY16BE || (x)==PIX_FMT_GRAY16LE) |
180 #define isGray16(x) ((x)==PIX_FMT_GRAY16BE || (x)==PIX_FMT_GRAY16LE) | 180 #define isGray16(x) ((x)==PIX_FMT_GRAY16BE || (x)==PIX_FMT_GRAY16LE) |
181 #define isRGB(x) ((x)==PIX_FMT_BGR32 || (x)==PIX_FMT_RGB24 \ | 181 #define isRGB(x) ((x)==PIX_FMT_BGR32 || (x)==PIX_FMT_RGB24 \ |
182 || (x)==PIX_FMT_RGB565 || (x)==PIX_FMT_RGB555 \ | 182 || (x)==PIX_FMT_RGB565 || (x)==PIX_FMT_RGB555 \ |
183 || (x)==PIX_FMT_RGB8 || (x)==PIX_FMT_RGB4 || (x)==PIX_FMT_RGB4_BYTE \ | 183 || (x)==PIX_FMT_RGB8 || (x)==PIX_FMT_RGB4 || (x)==PIX_FMT_RGB4_BYTE \ |
184 || (x)==PIX_FMT_MONOBLACK) | 184 || (x)==PIX_FMT_MONOBLACK) |
185 #define isBGR(x) ((x)==PIX_FMT_RGB32 || (x)==PIX_FMT_BGR24 \ | 185 #define isBGR(x) ((x)==PIX_FMT_RGB32 || (x)==PIX_FMT_BGR24 \ |
186 || (x)==PIX_FMT_BGR565 || (x)==PIX_FMT_BGR555 \ | 186 || (x)==PIX_FMT_BGR565 || (x)==PIX_FMT_BGR555 \ |
187 || (x)==PIX_FMT_BGR8 || (x)==PIX_FMT_BGR4 || (x)==PIX_FMT_BGR4_BYTE \ | 187 || (x)==PIX_FMT_BGR8 || (x)==PIX_FMT_BGR4 || (x)==PIX_FMT_BGR4_BYTE \ |
188 || (x)==PIX_FMT_MONOBLACK) | 188 || (x)==PIX_FMT_MONOBLACK) |
189 | 189 |
190 static inline int fmt_depth(int fmt) | 190 static inline int fmt_depth(int fmt) |
191 { | 191 { |
192 switch(fmt) { | 192 switch(fmt) { |
193 case PIX_FMT_BGRA: | 193 case PIX_FMT_BGRA: |