| 
									
										
										
										
											2002-01-21 18:32:31 +00:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2006-10-07 15:33:14 +00:00
										 |  |  |  * Copyright (C) 2001-2003 Michael Niedermayer <michaelni@gmx.at> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is part of FFmpeg. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2006-11-19 10:38:12 +00:00
										 |  |  |  * FFmpeg is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2006-10-07 15:33:14 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * FFmpeg is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							| 
									
										
										
										
											2006-11-19 10:38:12 +00:00
										 |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							| 
									
										
										
										
											2006-10-07 15:33:14 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2006-11-19 10:38:12 +00:00
										 |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License along with FFmpeg; if not, write to the Free Software | 
					
						
							| 
									
										
										
										
											2007-07-05 10:18:58 +00:00
										 |  |  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 
					
						
							| 
									
										
										
										
											2006-10-07 15:33:14 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2001-10-15 19:06:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-31 07:42:11 +00:00
										 |  |  | #ifndef SWSCALE_SWSCALE_H
 | 
					
						
							|  |  |  | #define SWSCALE_SWSCALE_H
 | 
					
						
							| 
									
										
										
										
											2003-02-21 20:35:18 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2009-02-01 02:01:31 +00:00
										 |  |  |  * @file libswscale/swscale.h | 
					
						
							| 
									
										
										
										
											2007-04-26 23:07:11 +00:00
										 |  |  |  * @brief | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  |  *     external api for the swscale stuff | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-02-25 09:24:33 +00:00
										 |  |  | #include "libavutil/avutil.h"
 | 
					
						
							| 
									
										
										
										
											2007-01-12 15:45:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-02-26 20:38:02 +00:00
										 |  |  | #define LIBSWSCALE_VERSION_MAJOR 0
 | 
					
						
							| 
									
										
										
										
											2008-08-29 18:23:54 +00:00
										 |  |  | #define LIBSWSCALE_VERSION_MINOR 6
 | 
					
						
							| 
									
										
										
										
											2008-03-06 11:32:25 +00:00
										 |  |  | #define LIBSWSCALE_VERSION_MICRO 1
 | 
					
						
							| 
									
										
										
										
											2008-02-19 22:52:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-02-26 20:38:02 +00:00
										 |  |  | #define LIBSWSCALE_VERSION_INT  AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
 | 
					
						
							|  |  |  |                                                LIBSWSCALE_VERSION_MINOR, \ | 
					
						
							|  |  |  |                                                LIBSWSCALE_VERSION_MICRO) | 
					
						
							|  |  |  | #define LIBSWSCALE_VERSION      AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \
 | 
					
						
							|  |  |  |                                            LIBSWSCALE_VERSION_MINOR, \ | 
					
						
							|  |  |  |                                            LIBSWSCALE_VERSION_MICRO) | 
					
						
							| 
									
										
										
										
											2006-07-20 12:13:57 +00:00
										 |  |  | #define LIBSWSCALE_BUILD        LIBSWSCALE_VERSION_INT
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define LIBSWSCALE_IDENT        "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-29 18:23:54 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * Returns the LIBSWSCALE_VERSION_INT constant. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | unsigned swscale_version(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | /* values for the flags, the stuff on the command line is different */ | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_FAST_BILINEAR     1
 | 
					
						
							|  |  |  | #define SWS_BILINEAR          2
 | 
					
						
							|  |  |  | #define SWS_BICUBIC           4
 | 
					
						
							|  |  |  | #define SWS_X                 8
 | 
					
						
							|  |  |  | #define SWS_POINT          0x10
 | 
					
						
							|  |  |  | #define SWS_AREA           0x20
 | 
					
						
							|  |  |  | #define SWS_BICUBLIN       0x40
 | 
					
						
							|  |  |  | #define SWS_GAUSS          0x80
 | 
					
						
							|  |  |  | #define SWS_SINC          0x100
 | 
					
						
							|  |  |  | #define SWS_LANCZOS       0x200
 | 
					
						
							|  |  |  | #define SWS_SPLINE        0x400
 | 
					
						
							| 
									
										
										
										
											2002-02-01 19:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_SRC_V_CHR_DROP_MASK     0x30000
 | 
					
						
							|  |  |  | #define SWS_SRC_V_CHR_DROP_SHIFT    16
 | 
					
						
							| 
									
										
										
										
											2002-06-24 00:18:29 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_PARAM_DEFAULT           123456
 | 
					
						
							| 
									
										
										
										
											2002-07-04 13:08:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_PRINT_INFO              0x1000
 | 
					
						
							| 
									
										
										
										
											2002-07-04 13:08:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-13 17:48:15 +00:00
										 |  |  | //the following 3 flags are not completely implemented
 | 
					
						
							|  |  |  | //internal chrominace subsampling info
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_FULL_CHR_H_INT    0x2000
 | 
					
						
							| 
									
										
										
										
											2002-02-01 19:25:09 +00:00
										 |  |  | //input subsampling info
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_FULL_CHR_H_INP    0x4000
 | 
					
						
							|  |  |  | #define SWS_DIRECT_BGR        0x8000
 | 
					
						
							|  |  |  | #define SWS_ACCURATE_RND      0x40000
 | 
					
						
							| 
									
										
										
										
											2008-09-12 21:46:53 +00:00
										 |  |  | #define SWS_BITEXACT          0x80000
 | 
					
						
							| 
									
										
										
										
											2002-02-01 19:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_CPU_CAPS_MMX      0x80000000
 | 
					
						
							|  |  |  | #define SWS_CPU_CAPS_MMX2     0x20000000
 | 
					
						
							|  |  |  | #define SWS_CPU_CAPS_3DNOW    0x40000000
 | 
					
						
							|  |  |  | #define SWS_CPU_CAPS_ALTIVEC  0x10000000
 | 
					
						
							| 
									
										
										
										
											2007-05-13 19:22:32 +00:00
										 |  |  | #define SWS_CPU_CAPS_BFIN     0x01000000
 | 
					
						
							| 
									
										
										
										
											2003-04-24 17:04:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-21 03:56:47 +00:00
										 |  |  | #define SWS_MAX_REDUCE_CUTOFF 0.002
 | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  | #define SWS_CS_ITU709         1
 | 
					
						
							|  |  |  | #define SWS_CS_FCC            4
 | 
					
						
							|  |  |  | #define SWS_CS_ITU601         5
 | 
					
						
							|  |  |  | #define SWS_CS_ITU624         5
 | 
					
						
							|  |  |  | #define SWS_CS_SMPTE170M      5
 | 
					
						
							|  |  |  | #define SWS_CS_SMPTE240M      7
 | 
					
						
							|  |  |  | #define SWS_CS_DEFAULT        5
 | 
					
						
							| 
									
										
										
										
											2003-02-13 19:27:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-13 14:19:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-21 03:56:47 +00:00
										 |  |  | // when used for filters they must have an odd number of elements
 | 
					
						
							|  |  |  | // coeffs cannot be shared between vectors
 | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |     double *coeff; | 
					
						
							|  |  |  |     int length; | 
					
						
							| 
									
										
										
										
											2002-01-21 03:56:47 +00:00
										 |  |  | } SwsVector; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // vectors can be shared
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |     SwsVector *lumH; | 
					
						
							|  |  |  |     SwsVector *lumV; | 
					
						
							|  |  |  |     SwsVector *chrH; | 
					
						
							|  |  |  |     SwsVector *chrV; | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | } SwsFilter; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  | struct SwsContext; | 
					
						
							| 
									
										
										
										
											2001-12-02 20:03:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  | void sws_freeContext(struct SwsContext *swsContext); | 
					
						
							| 
									
										
										
										
											2002-01-20 05:30:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-08 23:02:06 +00:00
										 |  |  | struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, int flags, | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |                                   SwsFilter *srcFilter, SwsFilter *dstFilter, double *param); | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  | int sws_scale(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |               int srcSliceH, uint8_t* dst[], int dstStride[]); | 
					
						
							| 
									
										
										
										
											2009-02-08 23:06:05 +00:00
										 |  |  | #if LIBSWSCALE_VERSION_MAJOR < 1
 | 
					
						
							| 
									
										
										
										
											2003-03-27 16:04:53 +00:00
										 |  |  | int sws_scale_ordered(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |                       int srcSliceH, uint8_t* dst[], int dstStride[]) attribute_deprecated; | 
					
						
							| 
									
										
										
										
											2009-02-08 23:06:05 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2003-02-23 22:05:55 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation); | 
					
						
							|  |  |  | int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation); | 
					
						
							|  |  |  | SwsVector *sws_getGaussianVec(double variance, double quality); | 
					
						
							|  |  |  | SwsVector *sws_getConstVec(double c, int length); | 
					
						
							|  |  |  | SwsVector *sws_getIdentityVec(void); | 
					
						
							|  |  |  | void sws_scaleVec(SwsVector *a, double scalar); | 
					
						
							|  |  |  | void sws_normalizeVec(SwsVector *a, double height); | 
					
						
							|  |  |  | void sws_convVec(SwsVector *a, SwsVector *b); | 
					
						
							|  |  |  | void sws_addVec(SwsVector *a, SwsVector *b); | 
					
						
							|  |  |  | void sws_subVec(SwsVector *a, SwsVector *b); | 
					
						
							|  |  |  | void sws_shiftVec(SwsVector *a, int shift); | 
					
						
							|  |  |  | SwsVector *sws_cloneVec(SwsVector *a); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void sws_printVec(SwsVector *a); | 
					
						
							|  |  |  | void sws_freeVec(SwsVector *a); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-26 23:07:11 +00:00
										 |  |  | SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, | 
					
						
							| 
									
										
										
										
											2009-02-08 22:50:57 +00:00
										 |  |  |                                 float lumaSharpen, float chromaSharpen, | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |                                 float chromaHShift, float chromaVShift, | 
					
						
							|  |  |  |                                 int verbose); | 
					
						
							| 
									
										
										
										
											2003-04-25 11:26:34 +00:00
										 |  |  | void sws_freeFilter(SwsFilter *filter); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-04 09:38:24 +00:00
										 |  |  | struct SwsContext *sws_getCachedContext(struct SwsContext *context, | 
					
						
							| 
									
										
										
										
											2009-02-08 23:02:06 +00:00
										 |  |  |                                         int srcW, int srcH, enum PixelFormat srcFormat, | 
					
						
							|  |  |  |                                         int dstW, int dstH, enum PixelFormat dstFormat, int flags, | 
					
						
							| 
									
										
										
										
											2007-04-29 13:39:27 +00:00
										 |  |  |                                         SwsFilter *srcFilter, SwsFilter *dstFilter, double *param); | 
					
						
							| 
									
										
										
										
											2006-09-04 09:38:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-31 07:42:11 +00:00
										 |  |  | #endif /* SWSCALE_SWSCALE_H */
 |