FFmpeg
|
颜色转换和缩放库。 更多的...
文件 | |
file | swscale.h |
数据结构 | |
struct | 向量 |
struct | 过滤器 |
宏 | |
#define | SWS_FAST_BILINEAR 1 |
#define | SWS_双线性 2 |
#define | SWS_BICUBIC 4 |
#define | SWS_X 8 |
#define | SWS_POINT 0x10 |
#define | SWS_区域 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_扩散 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(空) |
const char * | swscale_configuration(空) |
返回 libswscale 构建时配置。 更多的... | |
const char * | swscale_license(无效) |
返回 libswscale 许可证。 更多的... | |
const int * | sws_getCoefficients ( int色彩空间) |
返回适合sws_setColorspaceDetails()的给定色彩空间的 yuv<->rgb 系数的指针。 更多的... | |
int | sws_isSupportedInput(枚举AVPixelFormat pix_fmt) |
如果 pix_fmt 是受支持的输入格式,则返回正值,否则返回 0。 更多的... | |
int | sws_isSupportedOutput(枚举AVPixelFormat pix_fmt) |
如果 pix_fmt 是受支持的输出格式,则返回正值,否则返回 0。 更多的... | |
int | sws_isSupportedEndiannessConversion(枚举AVPixelFormat pix_fmt) |
struct SwsContext * | sws_alloc_context(无效) |
分配一个空的SwsContext。 更多的... | |
av_warn_unused_result int | sws_init_context(结构SwsContext * sws_context,SwsFilter * srcFilter,SwsFilter * dstFilter) |
初始化 swscaler 上下文 sws_context。 更多的... | |
void | sws_freeContext(结构SwsContext * swsContext) |
释放 swscaler 上下文 swsContext。 更多的... | |
struct SwsContext * | sws_getContext ( int srcW, int srcH, 枚举AVPixelFormat srcFormat, int dstW, int dstH, 枚举AVPixelFormat dstFormat, int flags , SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
分配并返回SwsContext。 更多的... | |
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[]) |
缩放 srcSlice 中的图像切片,并将缩放后的切片放入 dst 中的图像中。 更多的... | |
int | sws_scale_frame (struct SwsContext * c , AVFrame *dst, const AVFrame * src ) |
从 src 缩放源数据并将输出写入 dst。 更多的... | |
int | sws_frame_start (struct SwsContext * c , AVFrame *dst, const AVFrame * src ) |
初始化给定的源/目标帧对的缩放过程。 更多的... | |
void | sws_frame_end (结构SwsContext * c ) |
完成先前使用sws_frame_start()提交的一对源/目标帧的缩放过程。 更多的... | |
int | sws_send_slice (struct SwsContext * c , unsigned int slice_start, unsigned int slice_height) |
指示先前提供给sws_frame_start()的源帧中存在输入数据的水平切片。 更多的... | |
int | sws_receive_slice(结构SwsContext * c,无符号整型slice_start,无符号整型slice_height) |
请求将输出数据的水平切片写入先前提供给sws_frame_start()的帧中。 更多的... | |
unsigned int | sws_receive_slice_alignment (const struct SwsContext * c ) |
获取切片所需的对齐方式。 更多的... | |
int | sws_setColorspaceDetails (struct SwsContext * c , const int inv_table[4], int srcRange, const int table [4], int dstRange, int亮度, int对比度, int饱和度) |
int | sws_getColorspaceDetails (struct SwsContext * c , int **inv_table, int *srcRange, int ** table , int *dstRange, int *亮度, int *对比度, int *饱和度) |
SwsVector * | sws_allocVec(int长度) |
分配并返回带有长度系数的未初始化向量。 更多的... | |
SwsVector * | sws_getGaussianVec(双方差,双 质量) |
返回用于过滤内容质量的归一化高斯曲线 = 3 表示高质量,越低表示质量越低。 更多的... | |
void | sws_scaleVec ( SwsVector * a,双标量) |
按标量值缩放 a 的所有系数。 更多的... | |
void | sws_normalizeVec(SwsVector * a,双倍 高度) |
缩放 a 的所有系数,使它们的总和等于高度。 更多的... | |
void | sws_freeVec ( SwsVector * a ) |
SwsFilter * | sws_getDefaultFilter(浮点lumaGBlur、浮点chromaGBlur、浮点lumaSharpen、浮点chromaSharpen、浮点chromaHShift、浮点chromaVShift、int verbose) |
void | sws_freeFilter ( SwsFilter *过滤器) |
struct SwsContext * | sws_getCachedContext(struct SwsContext * context,int srcW,int srcH,枚举AVPixelFormat srcFormat,int dstW,int dstH,枚举AVPixelFormat dstFormat,int flags,SwsFilter * srcFilter,SwsFilter * dstFilter,const double *参数) |
检查上下文是否可以重用,否则重新分配一个新的。 更多的... | |
void | sws_convertPalette8ToPacked32(const uint8_t * src,uint8_t * dst,int num_pixels,const uint8_t *调色板) |
将 8 位调色板帧转换为颜色深度为 32 位的帧。 更多的... | |
void | sws_convertPalette8ToPacked24(const uint8_t * src,uint8_t * dst,int num_pixels,const uint8_t *调色板) |
将 8 位调色板帧转换为颜色深度为 24 位的帧。 更多的... | |
const AVClass * | sws_get_class(无效) |
获取swsContext 的AVClass。 更多的... | |
颜色转换和缩放库。
返回 LIBSWSCALE_VERSION_INT 常量。
#define SWS_FAST_BILINEAR 1 |
定义位于文件swscale.h第65行。
#define SWS_BILINEAR 2 |
定义位于文件swscale.h第66行。
#define SWS_BICUBIC 4 |
定义位于文件swscale.h第67行。
#define SWS_X 8 |
定义位于文件swscale.h第68行。
#define SWS_POINT 0x10 |
定义位于文件swscale.h第69行。
#define SWS_AREA 0x20 |
定义位于文件swscale.h第70行。
#define SWS_BICUBLIN 0x40 |
定义位于文件swscale.h第71行。
#define SWS_GAUSS 0x80 |
定义位于文件swscale.h第72行。
#define SWS_SINC 0x100 |
定义位于文件swscale.h第73行。
#define SWS_LANCZOS 0x200 |
定义位于文件swscale.h第74行。
#define SWS_SPLINE 0x400 |
定义位于文件swscale.h第75行。
#define SWS_SRC_V_CHR_DROP_MASK 0x30000 |
定义位于文件swscale.h第77行。
#define SWS_SRC_V_CHR_DROP_SHIFT 16 |
定义位于文件swscale.h第78行。
#define SWS_PARAM_DEFAULT 123456 |
定义位于文件swscale.h第80行。
#define SWS_PRINT_INFO 0x1000 |
定义位于文件swscale.h第82行。
#define SWS_FULL_CHR_H_INT 0x2000 |
定义位于文件swscale.h第86行。
#define SWS_FULL_CHR_H_INP 0x4000 |
定义位于文件swscale.h第88行。
#define SWS_DIRECT_BGR 0x8000 |
定义位于文件swscale.h第89行。
#define SWS_ACCURATE_RND 0x40000 |
定义位于文件swscale.h第90行。
#define SWS_BITEXACT 0x80000 |
定义位于文件swscale.h第91行。
#define SWS_ERROR_DIFFUSION 0x800000 |
定义位于文件swscale.h第92行。
#define SWS_MAX_REDUCE_CUTOFF 0.002 |
定义位于文件swscale.h第94行。
#define SWS_CS_ITU709 1 |
定义位于文件swscale.h第96行。
#define SWS_CS_FCC 4 |
定义位于文件swscale.h第97行。
#define SWS_CS_ITU601 5 |
定义位于文件swscale.h第98行。
#define SWS_CS_ITU624 5 |
定义位于文件swscale.h第99行。
#define SWS_CS_SMPTE170M 5 |
定义位于文件swscale.h第100行。
#define SWS_CS_SMPTE240M 7 |
定义位于文件swscale.h的第101行。
#define SWS_CS_DEFAULT 5 |
文件swscale.h第102行的定义。
#define SWS_CS_BT2020 9 |
文件swscale.h第103行的定义。
const char* swscale_license | ( | 空白 | ) |
返回 libswscale 许可证。
定义位于文件version.c的第37行。
返回适合sws_setColorspaceDetails()的给定色彩空间的 yuv<->rgb 系数的指针。
colorspace | SWS_CS_* 宏之一。如果无效,则使用 SWS_CS_DEFAULT。 |
定义位于文件yuv2rgb.c第62行。
int sws_isSupportedInput | ( | 枚举AVPixelFormat | 像素_fmt | ) |
int sws_isSupportedOutput | ( | 枚举AVPixelFormat | 像素_fmt | ) |
int sws_isSupportedEndiannessConversion | ( | 枚举AVPixelFormat | 像素_fmt | ) |
[in] | 像素_fmt | 像素格式 |
struct SwsContext* sws_alloc_context | ( | 空白 | ) |
分配一个空的SwsContext。
必须填写此内容并将其传递给sws_init_context()。有关填充,请参阅 AVOptions、options.c 和sws_setColorspaceDetails()。
由check_hscale()、check_input_planar_rgb_to_a()、check_input_planar_rgb_to_uv()、check_input_planar_rgb_to_y()、check_output_yuv2gbrp()、check_yuv2yuv1()、check_yuv2yuvX( ) 、config_props () 、context_init_threaded () 引用,output_single_frame()、preinit()、sws_alloc_set_opts()、和sws_getCachedContext()。
av_warn_unused_result int sws_init_context | ( | 结构体SwsContext * | sws_上下文, |
开关过滤器* | 源过滤器, | ||
开关过滤器* | 目标过滤器 | ||
) |
初始化 swscaler 上下文 sws_context。
由check_hscale()、check_input_planar_rgb_to_a()、check_input_planar_rgb_to_uv()、check_input_planar_rgb_to_y()、check_output_yuv2gbrp()、check_yuv2yuv1()、check_yuv2yuvX()、config_props()、output_single_frame() 引用、 sws_getCachedContext() 、 sws_getContext( ) 、 sws_init_single_context ( ) 、和sws_setColorspaceDetails()。
void sws_freeContext | ( | 结构体SwsContext * | sws上下文 | ) |
释放 swscaler 上下文 swsContext。
如果 swsContext 为 NULL,则不执行任何操作。
由check_hscale()、check_input_planar_rgb_to_a()、 check_input_planar_rgb_to_uv() 、 check_input_planar_rgb_to_y() 、 check_output_yuv2gbrp() 、 check_yuv2yuv1() 、 check_yuv2yuvX() 、close_filter_param ( )、close_stream ( )、config_引用props ( )、doTest ( )、ff_frame_to_dnn_classify()、ff_frame_to_dnn_detect()、ff_proc_from_dnn_to_frame()、ff_proc_from_frame_to_dnn()、ff_scale_image()、main()、output_single_frame()、stream_close( ) 、sws_getCachedContext()、sws_getContext()、sws_init_single_context()和un初始化()。
struct SwsContext* sws_getContext | ( | 整数 | srcW , |
整数 | srcH , | ||
枚举AVPixelFormat | 源格式, | ||
整数 | dstW , | ||
整数 | dstH , | ||
枚举AVPixelFormat | 目标格式, | ||
整数 | 旗帜, | ||
开关过滤器* | 源过滤器, | ||
开关过滤器* | 目标过滤器, | ||
常量双* | 参数 | ||
) |
分配并返回SwsContext。
您需要它使用sws_scale()执行缩放/转换操作。
srcW | 源图像的宽度 |
srcH | 源图像的高度 |
srcFormat | 源图像格式 |
dstW | 目标图像的宽度 |
dstH | 目标图像的高度 |
dstFormat | 目标图像格式 |
flags | 指定用于重新缩放的算法和选项 |
param | 用于调整所用缩放器的额外参数 对于 SWS_BICUBIC param[0] 和 [1] 调整基函数的形状,param[0] 调整 f(1)和param[1] f´(1) 对于 SWS_GAUSS param[0]调整指数,从而调整截止频率 对于 SWS_LANCZOS param[0] 调整窗口函数的宽度 |
由config_output()、doTest()、 ff_frame_to_dnn_classify() 、 ff_frame_to_dnn_detect() 、 ff_proc_from_dnn_to_frame() 、 ff_proc_from_frame_to_dnn() 、ff_scale_image ( )、get_video_frame ( )、main ( )、open_filter_param ( )、prepare_uv_scale() 引用、process_frame()、recon_frame_process()和sws_init_single_context()。
int sws_scale | ( | 结构体SwsContext * | C, |
常量 uint8_t *const | src切片[], | ||
常量整型 | srcStride [], | ||
整数 | 源切片Y, | ||
整数 | srcSliceH , | ||
uint8_t *常量 | 目的地[], | ||
常量整型 | dstStride [] | ||
) |
缩放 srcSlice 中的图像切片,并将缩放后的切片放入 dst 中的图像中。
切片是图像中连续行的序列。
切片必须按顺序提供,无论是从上到下还是从下到上的顺序。如果以非顺序顺序提供切片,则函数的行为未定义。
c | 先前使用sws_getContext()创建的缩放上下文 |
srcSlice | 包含指向源切片平面的指针的数组 |
srcStride | 包含源图像每个平面的步幅的数组 |
srcSliceY | 要处理的切片在源图像中的位置,即切片第一行图像中的数字(从零开始计数) |
srcSliceH | 源切片的高度,即切片中的行数 |
dst | 包含指向目标图像平面的指针的数组 |
dstStride | 包含目标图像每个平面的步幅的数组 |
缩放 srcSlice 中的图像切片,并将缩放后的切片放入 dst 中的图像中。
假设平面 YUV 采用 YUV 顺序而不是 YVU。
文件swscale.c第1204行的定义。
由blur()、copy_uv_planes()、doTest()、ff_frame_to_dnn_classify()、ff_frame_to_dnn_detect()、ff_proc_from_dnn_to_frame( ) 、ff_proc_from_frame_to_dnn()、ff_scale_image()、filter_frame () 、get_video_frame()、main()、output_引用单帧(),process_frame()、video_image_display()和wrap()。
int sws_scale_frame | ( | 结构体SwsContext * | C, |
AV 帧* | 目的地, | ||
常量AVFrame * | 源代码 | ||
) |
从 src 缩放源数据并将输出写入 dst。
这只是一个方便的包装
c | 缩放上下文 |
dst | 目标帧。有关更多详细信息,请参阅sws_frame_start()的文档。 |
src | 源框架。 |
文件swscale.c第1183行的定义。
int sws_frame_start | ( | 结构体SwsContext * | C, |
AV 帧* | 目的地, | ||
常量AVFrame * | 源代码 | ||
) |
初始化给定的源/目标帧对的缩放过程。
必须在调用sws_send_slice()和sws_receive_slice()之前调用。
该函数将保留对 src 和 dst 的引用,因此它们必须都使用引用计数缓冲区(如果由调用者分配,则在 dst 的情况下)。
c | 缩放上下文 |
dst | 目标帧。The data buffers may either be already allocated by the caller or left clear, in which case they will be allocated by the scaler. The latter may have performance advantages - e.g. in certain cases some output planes may be references to input planes, rather than copies. Output data will be written into this frame in successful sws_receive_slice() calls. |
src | 源框架。必须分配数据缓冲区,但此时帧数据不必准备好。然后通过sws_send_slice()发出数据可用性信号。 |
文件swscale.c第1082行的定义。
void sws_frame_end | ( | 结构体SwsContext * | C | ) |
完成先前使用sws_frame_start()提交的一对源/目标帧的缩放过程。
必须在所有sws_send_slice()和sws_receive_slice()调用完成之后、任何新的sws_frame_start()调用之前调用。
c | 缩放上下文 |
文件swscale.c第1075行的定义。
int sws_send_slice | ( | 结构体SwsContext * | C, |
无符号整数 | 切片开始, | ||
无符号整数 | 切片高度 | ||
) |
指示先前提供给sws_frame_start()的源帧中存在输入数据的水平切片。
切片可以按任何顺序提供,但不能重叠。对于垂直二次采样像素格式,切片必须根据二次采样对齐。
c | 缩放上下文 |
slice_start | 切片的第一行 |
slice_height | 切片中的行数 |
文件swscale.c第1112行的定义。
int sws_receive_slice | ( | 结构体SwsContext * | C, |
无符号整数 | 切片开始, | ||
无符号整数 | 切片高度 | ||
) |
请求将输出数据的水平切片写入先前提供给sws_frame_start()的帧中。
c | 缩放上下文 |
slice_start | 切片的第一行;必须是sws_receive_slice_alignment()的倍数 |
slice_height | 切片中的行数;必须是sws_receive_slice_alignment()的倍数,最后一个切片除外(即当 slice_start+slice_height 等于输出帧高度时) |
文件swscale.c第1132行的定义。
unsigned int sws_receive_slice_alignment | ( | const 结构SwsContext * | C | ) |
获取切片所需的对齐方式。
c | 缩放上下文 |
文件swscale.c第1124行的定义。
int sws_setColorspaceDetails | ( | 结构体SwsContext * | C, |
常量整型 | inv_表[4], | ||
整数 | 源范围, | ||
常量整型 | 表[4], | ||
整数 | 目标范围, | ||
整数 | 亮度, | ||
整数 | 对比, | ||
整数 | 饱和 | ||
) |
c | 缩放上下文 |
dstRange | 指示输出的 while-black 范围的标志 (1=jpeg / 0=mpeg) |
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 定点亮度校正 |
contrast | 16.16 定点对比度校正 |
saturation | 16.16 定点饱和度校正 |
LIBSWSCALE_VERSION_MAJOR < 7
,如果不支持则返回 -1。int sws_getColorspaceDetails | ( | 结构体SwsContext * | C, |
整数** | 索引表, | ||
整数* | 源范围, | ||
整数** | 桌子, | ||
整数* | 目标范围, | ||
整数* | 亮度, | ||
整数* | 对比, | ||
整数* | 饱和 | ||
) |
LIBSWSCALE_VERSION_MAJOR < 7
,如果不支持则返回 -1。返回用于过滤内容质量的归一化高斯曲线 = 3 表示高质量,越低表示质量越低。
由alloc_sws_context()、open_filter_param()和sws_getDefaultFilter()引用。
按标量值缩放 a 的所有系数。
由alloc_sws_context()、sws_getDefaultFilter()和sws_normalizeVec()引用。
void sws_freeVec | ( | Sws向量* | A | ) |
struct SwsContext* sws_getCachedContext | ( | 结构体SwsContext * | 语境, |
整数 | srcW , | ||
整数 | srcH , | ||
枚举AVPixelFormat | 源格式, | ||
整数 | dstW , | ||
整数 | dstH , | ||
枚举AVPixelFormat | 目标格式, | ||
整数 | 旗帜, | ||
开关过滤器* | 源过滤器, | ||
开关过滤器* | 目标过滤器, | ||
常量双* | 参数 | ||
) |
检查上下文是否可以重用,否则重新分配一个新的。
如果 context 为 NULL,则只需调用sws_getContext()即可获取新的上下文。否则,检查参数是否已保存在上下文中。如果是这种情况,则返回当前上下文。否则,释放上下文并获取具有新参数的新上下文。
请注意,srcFilter 和 dstFilter 未被检查,它们被假定保持不变。
void sws_convertPalette8ToPacked32 | ( | 常量 uint8_t * | 源代码, |
uint8_t * | 目的地, | ||
整数 | 像素数, | ||
常量 uint8_t * | 调色板 | ||
) |
将 8 位调色板帧转换为颜色深度为 32 位的帧。
输出帧将具有与调色板相同的打包格式。
src | 源帧缓冲区 |
dst | 目标帧缓冲区 |
num_pixels | 要转换的像素数 |
palette | 具有 [256] 个条目的数组,必须与 src 的颜色排列(RGB 或 BGR)匹配 |
文件swscale_unscaled.c第2239行的定义。
void sws_convertPalette8ToPacked24 | ( | 常量 uint8_t * | 源代码, |
uint8_t * | 目的地, | ||
整数 | 像素数, | ||
常量 uint8_t * | 调色板 | ||
) |
将 8 位调色板帧转换为颜色深度为 24 位的帧。
对于调色板格式“ABCD”,目标帧以格式“ABC”结束。
src | 源帧缓冲区 |
dst | 目标帧缓冲区 |
num_pixels | 要转换的像素数 |
palette | 具有 [256] 个条目的数组,必须与 src 的颜色排列(RGB 或 BGR)匹配 |
文件swscale_unscaled.c第2249行的定义。
const AVClass* sws_get_class | ( | 空白 | ) |
获取swsContext 的AVClass。
它可以与 AV_OPT_SEARCH_FAKE_OBJ 结合使用来检查选项。
定义位于文件options.c的第97行。