Mercurial > mplayer.hg
annotate libswscale/swscale_internal.h @ 29037:77ebd4202149
spelling fixes, add release name
author | diego |
---|---|
date | Fri, 27 Mar 2009 19:09:33 +0000 |
parents | f8db50af4035 |
children | c198fbb7172e |
rev | line source |
---|---|
18861 | 1 /* |
20094
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
2 * Copyright (C) 2001-2003 Michael Niedermayer <michaelni@gmx.at> |
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
3 * |
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
4 * This file is part of FFmpeg. |
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
5 * |
21029
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
6 * FFmpeg is free software; you can redistribute it and/or |
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
7 * modify it under the terms of the GNU Lesser General Public |
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
8 * License as published by the Free Software Foundation; either |
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
9 * version 2.1 of the License, or (at your option) any later version. |
20094
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
10 * |
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
11 * FFmpeg is distributed in the hope that it will be useful, |
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
21029
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
14 * Lesser General Public License for more details. |
20094
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
15 * |
21029
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
16 * You should have received a copy of the GNU Lesser General Public |
1f2ba24b4e47
Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents:
20411
diff
changeset
|
17 * License along with FFmpeg; if not, write to the Free Software |
23702 | 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20094
aca9e9783f67
Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents:
19872
diff
changeset
|
19 */ |
18861 | 20 |
27467
239a049163eb
Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents:
27212
diff
changeset
|
21 #ifndef SWSCALE_SWSCALE_INTERNAL_H |
239a049163eb
Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents:
27212
diff
changeset
|
22 #define SWSCALE_SWSCALE_INTERNAL_H |
18861 | 23 |
25288
831fbe89f76b
Fix 'make checkheaders' on AltiVec-enabled systems.
diego
parents:
24772
diff
changeset
|
24 #include "config.h" |
831fbe89f76b
Fix 'make checkheaders' on AltiVec-enabled systems.
diego
parents:
24772
diff
changeset
|
25 |
28276 | 26 #if HAVE_ALTIVEC_H |
18861 | 27 #include <altivec.h> |
28 #endif | |
29 | |
26670
e6774798e913
Use full path for #includes from another directory.
diego
parents:
26178
diff
changeset
|
30 #include "libavutil/avutil.h" |
19143
c4dac777b44c
Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents:
18861
diff
changeset
|
31 |
27514 | 32 #define STR(s) AV_TOSTRING(s) //AV_STRINGIFY is too long |
27513 | 33 |
18861 | 34 #define MAX_FILTER_SIZE 256 |
35 | |
26133
94cc4bac8cd0
Turn ancient V offset numerical constants into named ones.
michael
parents:
26028
diff
changeset
|
36 #define VOFW 2048 |
26177 | 37 #define VOF (VOFW*2) |
26133
94cc4bac8cd0
Turn ancient V offset numerical constants into named ones.
michael
parents:
26028
diff
changeset
|
38 |
27490 | 39 #ifdef WORDS_BIGENDIAN |
40 #define ALT32_CORR (-1) | |
41 #else | |
42 #define ALT32_CORR 1 | |
43 #endif | |
44 | |
28276 | 45 #if ARCH_X86_64 |
27513 | 46 # define APCK_PTR2 8 |
47 # define APCK_COEF 16 | |
48 # define APCK_SIZE 24 | |
49 #else | |
50 # define APCK_PTR2 4 | |
51 # define APCK_COEF 8 | |
52 # define APCK_SIZE 16 | |
53 #endif | |
54 | |
28318
6142aa6d6f38
Declare struct SwsContext before using it, fixes the checkheaders warning:
diego
parents:
28276
diff
changeset
|
55 struct SwsContext; |
6142aa6d6f38
Declare struct SwsContext before using it, fixes the checkheaders warning:
diego
parents:
28276
diff
changeset
|
56 |
18861 | 57 typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, |
58 int srcSliceH, uint8_t* dst[], int dstStride[]); | |
59 | |
27158 | 60 /* This struct should be aligned on at least a 32-byte boundary. */ |
18861 | 61 typedef struct SwsContext{ |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
62 /** |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
63 * info on struct for av_log |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
64 */ |
26178 | 65 const AVClass *av_class; |
21981 | 66 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
67 /** |
25457 | 68 * Note that src, dst, srcStride, dstStride will be copied in the |
69 * sws_scale() wrapper so they can be freely modified here. | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
70 */ |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
71 SwsFunc swScale; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
72 int srcW, srcH, dstH; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
73 int chrSrcW, chrSrcH, chrDstW, chrDstH; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
74 int lumXInc, chrXInc; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
75 int lumYInc, chrYInc; |
27695
9cf6c7c5c7cd
Change variable types from int to enum PixelFormat.
cehoyos
parents:
27567
diff
changeset
|
76 enum PixelFormat dstFormat, srcFormat; ///< format 4:2:0 type is always YV12 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
77 int origDstFormat, origSrcFormat; ///< format |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
78 int chrSrcHSubSample, chrSrcVSubSample; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
79 int chrIntHSubSample, chrIntVSubSample; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
80 int chrDstHSubSample, chrDstVSubSample; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
81 int vChrDrop; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
82 int sliceDir; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
83 double param[2]; |
18861 | 84 |
27698 | 85 uint32_t pal_yuv[256]; |
86 uint32_t pal_rgb[256]; | |
87 | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
88 int16_t **lumPixBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
89 int16_t **chrPixBuf; |
28976 | 90 int16_t **alpPixBuf; |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
91 int16_t *hLumFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
92 int16_t *hLumFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
93 int16_t *hChrFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
94 int16_t *hChrFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
95 int16_t *vLumFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
96 int16_t *vLumFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
97 int16_t *vChrFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
98 int16_t *vChrFilterPos; |
18861 | 99 |
27158 | 100 uint8_t formatConvBuffer[VOF]; //FIXME dynamic allocation, but we have to change a lot of code for this to be useful |
18861 | 101 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
102 int hLumFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
103 int hChrFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
104 int vLumFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
105 int vChrFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
106 int vLumBufSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
107 int vChrBufSize; |
18861 | 108 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
109 uint8_t *funnyYCode; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
110 uint8_t *funnyUVCode; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
111 int32_t *lumMmx2FilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
112 int32_t *chrMmx2FilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
113 int16_t *lumMmx2Filter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
114 int16_t *chrMmx2Filter; |
18861 | 115 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
116 int canMMX2BeUsed; |
18861 | 117 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
118 int lastInLumBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
119 int lastInChrBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
120 int lumBufIndex; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
121 int chrBufIndex; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
122 int dstY; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
123 int flags; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
124 void * yuvTable; // pointer to the yuv->rgb table start so it can be freed() |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
125 uint8_t * table_rV[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
126 uint8_t * table_gU[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
127 int table_gV[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
128 uint8_t * table_bU[256]; |
18861 | 129 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
130 //Colorspace stuff |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
131 int contrast, brightness, saturation; // for sws_getColorspaceDetails |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
132 int srcColorspaceTable[4]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
133 int dstColorspaceTable[4]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
134 int srcRange, dstRange; |
27567
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
135 int yuv2rgb_y_offset; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
136 int yuv2rgb_y_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
137 int yuv2rgb_v2r_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
138 int yuv2rgb_v2g_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
139 int yuv2rgb_u2g_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
140 int yuv2rgb_u2b_coeff; |
18861 | 141 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
142 #define RED_DITHER "0*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
143 #define GREEN_DITHER "1*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
144 #define BLUE_DITHER "2*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
145 #define Y_COEFF "3*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
146 #define VR_COEFF "4*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
147 #define UB_COEFF "5*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
148 #define VG_COEFF "6*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
149 #define UG_COEFF "7*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
150 #define Y_OFFSET "8*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
151 #define U_OFFSET "9*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
152 #define V_OFFSET "10*8" |
18861 | 153 #define LUM_MMX_FILTER_OFFSET "11*8" |
154 #define CHR_MMX_FILTER_OFFSET "11*8+4*4*256" | |
27158 | 155 #define DSTW_OFFSET "11*8+4*4*256*2" //do not change, it is hardcoded in the ASM |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
156 #define ESP_OFFSET "11*8+4*4*256*2+8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
157 #define VROUNDER_OFFSET "11*8+4*4*256*2+16" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
158 #define U_TEMP "11*8+4*4*256*2+24" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
159 #define V_TEMP "11*8+4*4*256*2+32" |
28976 | 160 #define Y_TEMP "11*8+4*4*256*2+40" |
161 #define ALP_MMX_FILTER_OFFSET "11*8+4*4*256*2+48" | |
19172
bae6c99a99cc
vertical scaler with accurate rounding, some people on doom9 can see +-1 errors
michael
parents:
19143
diff
changeset
|
162 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
163 uint64_t redDither __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
164 uint64_t greenDither __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
165 uint64_t blueDither __attribute__((aligned(8))); |
18861 | 166 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
167 uint64_t yCoeff __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
168 uint64_t vrCoeff __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
169 uint64_t ubCoeff __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
170 uint64_t vgCoeff __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
171 uint64_t ugCoeff __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
172 uint64_t yOffset __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
173 uint64_t uOffset __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
174 uint64_t vOffset __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
175 int32_t lumMmxFilter[4*MAX_FILTER_SIZE]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
176 int32_t chrMmxFilter[4*MAX_FILTER_SIZE]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
177 int dstW; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
178 uint64_t esp __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
179 uint64_t vRounder __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
180 uint64_t u_temp __attribute__((aligned(8))); |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
181 uint64_t v_temp __attribute__((aligned(8))); |
28976 | 182 uint64_t y_temp __attribute__((aligned(8))); |
183 int32_t alpMmxFilter[4*MAX_FILTER_SIZE]; | |
18861 | 184 |
28276 | 185 #if HAVE_ALTIVEC |
18861 | 186 |
187 vector signed short CY; | |
188 vector signed short CRV; | |
189 vector signed short CBU; | |
190 vector signed short CGU; | |
191 vector signed short CGV; | |
192 vector signed short OY; | |
193 vector unsigned short CSHIFT; | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
194 vector signed short *vYCoeffsBank, *vCCoeffsBank; |
18861 | 195 |
196 #endif | |
197 | |
23289
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
198 |
28276 | 199 #if ARCH_BFIN |
23289
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
200 uint32_t oy __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
201 uint32_t oc __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
202 uint32_t zero __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
203 uint32_t cy __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
204 uint32_t crv __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
205 uint32_t rmask __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
206 uint32_t cbu __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
207 uint32_t bmask __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
208 uint32_t cgu __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
209 uint32_t cgv __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
210 uint32_t gmask __attribute__((aligned(4))); |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
211 #endif |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
212 |
28276 | 213 #if HAVE_VIS |
23805 | 214 uint64_t sparc_coeffs[10] __attribute__((aligned(8))); |
215 #endif | |
23289
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
216 |
18861 | 217 } SwsContext; |
218 //FIXME check init (where 0) | |
219 | |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
220 SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c); |
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
221 int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation); |
18861 | 222 |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
223 void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], int brightness, int contrast, int saturation); |
29028 | 224 SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c); |
225 SwsFunc ff_yuv2rgb_init_vis(SwsContext *c); | |
226 SwsFunc ff_yuv2rgb_init_mlib(SwsContext *c); | |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
227 SwsFunc ff_yuv2rgb_init_altivec(SwsContext *c); |
29028 | 228 SwsFunc ff_yuv2rgb_get_func_ptr_bfin(SwsContext *c); |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
229 void ff_yuv2packedX_altivec(SwsContext *c, |
25291
c48b33da31d3
Add missing declarations for AltiVec functions, fixes the warnings:
diego
parents:
25288
diff
changeset
|
230 int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize, |
c48b33da31d3
Add missing declarations for AltiVec functions, fixes the warnings:
diego
parents:
25288
diff
changeset
|
231 int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, |
c48b33da31d3
Add missing declarations for AltiVec functions, fixes the warnings:
diego
parents:
25288
diff
changeset
|
232 uint8_t *dest, int dstW, int dstY); |
c48b33da31d3
Add missing declarations for AltiVec functions, fixes the warnings:
diego
parents:
25288
diff
changeset
|
233 |
26151
5884743208b6
change sws_format_name to return const char*, supress many warnings
bcoudurier
parents:
26133
diff
changeset
|
234 const char *sws_format_name(int format); |
19143
c4dac777b44c
Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents:
18861
diff
changeset
|
235 |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
236 //FIXME replace this with something faster |
23278 | 237 #define isPlanarYUV(x) ( \ |
238 (x)==PIX_FMT_YUV410P \ | |
239 || (x)==PIX_FMT_YUV420P \ | |
28832 | 240 || (x)==PIX_FMT_YUVA420P \ |
23278 | 241 || (x)==PIX_FMT_YUV411P \ |
242 || (x)==PIX_FMT_YUV422P \ | |
243 || (x)==PIX_FMT_YUV444P \ | |
23791 | 244 || (x)==PIX_FMT_YUV440P \ |
23278 | 245 || (x)==PIX_FMT_NV12 \ |
246 || (x)==PIX_FMT_NV21 \ | |
247 ) | |
248 #define isYUV(x) ( \ | |
249 (x)==PIX_FMT_UYVY422 \ | |
250 || (x)==PIX_FMT_YUYV422 \ | |
251 || isPlanarYUV(x) \ | |
252 ) | |
253 #define isGray(x) ( \ | |
254 (x)==PIX_FMT_GRAY8 \ | |
255 || (x)==PIX_FMT_GRAY16BE \ | |
256 || (x)==PIX_FMT_GRAY16LE \ | |
257 ) | |
258 #define isGray16(x) ( \ | |
259 (x)==PIX_FMT_GRAY16BE \ | |
260 || (x)==PIX_FMT_GRAY16LE \ | |
261 ) | |
262 #define isRGB(x) ( \ | |
27488 | 263 (x)==PIX_FMT_RGB32 \ |
27490 | 264 || (x)==PIX_FMT_RGB32_1 \ |
23278 | 265 || (x)==PIX_FMT_RGB24 \ |
266 || (x)==PIX_FMT_RGB565 \ | |
267 || (x)==PIX_FMT_RGB555 \ | |
268 || (x)==PIX_FMT_RGB8 \ | |
269 || (x)==PIX_FMT_RGB4 \ | |
270 || (x)==PIX_FMT_RGB4_BYTE \ | |
271 || (x)==PIX_FMT_MONOBLACK \ | |
27554
021a1889cc26
Add support for PIX_FMT_MONOWHITE as output format.
michael
parents:
27551
diff
changeset
|
272 || (x)==PIX_FMT_MONOWHITE \ |
23278 | 273 ) |
274 #define isBGR(x) ( \ | |
27488 | 275 (x)==PIX_FMT_BGR32 \ |
27490 | 276 || (x)==PIX_FMT_BGR32_1 \ |
23278 | 277 || (x)==PIX_FMT_BGR24 \ |
278 || (x)==PIX_FMT_BGR565 \ | |
279 || (x)==PIX_FMT_BGR555 \ | |
280 || (x)==PIX_FMT_BGR8 \ | |
281 || (x)==PIX_FMT_BGR4 \ | |
282 || (x)==PIX_FMT_BGR4_BYTE \ | |
283 || (x)==PIX_FMT_MONOBLACK \ | |
27554
021a1889cc26
Add support for PIX_FMT_MONOWHITE as output format.
michael
parents:
27551
diff
changeset
|
284 || (x)==PIX_FMT_MONOWHITE \ |
23278 | 285 ) |
28712
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
286 #define isALPHA(x) ( \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
287 (x)==PIX_FMT_BGR32 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
288 || (x)==PIX_FMT_BGR32_1 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
289 || (x)==PIX_FMT_RGB32 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
290 || (x)==PIX_FMT_RGB32_1 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
291 || (x)==PIX_FMT_YUVA420P \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
292 ) |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
293 |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
294 static inline int fmt_depth(int fmt) |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
295 { |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
296 switch(fmt) { |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
297 case PIX_FMT_BGRA: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
298 case PIX_FMT_ABGR: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
299 case PIX_FMT_RGBA: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
300 case PIX_FMT_ARGB: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
301 return 32; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
302 case PIX_FMT_BGR24: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
303 case PIX_FMT_RGB24: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
304 return 24; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
305 case PIX_FMT_BGR565: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
306 case PIX_FMT_RGB565: |
20411 | 307 case PIX_FMT_GRAY16BE: |
308 case PIX_FMT_GRAY16LE: | |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
309 return 16; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
310 case PIX_FMT_BGR555: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
311 case PIX_FMT_RGB555: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
312 return 15; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
313 case PIX_FMT_BGR8: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
314 case PIX_FMT_RGB8: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
315 return 8; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
316 case PIX_FMT_BGR4: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
317 case PIX_FMT_RGB4: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
318 case PIX_FMT_BGR4_BYTE: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
319 case PIX_FMT_RGB4_BYTE: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
320 return 4; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
321 case PIX_FMT_MONOBLACK: |
27554
021a1889cc26
Add support for PIX_FMT_MONOWHITE as output format.
michael
parents:
27551
diff
changeset
|
322 case PIX_FMT_MONOWHITE: |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
323 return 1; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
324 default: |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
325 return 0; |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
326 } |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
327 } |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
328 |
28463
4f01aa9c448f
Drop DECLARE_ALIGNED from extern declarations. It creates trouble when
diego
parents:
28461
diff
changeset
|
329 extern const uint64_t ff_dither4[2]; |
4f01aa9c448f
Drop DECLARE_ALIGNED from extern declarations. It creates trouble when
diego
parents:
28461
diff
changeset
|
330 extern const uint64_t ff_dither8[2]; |
26028 | 331 |
27212
18fc658de355
Split AVOption/AVClass in a separate file. SoC Patch from Keiji Costantini
lu_zero
parents:
27158
diff
changeset
|
332 extern const AVClass sws_context_class; |
18fc658de355
Split AVOption/AVClass in a separate file. SoC Patch from Keiji Costantini
lu_zero
parents:
27158
diff
changeset
|
333 |
27467
239a049163eb
Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents:
27212
diff
changeset
|
334 #endif /* SWSCALE_SWSCALE_INTERNAL_H */ |