颜色转换和缩放库。
返回LIBSWSCALE_VERSION_INT常量。
一、数据结构
struct | SwsVector{ double * coeff; // 指向系数列表的指针 int length; //向量中的系数数量 } |
struct | SwsFilter{ SwsVector * lumH; SwsVector * lumV; SwsVector * chrH; SwsVector * chrV; } |
二、宏
#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 |
#define | SWS_SRC_V_CHR_DROP_MASK 0x30000 |
#define | SWS_SRC_V_CHR_DROP_SHIFT 16 |
#define | SWS_PARAM_DEFAULT 123456 |
#define | SWS_PRINT_INFO 0x1000 |
#define | SWS_FULL_CHR_H_INT 0x2000 |
#define | SWS_FULL_CHR_H_INP 0x4000 |
#define | SWS_DIRECT_BGR 0x8000 |
#define | SWS_ACCURATE_RND 0x40000 |
#define | SWS_BITEXACT 0x80000 |
#define | SWS_ERROR_DIFFUSION 0x800000 |
#define | SWS_MAX_REDUCE_CUTOFF 0.002 |
#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 |
#define | SWS_CS_BT2020 9 |
三、函数
unsigned | swscale_version (void) |
const char * | swscale_configuration (void) |
const char * | swscale_license (void) |
const int * | sws_getCoefficients (int colorspace) |
参数:colorspace:其中一个SWS_CS_ *宏。 如果无效,则使用SWS_CS_DEFAULT。
int | sws_isSupportedInput (enum AVPixelFormat pix_fmt) |
int | sws_isSupportedOutput (enum AVPixelFormat pix_fmt) |
int | sws_isSupportedEndiannessConversion (enum AVPixelFormat pix_fmt) |
返回:如果支持pix_fmt的字节顺序转换,则为正值,否则为0。
struct SwsContext * | sws_alloc_context (void) |
他必须填写并传递给sws_init_context()。 要填写,请参阅AVOptions,options.c和sws_setColorspaceDetails()。
av_warn_unused_result int | sws_init_context (struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter) |
返回:成功为零或正值,误差为负值
void | sws_freeContext (struct SwsContext *swsContext) |
如果swsContext为NULL,则不做任何操作。
struct SwsContext * | sws_getContext (int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
您需要使用sws_scale()执行缩放/转换操作。
参数:srcW:源图像的宽度
srcH:源图像的高度
srcFormat:源图像格式
dstW:目的地图像的宽度
dstW:目的地图像的高度
dstFormat:目的地图像格式
flags:指定用于重新缩放的哪种算法和选项
param:调整使用的缩放器的额外参数对于SWS_BICUBIC参数[0]和[1]调整基函数的形状,param [0]调谐f(1)和param [1] f'(1)对于SWS_GAUSS参数[0] 调整指数并因此调节截止频率对于SWS_LANCZOS参数[0]调整窗口函数的宽度
返回:指向分配的上下文的指针,如果出现错误则为NULL
注意:这个函数将在写入更清晰的替代方法后被删除
int | sws_scale (struct SwsContext *c, const uint8_t *const srcSlice[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[]) |
切片是图像中连续行的序列。
必须按顺序提供切片,无论是以顶部还是底部的顺序。 如果以不间断的顺序提供切片,则该函数的行为是未定义的。
参数:c:以前使用sws_getContext()创建的缩放上下文
srcSlice:该数组包含指向源切片平面的指针
srcStride:该阵列包含源图像的每个平面的步幅
srcSliceY:要处理的片的源图像中的位置,即片的第一行的图像中的数(从零开始计数)
srcSliceH:源切片的高度,即切片中的行数
dst:该数组包含指向目标图像平面的指针
dstStride:该阵列包含目标图像的每个平面的步幅
返回:输出切片的高度
缩放srcSlice中的图像切片,并将结果缩放的切片放在dst中的图像中。
假设平面YUV处于YUV顺序而不是YVU。
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) |
srcRange:指示输入的while-black范围的标志(1 = jpeg / 0 = mpeg)
table:描述输出yuv空间的yuv2rgb系数,通常为ff_yuv2rgb_coeffs [x]
inv_table:描述输入yuv空间的yuv2rgb系数,通常为ff_yuv2rgb_coeffs [x]
brightness:16.16定点亮度校正
brightness:16.16定点对比度校正
saturation:16.16定点饱和度校正
返回:-1如果不支持。
int | sws_getColorspaceDetails (struct SwsContext *c, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation) |
SwsVector * | sws_allocVec (int length) |
SwsVector * | sws_getGaussianVec (double variance, double quality) |
void | sws_scaleVec (SwsVector *a, double scalar) |
void | sws_normalizeVec (SwsVector *a, double height) |
attribute_deprecated SwsVector * | sws_getConstVec (double c, int length) |
attribute_deprecated SwsVector * | sws_getIdentityVec (void) |
attribute_deprecated void | sws_convVec (SwsVector *a, SwsVector *b) |
attribute_deprecated void | sws_addVec (SwsVector *a, SwsVector *b) |
attribute_deprecated void | sws_subVec (SwsVector *a, SwsVector *b) |
attribute_deprecated void | sws_shiftVec (SwsVector *a, int shift) |
attribute_deprecated SwsVector * | sws_cloneVec (SwsVector *a) |
attribute_deprecated void | sws_printVec2 (SwsVector *a, AVClass *log_ctx, int log_level) |
void | sws_freeVec (SwsVector *a) |
SwsFilter * | sws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose) |
void | sws_freeFilter (SwsFilter *filter) |
struct SwsContext * | sws_getCachedContext (struct SwsContext *context, int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
如果上下文为NULL,则只需调用sws_getContext()即可获取新的上下文。 否则,检查参数是否已经保存在上下文中。 如果是这样,返回当前上下文。 否则,释放上下文并使用新参数获取新的上下文。
要警告srcFilter和dstFilter不被检查,它们被认为保持不变。
void | sws_convertPalette8ToPacked32 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) |
输出框将具有与调色板相同的打包格式。
参数:src:源帧缓冲区
dst:目的帧缓冲区
num_pixels:要转换的像素数
palette:数组具有[256]条目,必须匹配src的颜色排列(RGB或BGR)
void | sws_convertPalette8ToPacked24 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) |
使用调色板格式“ABCD”,目标帧的格式为“ABC”。
参数:src:源帧缓冲区
dst:目的帧缓冲区
num_pixels:要转换的像素数
palette:数组具有[256]条目,必须匹配src的颜色排列(RGB或BGR)
const AVClass * | sws_get_class (void) |
它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。
查看:av_opt_find().