annotate libswscale/swscale.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 c2e91cf65729
children e8e1f8cc7c5b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
1 /*
20094
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19661
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: 19661
diff changeset
3 *
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19661
diff changeset
4 * This file is part of FFmpeg.
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19661
diff changeset
5 *
21029
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
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: 20094
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: 20094
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: 20094
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: 19661
diff changeset
10 *
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19661
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: 19661
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: 20094
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: 20094
diff changeset
14 * Lesser General Public License for more details.
20094
aca9e9783f67 Change license headers to say 'FFmpeg' instead of 'this program'.
diego
parents: 19661
diff changeset
15 *
21029
1f2ba24b4e47 Clarify that some of the non-SIMD code is now LGPLed.
lucabe
parents: 20094
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: 20094
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
23702
5159b5f8784e license header consistency cosmetics
diego
parents: 23536
diff changeset
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: 19661
diff changeset
19 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
20
27467
239a049163eb Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents: 27460
diff changeset
21 #ifndef SWSCALE_SWSCALE_H
239a049163eb Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents: 27460
diff changeset
22 #define SWSCALE_SWSCALE_H
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
23
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
24 /**
28379
296f37c6ff02 Use full internal pathname in doxygen @file directives.
diego
parents: 27560
diff changeset
25 * @file libswscale/swscale.h
23129
9528d1ebe68f cosmetics: Remove trailing whitespace.
diego
parents: 21870
diff changeset
26 * @brief
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
27 * external api for the swscale stuff
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
28 */
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
29
26065
68b558c4c833 #include "libavutil/avutil.h" in swscale.h
mru
parents: 26002
diff changeset
30 #include "libavutil/avutil.h"
21870
cad3e015ddde deprecate sws_scale_ordered(), as it now is a duplicate of sws_scale()
lucabe
parents: 21029
diff changeset
31
26073
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
32 #define LIBSWSCALE_VERSION_MAJOR 0
28531
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
33 #define LIBSWSCALE_VERSION_MINOR 7
28665
8226498f4e24 New LGPLed YUV2RGB table generator for SwScaler
kostya
parents: 28620
diff changeset
34 #define LIBSWSCALE_VERSION_MICRO 1
26002
b225be4ade8a Clean up lib* version definitions
mru
parents: 25981
diff changeset
35
26073
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
36 #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
37 LIBSWSCALE_VERSION_MINOR, \
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
38 LIBSWSCALE_VERSION_MICRO)
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
39 #define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
40 LIBSWSCALE_VERSION_MINOR, \
123219eaeeca less preprocessor magic in version number macros
mru
parents: 26065
diff changeset
41 LIBSWSCALE_VERSION_MICRO)
19143
c4dac777b44c Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents: 18861
diff changeset
42 #define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT
c4dac777b44c Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents: 18861
diff changeset
43
c4dac777b44c Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents: 18861
diff changeset
44 #define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
c4dac777b44c Use libavutil in libswscale, and allow it to be built out of the mplayer tree
lucabe
parents: 18861
diff changeset
45
27460
1b5516898adb Implement swscale_version().
stefano
parents: 26151
diff changeset
46 /**
1b5516898adb Implement swscale_version().
stefano
parents: 26151
diff changeset
47 * Returns the LIBSWSCALE_VERSION_INT constant.
1b5516898adb Implement swscale_version().
stefano
parents: 26151
diff changeset
48 */
1b5516898adb Implement swscale_version().
stefano
parents: 26151
diff changeset
49 unsigned swscale_version(void);
1b5516898adb Implement swscale_version().
stefano
parents: 26151
diff changeset
50
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
51 /* values for the flags, the stuff on the command line is different */
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
52 #define SWS_FAST_BILINEAR 1
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
53 #define SWS_BILINEAR 2
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
54 #define SWS_BICUBIC 4
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
55 #define SWS_X 8
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
56 #define SWS_POINT 0x10
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
57 #define SWS_AREA 0x20
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
58 #define SWS_BICUBLIN 0x40
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
59 #define SWS_GAUSS 0x80
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
60 #define SWS_SINC 0x100
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
61 #define SWS_LANCZOS 0x200
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
62 #define SWS_SPLINE 0x400
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
63
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
64 #define SWS_SRC_V_CHR_DROP_MASK 0x30000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
65 #define SWS_SRC_V_CHR_DROP_SHIFT 16
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
66
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
67 #define SWS_PARAM_DEFAULT 123456
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
68
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
69 #define SWS_PRINT_INFO 0x1000
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
70
23536
ab4c0bba8f22 misc spelling fixes
diego
parents: 23304
diff changeset
71 //the following 3 flags are not completely implemented
ab4c0bba8f22 misc spelling fixes
diego
parents: 23304
diff changeset
72 //internal chrominace subsampling info
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
73 #define SWS_FULL_CHR_H_INT 0x2000
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
74 //input subsampling info
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
75 #define SWS_FULL_CHR_H_INP 0x4000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
76 #define SWS_DIRECT_BGR 0x8000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
77 #define SWS_ACCURATE_RND 0x40000
27560
f5565112d12f Add bitexact flag.
michael
parents: 27467
diff changeset
78 #define SWS_BITEXACT 0x80000
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
79
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
80 #define SWS_CPU_CAPS_MMX 0x80000000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
81 #define SWS_CPU_CAPS_MMX2 0x20000000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
82 #define SWS_CPU_CAPS_3DNOW 0x40000000
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
83 #define SWS_CPU_CAPS_ALTIVEC 0x10000000
23289
786823779b67 Blackfin optimized YUV420 to RGB CSC Color Space Converters.
gpoirier
parents: 23155
diff changeset
84 #define SWS_CPU_CAPS_BFIN 0x01000000
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
85
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
86 #define SWS_MAX_REDUCE_CUTOFF 0.002
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
87
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
88 #define SWS_CS_ITU709 1
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
89 #define SWS_CS_FCC 4
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
90 #define SWS_CS_ITU601 5
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
91 #define SWS_CS_ITU624 5
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
92 #define SWS_CS_SMPTE170M 5
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
93 #define SWS_CS_SMPTE240M 7
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
94 #define SWS_CS_DEFAULT 5
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
95
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
96
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
97
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
98 // when used for filters they must have an odd number of elements
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
99 // coeffs cannot be shared between vectors
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
100 typedef struct {
28477
c01c5cffba71 Document coeff and length fields in SwsVector.
stefano
parents: 28457
diff changeset
101 double *coeff; ///< pointer to the list of coefficients
c01c5cffba71 Document coeff and length fields in SwsVector.
stefano
parents: 28457
diff changeset
102 int length; ///< number of coefficients in the vector
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
103 } SwsVector;
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
104
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
105 // vectors can be shared
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
106 typedef struct {
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
107 SwsVector *lumH;
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
108 SwsVector *lumV;
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
109 SwsVector *chrH;
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
110 SwsVector *chrV;
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
111 } SwsFilter;
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
112
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
113 struct SwsContext;
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
114
29802
c2e91cf65729 Document sws_freeContext().
stefano
parents: 29762
diff changeset
115 /**
c2e91cf65729 Document sws_freeContext().
stefano
parents: 29762
diff changeset
116 * Frees the swscaler context swsContext.
c2e91cf65729 Document sws_freeContext().
stefano
parents: 29762
diff changeset
117 * If swsContext is NULL, then does nothing.
c2e91cf65729 Document sws_freeContext().
stefano
parents: 29762
diff changeset
118 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
119 void sws_freeContext(struct SwsContext *swsContext);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
120
28500
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
121 /**
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
122 * Allocates and returns a SwsContext. You need it to perform
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
123 * scaling/conversion operations using sws_scale().
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
124 *
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
125 * @param srcW the width of the source image
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
126 * @param srcH the height of the source image
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
127 * @param srcFormat the source image format
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
128 * @param dstW the width of the destination image
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
129 * @param dstH the height of the destination image
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
130 * @param dstFormat the destination image format
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
131 * @param flags specify which algorithm and options to use for rescaling
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
132 * @return a pointer to an allocated context, or NULL in case of error
0fdb808fda41 Document sws_getContext().
stefano
parents: 28498
diff changeset
133 */
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
134 struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
135 int dstW, int dstH, enum PixelFormat dstFormat,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
136 int flags, SwsFilter *srcFilter,
29246
8861e08033eb Add const qualifier to param argument of sws_getContext() and
diego
parents: 29145
diff changeset
137 SwsFilter *dstFilter, const double *param);
28619
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
138
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
139 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
140 * Scales the image slice in srcSlice and puts the resulting scaled
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
141 * slice in the image in dst. A slice is a sequence of consecutive
29762
bb26e1db5c90 Document slice ordering assumption done by sws_scale().
stefano
parents: 29623
diff changeset
142 * rows in an image.
bb26e1db5c90 Document slice ordering assumption done by sws_scale().
stefano
parents: 29623
diff changeset
143 *
bb26e1db5c90 Document slice ordering assumption done by sws_scale().
stefano
parents: 29623
diff changeset
144 * Slices have to be provided in sequential order, either in
bb26e1db5c90 Document slice ordering assumption done by sws_scale().
stefano
parents: 29623
diff changeset
145 * top-bottom or bottom-top order. If slices are provided in
bb26e1db5c90 Document slice ordering assumption done by sws_scale().
stefano
parents: 29623
diff changeset
146 * non-sequential order the behavior of the function is undefined.
28619
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
147 *
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
148 * @param context the scaling context previously created with
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
149 * sws_getContext()
28620
77f2575e2a91 Rename the "src" parameter in the sws_scale() declaration to
stefano
parents: 28619
diff changeset
150 * @param srcSlice the array containing the pointers to the planes of
28619
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
151 * the source slice
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
152 * @param srcStride the array containing the strides for each plane of
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
153 * the source image
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
154 * @param srcSliceY the position in the source image of the slice to
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
155 * process, that is the number (counted starting from
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
156 * zero) in the image of the first row of the slice
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
157 * @param srcSliceH the height of the source slice, that is the number
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
158 * of rows in the slice
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
159 * @param dst the array containing the pointers to the planes of
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
160 * the destination image
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
161 * @param dstStride the array containing the strides for each plane of
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
162 * the destination image
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
163 * @return the height of the output slice
d4d2d83ba82c Document sws_scale().
stefano
parents: 28531
diff changeset
164 */
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
165 int sws_scale(struct SwsContext *context, uint8_t* srcSlice[], int srcStride[],
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
166 int srcSliceY, int srcSliceH, uint8_t* dst[], int dstStride[]);
28457
7d49f24cc18f Drop the deprecated sws_scale_ordered() at the next major version
stefano
parents: 28456
diff changeset
167 #if LIBSWSCALE_VERSION_MAJOR < 1
28486
423d3751bfd2 Add a @deprecated notice to swscale_get_ordered().
stefano
parents: 28477
diff changeset
168 /**
423d3751bfd2 Add a @deprecated notice to swscale_get_ordered().
stefano
parents: 28477
diff changeset
169 * @deprecated Use sws_scale() instead.
423d3751bfd2 Add a @deprecated notice to swscale_get_ordered().
stefano
parents: 28477
diff changeset
170 */
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
171 int sws_scale_ordered(struct SwsContext *context, uint8_t* src[],
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
172 int srcStride[], int srcSliceY, int srcSliceH,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
173 uint8_t* dst[], int dstStride[]) attribute_deprecated;
28457
7d49f24cc18f Drop the deprecated sws_scale_ordered() at the next major version
stefano
parents: 28456
diff changeset
174 #endif
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
175
29145
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
176 /**
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
177 * @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
178 * @param fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
179 * @return -1 if not supported
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
180 */
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
181 int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
182 int srcRange, const int table[4], int dstRange,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
183 int brightness, int contrast, int saturation);
29145
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
184
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
185 /**
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
186 * @return -1 if not supported
af07ee7cae9c Move sws_[gs]etColorspaceDetails() documentation from swscale.c to
stefano
parents: 29140
diff changeset
187 */
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
188 int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
189 int *srcRange, int **table, int *dstRange,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
190 int *brightness, int *contrast, int *saturation);
28493
95cfbbaa4f03 Move sws_getGaussianVec() documentation from swscale.c to swscale.h.
stefano
parents: 28492
diff changeset
191
95cfbbaa4f03 Move sws_getGaussianVec() documentation from swscale.c to swscale.h.
stefano
parents: 28492
diff changeset
192 /**
29494
86786d090e11 Introduce and use sws_allocVec().
ramiro
parents: 29309
diff changeset
193 * Allocates and returns an uninitialized vector with length coefficients.
86786d090e11 Introduce and use sws_allocVec().
ramiro
parents: 29309
diff changeset
194 */
86786d090e11 Introduce and use sws_allocVec().
ramiro
parents: 29309
diff changeset
195 SwsVector *sws_allocVec(int length);
86786d090e11 Introduce and use sws_allocVec().
ramiro
parents: 29309
diff changeset
196
86786d090e11 Introduce and use sws_allocVec().
ramiro
parents: 29309
diff changeset
197 /**
28493
95cfbbaa4f03 Move sws_getGaussianVec() documentation from swscale.c to swscale.h.
stefano
parents: 28492
diff changeset
198 * Returns a normalized Gaussian curve used to filter stuff
95cfbbaa4f03 Move sws_getGaussianVec() documentation from swscale.c to swscale.h.
stefano
parents: 28492
diff changeset
199 * quality=3 is high quality, lower is lower quality.
95cfbbaa4f03 Move sws_getGaussianVec() documentation from swscale.c to swscale.h.
stefano
parents: 28492
diff changeset
200 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
201 SwsVector *sws_getGaussianVec(double variance, double quality);
28489
02f445ffbccd Document sws_getConstVec().
stefano
parents: 28488
diff changeset
202
02f445ffbccd Document sws_getConstVec().
stefano
parents: 28488
diff changeset
203 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
204 * Allocates and returns a vector with length coefficients, all
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
205 * with the same value c.
28489
02f445ffbccd Document sws_getConstVec().
stefano
parents: 28488
diff changeset
206 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
207 SwsVector *sws_getConstVec(double c, int length);
28498
d492a439d7d0 Document sws_getIdentityVec().
stefano
parents: 28493
diff changeset
208
d492a439d7d0 Document sws_getIdentityVec().
stefano
parents: 28493
diff changeset
209 /**
d492a439d7d0 Document sws_getIdentityVec().
stefano
parents: 28493
diff changeset
210 * Allocates and returns a vector with just one coefficient, with
d492a439d7d0 Document sws_getIdentityVec().
stefano
parents: 28493
diff changeset
211 * value 1.0.
d492a439d7d0 Document sws_getIdentityVec().
stefano
parents: 28493
diff changeset
212 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
213 SwsVector *sws_getIdentityVec(void);
28490
333cb4dd0ceb Document sws_scaleVec().
stefano
parents: 28489
diff changeset
214
333cb4dd0ceb Document sws_scaleVec().
stefano
parents: 28489
diff changeset
215 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
216 * Scales all the coefficients of a by the scalar value.
28490
333cb4dd0ceb Document sws_scaleVec().
stefano
parents: 28489
diff changeset
217 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
218 void sws_scaleVec(SwsVector *a, double scalar);
28530
c86a4810a0f3 Document sws_normalizeVec().
stefano
parents: 28502
diff changeset
219
c86a4810a0f3 Document sws_normalizeVec().
stefano
parents: 28502
diff changeset
220 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
221 * Scales all the coefficients of a so that their sum equals height.
28530
c86a4810a0f3 Document sws_normalizeVec().
stefano
parents: 28502
diff changeset
222 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
223 void sws_normalizeVec(SwsVector *a, double height);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
224 void sws_convVec(SwsVector *a, SwsVector *b);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
225 void sws_addVec(SwsVector *a, SwsVector *b);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
226 void sws_subVec(SwsVector *a, SwsVector *b);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
227 void sws_shiftVec(SwsVector *a, int shift);
28492
d31543ec920a Document sws_cloneVec().
stefano
parents: 28491
diff changeset
228
d31543ec920a Document sws_cloneVec().
stefano
parents: 28491
diff changeset
229 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
230 * Allocates and returns a clone of the vector a, that is a vector
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
231 * with the same coefficients as a.
28492
d31543ec920a Document sws_cloneVec().
stefano
parents: 28491
diff changeset
232 */
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
233 SwsVector *sws_cloneVec(SwsVector *a);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
234
28531
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
235 #if LIBSWSCALE_VERSION_MAJOR < 1
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
236 /**
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
237 * @deprecated Use sws_printVec2() instead.
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
238 */
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
239 attribute_deprecated void sws_printVec(SwsVector *a);
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
240 #endif
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
241
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
242 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
243 * Prints with av_log() a textual representation of the vector a
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
244 * if log_level <= av_log_level.
28531
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
245 */
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
246 void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level);
a14b65e14dc9 Implement sws_printVec2() and deprecate sws_printVec().
stefano
parents: 28530
diff changeset
247
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
248 void sws_freeVec(SwsVector *a);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
249
23129
9528d1ebe68f cosmetics: Remove trailing whitespace.
diego
parents: 21870
diff changeset
250 SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
28455
7d187ae46977 Fix a typo: lumaSarpen -> lumaSharpen.
stefano
parents: 28379
diff changeset
251 float lumaSharpen, float chromaSharpen,
23155
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
252 float chromaHShift, float chromaVShift,
1befc8d767cd cosmetics attack, part II: Remove all tabs and prettyprint/reindent the code.
diego
parents: 23129
diff changeset
253 int verbose);
18861
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
254 void sws_freeFilter(SwsFilter *filter);
8579acff875e Move postproc ---> libswscale
lucabe
parents:
diff changeset
255
28488
01afb64ccf4a Move documentation of sws_getCachedContext() from swscale.c to
stefano
parents: 28486
diff changeset
256 /**
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
257 * Checks if context can be reused, otherwise reallocates a new
28502
514300a59359 Apply misc fixes for sws_getCachedContext() documentation.
stefano
parents: 28501
diff changeset
258 * one.
28488
01afb64ccf4a Move documentation of sws_getCachedContext() from swscale.c to
stefano
parents: 28486
diff changeset
259 *
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
260 * If context is NULL, just calls sws_getContext() to get a new
28502
514300a59359 Apply misc fixes for sws_getCachedContext() documentation.
stefano
parents: 28501
diff changeset
261 * context. Otherwise, checks if the parameters are the ones already
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
262 * saved in context. If that is the case, returns the current
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
263 * context. Otherwise, frees context and gets a new context with
28502
514300a59359 Apply misc fixes for sws_getCachedContext() documentation.
stefano
parents: 28501
diff changeset
264 * the new parameters.
514300a59359 Apply misc fixes for sws_getCachedContext() documentation.
stefano
parents: 28501
diff changeset
265 *
29309
037740689e99 Remove '\p' doxygen markup, as it should improve plain text doxy
stefano
parents: 29246
diff changeset
266 * Be warned that srcFilter and dstFilter are not checked, they
28502
514300a59359 Apply misc fixes for sws_getCachedContext() documentation.
stefano
parents: 28501
diff changeset
267 * are assumed to remain the same.
28488
01afb64ccf4a Move documentation of sws_getCachedContext() from swscale.c to
stefano
parents: 28486
diff changeset
268 */
19661
7b24faac56fd Add sws_getCachedContext(), which checks if context is valid or reallocs a new one instead.
gpoirier
parents: 19594
diff changeset
269 struct SwsContext *sws_getCachedContext(struct SwsContext *context,
28456
2402abd3a2d5 Replace int type with enum PixelFormat for the dstFormat/srcFormat
stefano
parents: 28455
diff changeset
270 int srcW, int srcH, enum PixelFormat srcFormat,
29140
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
271 int dstW, int dstH, enum PixelFormat dstFormat,
b322381cf5e1 whitespace cosmetics: Break some overly long lines.
diego
parents: 28665
diff changeset
272 int flags, SwsFilter *srcFilter,
29246
8861e08033eb Add const qualifier to param argument of sws_getContext() and
diego
parents: 29145
diff changeset
273 SwsFilter *dstFilter, const double *param);
19661
7b24faac56fd Add sws_getCachedContext(), which checks if context is valid or reallocs a new one instead.
gpoirier
parents: 19594
diff changeset
274
27467
239a049163eb Change header inclusion guard names in line with FFmpeg r15120.
stefano
parents: 27460
diff changeset
275 #endif /* SWSCALE_SWSCALE_H */