Mercurial > mplayer.hg
annotate libswscale/swscale_internal.h @ 29888:5c39c41f38e8
Deobfuscate the special hack to disable cache for live555.
Cache can not be used for it, since it does not provide any
data stream, the data is provided to the demuxer "behind
MPlayer's back".
author | reimar |
---|---|
date | Tue, 17 Nov 2009 19:23:55 +0000 |
parents | ff34398b14b1 |
children | 3b0026eb9c4d |
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 | |
29214
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
36 #if ARCH_X86 |
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
37 #define VOFW 5120 |
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
38 #else |
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
39 #define VOFW 2048 // faster on PPC and not tested on others |
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
40 #endif |
a1abd8d51b81
Change VOFW for x86 to 5120, it allows larger images to be scaled and was
michael
parents:
29176
diff
changeset
|
41 |
26177 | 42 #define VOF (VOFW*2) |
26133
94cc4bac8cd0
Turn ancient V offset numerical constants into named ones.
michael
parents:
26028
diff
changeset
|
43 |
29397 | 44 #if HAVE_BIGENDIAN |
27490 | 45 #define ALT32_CORR (-1) |
46 #else | |
47 #define ALT32_CORR 1 | |
48 #endif | |
49 | |
28276 | 50 #if ARCH_X86_64 |
27513 | 51 # define APCK_PTR2 8 |
52 # define APCK_COEF 16 | |
53 # define APCK_SIZE 24 | |
54 #else | |
55 # define APCK_PTR2 4 | |
56 # define APCK_COEF 8 | |
57 # define APCK_SIZE 16 | |
58 #endif | |
59 | |
28318
6142aa6d6f38
Declare struct SwsContext before using it, fixes the checkheaders warning:
diego
parents:
28276
diff
changeset
|
60 struct SwsContext; |
6142aa6d6f38
Declare struct SwsContext before using it, fixes the checkheaders warning:
diego
parents:
28276
diff
changeset
|
61 |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
62 typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
63 int srcStride[], int srcSliceY, int srcSliceH, |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
64 uint8_t* dst[], int dstStride[]); |
18861 | 65 |
27158 | 66 /* This struct should be aligned on at least a 32-byte boundary. */ |
29481 | 67 typedef struct SwsContext { |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
68 /** |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
69 * info on struct for av_log |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
70 */ |
26178 | 71 const AVClass *av_class; |
21981 | 72 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
73 /** |
25457 | 74 * Note that src, dst, srcStride, dstStride will be copied in the |
75 * 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
|
76 */ |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
77 SwsFunc swScale; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
78 int srcW, srcH, dstH; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
79 int chrSrcW, chrSrcH, chrDstW, chrDstH; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
80 int lumXInc, chrXInc; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
81 int lumYInc, chrYInc; |
27695
9cf6c7c5c7cd
Change variable types from int to enum PixelFormat.
cehoyos
parents:
27567
diff
changeset
|
82 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
|
83 int origDstFormat, origSrcFormat; ///< format |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
84 int chrSrcHSubSample, chrSrcVSubSample; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
85 int chrDstHSubSample, chrDstVSubSample; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
86 int vChrDrop; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
87 int sliceDir; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
88 double param[2]; |
18861 | 89 |
27698 | 90 uint32_t pal_yuv[256]; |
91 uint32_t pal_rgb[256]; | |
92 | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
93 int16_t **lumPixBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
94 int16_t **chrPixBuf; |
28976 | 95 int16_t **alpPixBuf; |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
96 int16_t *hLumFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
97 int16_t *hLumFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
98 int16_t *hChrFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
99 int16_t *hChrFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
100 int16_t *vLumFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
101 int16_t *vLumFilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
102 int16_t *vChrFilter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
103 int16_t *vChrFilterPos; |
18861 | 104 |
27158 | 105 uint8_t formatConvBuffer[VOF]; //FIXME dynamic allocation, but we have to change a lot of code for this to be useful |
18861 | 106 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
107 int hLumFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
108 int hChrFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
109 int vLumFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
110 int vChrFilterSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
111 int vLumBufSize; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
112 int vChrBufSize; |
18861 | 113 |
29468
947a942221c4
MMX2 horizontal scaler: Determine code size at runtime.
ramiro
parents:
29465
diff
changeset
|
114 int lumMmx2FilterCodeSize; |
947a942221c4
MMX2 horizontal scaler: Determine code size at runtime.
ramiro
parents:
29465
diff
changeset
|
115 int chrMmx2FilterCodeSize; |
29465 | 116 uint8_t *lumMmx2FilterCode; |
117 uint8_t *chrMmx2FilterCode; | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
118 int32_t *lumMmx2FilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
119 int32_t *chrMmx2FilterPos; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
120 int16_t *lumMmx2Filter; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
121 int16_t *chrMmx2Filter; |
18861 | 122 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
123 int canMMX2BeUsed; |
18861 | 124 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
125 int lastInLumBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
126 int lastInChrBuf; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
127 int lumBufIndex; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
128 int chrBufIndex; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
129 int dstY; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
130 int flags; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
131 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
|
132 uint8_t * table_rV[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
133 uint8_t * table_gU[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
134 int table_gV[256]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
135 uint8_t * table_bU[256]; |
18861 | 136 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
137 //Colorspace stuff |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
138 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
|
139 int srcColorspaceTable[4]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
140 int dstColorspaceTable[4]; |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
141 int srcRange, dstRange; |
27567
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
142 int yuv2rgb_y_offset; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
143 int yuv2rgb_y_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
144 int yuv2rgb_v2r_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
145 int yuv2rgb_v2g_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
146 int yuv2rgb_u2g_coeff; |
203ac2c7f613
Rename yuv2rgb variables to avoid name clashes with the ones used by bfin asm.
michael
parents:
27554
diff
changeset
|
147 int yuv2rgb_u2b_coeff; |
18861 | 148 |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
149 #define RED_DITHER "0*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
150 #define GREEN_DITHER "1*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
151 #define BLUE_DITHER "2*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
152 #define Y_COEFF "3*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
153 #define VR_COEFF "4*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
154 #define UB_COEFF "5*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
155 #define VG_COEFF "6*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
156 #define UG_COEFF "7*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
157 #define Y_OFFSET "8*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
158 #define U_OFFSET "9*8" |
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
159 #define V_OFFSET "10*8" |
18861 | 160 #define LUM_MMX_FILTER_OFFSET "11*8" |
161 #define CHR_MMX_FILTER_OFFSET "11*8+4*4*256" | |
27158 | 162 #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
|
163 #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
|
164 #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
|
165 #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
|
166 #define V_TEMP "11*8+4*4*256*2+32" |
28976 | 167 #define Y_TEMP "11*8+4*4*256*2+40" |
168 #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
|
169 |
29306
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
170 DECLARE_ALIGNED(8, uint64_t, redDither); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
171 DECLARE_ALIGNED(8, uint64_t, greenDither); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
172 DECLARE_ALIGNED(8, uint64_t, blueDither); |
18861 | 173 |
29306
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
174 DECLARE_ALIGNED(8, uint64_t, yCoeff); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
175 DECLARE_ALIGNED(8, uint64_t, vrCoeff); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
176 DECLARE_ALIGNED(8, uint64_t, ubCoeff); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
177 DECLARE_ALIGNED(8, uint64_t, vgCoeff); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
178 DECLARE_ALIGNED(8, uint64_t, ugCoeff); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
179 DECLARE_ALIGNED(8, uint64_t, yOffset); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
180 DECLARE_ALIGNED(8, uint64_t, uOffset); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
181 DECLARE_ALIGNED(8, uint64_t, vOffset); |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
182 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
|
183 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
|
184 int dstW; |
29306
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
185 DECLARE_ALIGNED(8, uint64_t, esp); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
186 DECLARE_ALIGNED(8, uint64_t, vRounder); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
187 DECLARE_ALIGNED(8, uint64_t, u_temp); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
188 DECLARE_ALIGNED(8, uint64_t, v_temp); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
189 DECLARE_ALIGNED(8, uint64_t, y_temp); |
28976 | 190 int32_t alpMmxFilter[4*MAX_FILTER_SIZE]; |
18861 | 191 |
28276 | 192 #if HAVE_ALTIVEC |
18861 | 193 vector signed short CY; |
194 vector signed short CRV; | |
195 vector signed short CBU; | |
196 vector signed short CGU; | |
197 vector signed short CGV; | |
198 vector signed short OY; | |
199 vector unsigned short CSHIFT; | |
23155
1befc8d767cd
cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents:
22914
diff
changeset
|
200 vector signed short *vYCoeffsBank, *vCCoeffsBank; |
18861 | 201 #endif |
202 | |
28276 | 203 #if ARCH_BFIN |
29306
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
204 DECLARE_ALIGNED(4, uint32_t, oy); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
205 DECLARE_ALIGNED(4, uint32_t, oc); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
206 DECLARE_ALIGNED(4, uint32_t, zero); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
207 DECLARE_ALIGNED(4, uint32_t, cy); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
208 DECLARE_ALIGNED(4, uint32_t, crv); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
209 DECLARE_ALIGNED(4, uint32_t, rmask); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
210 DECLARE_ALIGNED(4, uint32_t, cbu); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
211 DECLARE_ALIGNED(4, uint32_t, bmask); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
212 DECLARE_ALIGNED(4, uint32_t, cgu); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
213 DECLARE_ALIGNED(4, uint32_t, cgv); |
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
214 DECLARE_ALIGNED(4, uint32_t, gmask); |
23289
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
215 #endif |
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
216 |
28276 | 217 #if HAVE_VIS |
29306
116ed5c6c367
Use DECLARE_ALIGNED macro instead of gcc __attribute__.
ramiro
parents:
29299
diff
changeset
|
218 DECLARE_ALIGNED(8, uint64_t, sparc_coeffs[10]); |
23805 | 219 #endif |
23289
786823779b67
Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents:
23278
diff
changeset
|
220 |
29105
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
221 /* function pointers for swScale() */ |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
222 void (*yuv2nv12X )(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
223 const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
224 const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
225 uint8_t *dest, uint8_t *uDest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
226 int dstW, int chrDstW, int dstFormat); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
227 void (*yuv2yuv1 )(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
228 const int16_t *lumSrc, const int16_t *chrSrc, const int16_t *alpSrc, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
229 uint8_t *dest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
230 uint8_t *uDest, uint8_t *vDest, uint8_t *aDest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
231 long dstW, long chrDstW); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
232 void (*yuv2yuvX )(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
233 const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
234 const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
235 const int16_t **alpSrc, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
236 uint8_t *dest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
237 uint8_t *uDest, uint8_t *vDest, uint8_t *aDest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
238 long dstW, long chrDstW); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
239 void (*yuv2packed1)(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
240 const uint16_t *buf0, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
241 const uint16_t *uvbuf0, const uint16_t *uvbuf1, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
242 const uint16_t *abuf0, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
243 uint8_t *dest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
244 int dstW, int uvalpha, int dstFormat, int flags, int y); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
245 void (*yuv2packed2)(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
246 const uint16_t *buf0, const uint16_t *buf1, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
247 const uint16_t *uvbuf0, const uint16_t *uvbuf1, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
248 const uint16_t *abuf0, const uint16_t *abuf1, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
249 uint8_t *dest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
250 int dstW, int yalpha, int uvalpha, int y); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
251 void (*yuv2packedX)(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
252 const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
253 const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
254 const int16_t **alpSrc, uint8_t *dest, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
255 long dstW, long dstY); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
256 |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
257 void (*hyscale_internal)(uint8_t *dst, const uint8_t *src, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
258 long width, uint32_t *pal); |
29139
cd5d58b02153
Do not use abgrToA for both luma and alpha channel in hyscale.
sdrik
parents:
29134
diff
changeset
|
259 void (*hascale_internal)(uint8_t *dst, const uint8_t *src, |
cd5d58b02153
Do not use abgrToA for both luma and alpha channel in hyscale.
sdrik
parents:
29134
diff
changeset
|
260 long width, uint32_t *pal); |
29105
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
261 void (*hcscale_internal)(uint8_t *dstU, uint8_t *dstV, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
262 const uint8_t *src1, const uint8_t *src2, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
263 long width, uint32_t *pal); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
264 void (*hyscale_fast)(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
265 int16_t *dst, int dstWidth, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
266 const uint8_t *src, int srcW, int xInc); |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
267 void (*hcscale_fast)(struct SwsContext *c, |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
268 int16_t *dst, int dstWidth, |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
269 const uint8_t *src1, const uint8_t *src2, |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
270 int srcW, int xInc); |
29105
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
271 |
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
272 void (*hScale)(int16_t *dst, int dstW, const uint8_t *src, int srcW, |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
273 int xInc, const int16_t *filter, const int16_t *filterPos, |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
274 long filterSize); |
29105
9502a8895e77
swscale: Use function pointers for swScale functions.
ramiro
parents:
29042
diff
changeset
|
275 |
18861 | 276 } SwsContext; |
277 //FIXME check init (where 0) | |
278 | |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
279 SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c); |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
280 int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
281 int fullRange, int brightness, |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
282 int contrast, int saturation); |
18861 | 283 |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
284 void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], |
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
285 int brightness, int contrast, int saturation); |
29028 | 286 SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c); |
287 SwsFunc ff_yuv2rgb_init_vis(SwsContext *c); | |
288 SwsFunc ff_yuv2rgb_init_mlib(SwsContext *c); | |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
289 SwsFunc ff_yuv2rgb_init_altivec(SwsContext *c); |
29028 | 290 SwsFunc ff_yuv2rgb_get_func_ptr_bfin(SwsContext *c); |
29042 | 291 void ff_bfin_get_unscaled_swscale(SwsContext *c); |
28953
1e56ea9937ce
Consistently use ff_ prefixes for internal symbols.
diego
parents:
28832
diff
changeset
|
292 void ff_yuv2packedX_altivec(SwsContext *c, |
29239
882a1f5613e1
Add missing const qualifiers to AltiVec function parameters where appropriate.
diego
parents:
29214
diff
changeset
|
293 const int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize, |
882a1f5613e1
Add missing const qualifiers to AltiVec function parameters where appropriate.
diego
parents:
29214
diff
changeset
|
294 const int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, |
29134
ede1c13e8865
whitespace cosmetics: Reindent a few lines and break a few excessively long lines.
diego
parents:
29105
diff
changeset
|
295 uint8_t *dest, int dstW, int dstY); |
25291
c48b33da31d3
Add missing declarations for AltiVec functions, fixes the warnings:
diego
parents:
25288
diff
changeset
|
296 |
29367 | 297 const char *sws_format_name(enum PixelFormat format); |
19143
c4dac777b44c
Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents:
18861
diff
changeset
|
298 |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
299 //FIXME replace this with something faster |
29174 | 300 #define is16BPS(x) ( \ |
301 (x)==PIX_FMT_GRAY16BE \ | |
302 || (x)==PIX_FMT_GRAY16LE \ | |
29275
bc48593c663e
Let SwScaler know that RGB48 BE/LE is 16-bits per component format.
kostya
parents:
29274
diff
changeset
|
303 || (x)==PIX_FMT_RGB48BE \ |
bc48593c663e
Let SwScaler know that RGB48 BE/LE is 16-bits per component format.
kostya
parents:
29274
diff
changeset
|
304 || (x)==PIX_FMT_RGB48LE \ |
29608
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
305 || (x)==PIX_FMT_YUV420P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
306 || (x)==PIX_FMT_YUV422P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
307 || (x)==PIX_FMT_YUV444P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
308 || (x)==PIX_FMT_YUV420P16BE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
309 || (x)==PIX_FMT_YUV422P16BE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
310 || (x)==PIX_FMT_YUV444P16BE \ |
29174 | 311 ) |
29171 | 312 #define isBE(x) ((x)&1) |
29176
d18426e37f13
Planar 16bit 420 422 444 YUV support (output is only supported in some
michael
parents:
29174
diff
changeset
|
313 #define isPlanar8YUV(x) ( \ |
23278 | 314 (x)==PIX_FMT_YUV410P \ |
315 || (x)==PIX_FMT_YUV420P \ | |
28832 | 316 || (x)==PIX_FMT_YUVA420P \ |
23278 | 317 || (x)==PIX_FMT_YUV411P \ |
318 || (x)==PIX_FMT_YUV422P \ | |
319 || (x)==PIX_FMT_YUV444P \ | |
23791 | 320 || (x)==PIX_FMT_YUV440P \ |
23278 | 321 || (x)==PIX_FMT_NV12 \ |
322 || (x)==PIX_FMT_NV21 \ | |
323 ) | |
29176
d18426e37f13
Planar 16bit 420 422 444 YUV support (output is only supported in some
michael
parents:
29174
diff
changeset
|
324 #define isPlanarYUV(x) ( \ |
d18426e37f13
Planar 16bit 420 422 444 YUV support (output is only supported in some
michael
parents:
29174
diff
changeset
|
325 isPlanar8YUV(x) \ |
29608
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
326 || (x)==PIX_FMT_YUV420P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
327 || (x)==PIX_FMT_YUV422P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
328 || (x)==PIX_FMT_YUV444P16LE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
329 || (x)==PIX_FMT_YUV420P16BE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
330 || (x)==PIX_FMT_YUV422P16BE \ |
ff34398b14b1
Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().
ramiro
parents:
29482
diff
changeset
|
331 || (x)==PIX_FMT_YUV444P16BE \ |
29176
d18426e37f13
Planar 16bit 420 422 444 YUV support (output is only supported in some
michael
parents:
29174
diff
changeset
|
332 ) |
23278 | 333 #define isYUV(x) ( \ |
334 (x)==PIX_FMT_UYVY422 \ | |
335 || (x)==PIX_FMT_YUYV422 \ | |
336 || isPlanarYUV(x) \ | |
337 ) | |
338 #define isGray(x) ( \ | |
339 (x)==PIX_FMT_GRAY8 \ | |
340 || (x)==PIX_FMT_GRAY16BE \ | |
341 || (x)==PIX_FMT_GRAY16LE \ | |
342 ) | |
343 #define isGray16(x) ( \ | |
344 (x)==PIX_FMT_GRAY16BE \ | |
345 || (x)==PIX_FMT_GRAY16LE \ | |
346 ) | |
347 #define isRGB(x) ( \ | |
29299
24954ec81529
Partial (low bits ignored, no direct transcoding into other RGB formats) support
kostya
parents:
29275
diff
changeset
|
348 (x)==PIX_FMT_RGB48BE \ |
24954ec81529
Partial (low bits ignored, no direct transcoding into other RGB formats) support
kostya
parents:
29275
diff
changeset
|
349 || (x)==PIX_FMT_RGB48LE \ |
24954ec81529
Partial (low bits ignored, no direct transcoding into other RGB formats) support
kostya
parents:
29275
diff
changeset
|
350 || (x)==PIX_FMT_RGB32 \ |
27490 | 351 || (x)==PIX_FMT_RGB32_1 \ |
23278 | 352 || (x)==PIX_FMT_RGB24 \ |
353 || (x)==PIX_FMT_RGB565 \ | |
354 || (x)==PIX_FMT_RGB555 \ | |
355 || (x)==PIX_FMT_RGB8 \ | |
356 || (x)==PIX_FMT_RGB4 \ | |
357 || (x)==PIX_FMT_RGB4_BYTE \ | |
358 || (x)==PIX_FMT_MONOBLACK \ | |
27554
021a1889cc26
Add support for PIX_FMT_MONOWHITE as output format.
michael
parents:
27551
diff
changeset
|
359 || (x)==PIX_FMT_MONOWHITE \ |
23278 | 360 ) |
361 #define isBGR(x) ( \ | |
27488 | 362 (x)==PIX_FMT_BGR32 \ |
27490 | 363 || (x)==PIX_FMT_BGR32_1 \ |
23278 | 364 || (x)==PIX_FMT_BGR24 \ |
365 || (x)==PIX_FMT_BGR565 \ | |
366 || (x)==PIX_FMT_BGR555 \ | |
367 || (x)==PIX_FMT_BGR8 \ | |
368 || (x)==PIX_FMT_BGR4 \ | |
369 || (x)==PIX_FMT_BGR4_BYTE \ | |
370 || (x)==PIX_FMT_MONOBLACK \ | |
27554
021a1889cc26
Add support for PIX_FMT_MONOWHITE as output format.
michael
parents:
27551
diff
changeset
|
371 || (x)==PIX_FMT_MONOWHITE \ |
23278 | 372 ) |
28712
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
373 #define isALPHA(x) ( \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
374 (x)==PIX_FMT_BGR32 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
375 || (x)==PIX_FMT_BGR32_1 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
376 || (x)==PIX_FMT_RGB32 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
377 || (x)==PIX_FMT_RGB32_1 \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
378 || (x)==PIX_FMT_YUVA420P \ |
108abf7064d3
Add an isALPHA macro to check if pixel format has alpha channel
sdrik
parents:
28463
diff
changeset
|
379 ) |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
380 |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
381 static inline int fmt_depth(int fmt) |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
382 { |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
383 switch(fmt) { |
29482 | 384 case PIX_FMT_RGB48BE: |
385 case PIX_FMT_RGB48LE: | |
386 return 48; | |
387 case PIX_FMT_BGRA: | |
388 case PIX_FMT_ABGR: | |
389 case PIX_FMT_RGBA: | |
390 case PIX_FMT_ARGB: | |
391 return 32; | |
392 case PIX_FMT_BGR24: | |
393 case PIX_FMT_RGB24: | |
394 return 24; | |
395 case PIX_FMT_BGR565: | |
396 case PIX_FMT_RGB565: | |
397 case PIX_FMT_GRAY16BE: | |
398 case PIX_FMT_GRAY16LE: | |
399 return 16; | |
400 case PIX_FMT_BGR555: | |
401 case PIX_FMT_RGB555: | |
402 return 15; | |
403 case PIX_FMT_BGR8: | |
404 case PIX_FMT_RGB8: | |
405 return 8; | |
406 case PIX_FMT_BGR4: | |
407 case PIX_FMT_RGB4: | |
408 case PIX_FMT_BGR4_BYTE: | |
409 case PIX_FMT_RGB4_BYTE: | |
410 return 4; | |
411 case PIX_FMT_MONOBLACK: | |
412 case PIX_FMT_MONOWHITE: | |
413 return 1; | |
414 default: | |
415 return 0; | |
19872
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
416 } |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
417 } |
8e50cba9fe03
Remove the dependency of libswscale on img_format.h
lucabe
parents:
19594
diff
changeset
|
418 |
28463
4f01aa9c448f
Drop DECLARE_ALIGNED from extern declarations. It creates trouble when
diego
parents:
28461
diff
changeset
|
419 extern const uint64_t ff_dither4[2]; |
4f01aa9c448f
Drop DECLARE_ALIGNED from extern declarations. It creates trouble when
diego
parents:
28461
diff
changeset
|
420 extern const uint64_t ff_dither8[2]; |
26028 | 421 |
27212
18fc658de355
Split AVOption/AVClass in a separate file. SoC Patch from Keiji Costantini
lu_zero
parents:
27158
diff
changeset
|
422 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
|
423 |
27467
239a049163eb
Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents:
27212
diff
changeset
|
424 #endif /* SWSCALE_SWSCALE_INTERNAL_H */ |