FFmpeg
4.2.2
|
Color conversion and scaling library. More...
Files | |
file | swscale.h |
external API header | |
Data Structures | |
struct | SwsVector |
struct | SwsFilter |
Macros | |
#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 |
Functions | |
unsigned | swscale_version (void) |
const char * | swscale_configuration (void) |
Return the libswscale build-time configuration. More... | |
const char * | swscale_license (void) |
Return the libswscale license. More... | |
const int * | sws_getCoefficients (int colorspace) |
Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails(). More... | |
int | sws_isSupportedInput (enum AVPixelFormat pix_fmt) |
Return a positive value if pix_fmt is a supported input format, 0 otherwise. More... | |
int | sws_isSupportedOutput (enum AVPixelFormat pix_fmt) |
Return a positive value if pix_fmt is a supported output format, 0 otherwise. More... | |
int | sws_isSupportedEndiannessConversion (enum AVPixelFormat pix_fmt) |
struct SwsContext * | sws_alloc_context (void) |
Allocate an empty SwsContext. More... | |
av_warn_unused_result int | sws_init_context (struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter) |
Initialize the swscaler context sws_context. More... | |
void | sws_freeContext (struct SwsContext *swsContext) |
Free the swscaler context swsContext. More... | |
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) |
Allocate and return an SwsContext. More... | |
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[]) |
Scale the image slice in srcSlice and put the resulting scaled slice in the image in dst. More... | |
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_allocVec (int length) |
Allocate and return an uninitialized vector with length coefficients. More... | |
SwsVector * | sws_getGaussianVec (double variance, double quality) |
Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality. More... | |
void | sws_scaleVec (SwsVector *a, double scalar) |
Scale all the coefficients of a by the scalar value. More... | |
void | sws_normalizeVec (SwsVector *a, double height) |
Scale all the coefficients of a so that their sum equals height. More... | |
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) |
Check if context can be reused, otherwise reallocate a new one. More... | |
void | sws_convertPalette8ToPacked32 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) |
Convert an 8-bit paletted frame into a frame with a color depth of 32 bits. More... | |
void | sws_convertPalette8ToPacked24 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette) |
Convert an 8-bit paletted frame into a frame with a color depth of 24 bits. More... | |
const AVClass * | sws_get_class (void) |
Get the AVClass for swsContext. More... | |
Color conversion and scaling library.
Return the LIBSWSCALE_VERSION_INT constant.
#define SWS_BILINEAR 2 |
unsigned swscale_version | ( | void | ) |
const char* swscale_configuration | ( | void | ) |
Return the libswscale build-time configuration.
const char* swscale_license | ( | void | ) |
Return the libswscale license.
const int* sws_getCoefficients | ( | int | colorspace | ) |
Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().
colorspace | One of the SWS_CS_* macros. If invalid, SWS_CS_DEFAULT is used. |
int sws_isSupportedInput | ( | enum AVPixelFormat | pix_fmt | ) |
Return a positive value if pix_fmt is a supported input format, 0 otherwise.
int sws_isSupportedOutput | ( | enum AVPixelFormat | pix_fmt | ) |
Return a positive value if pix_fmt is a supported output format, 0 otherwise.
int sws_isSupportedEndiannessConversion | ( | enum AVPixelFormat | pix_fmt | ) |
[in] | pix_fmt | the pixel format |
struct SwsContext* sws_alloc_context | ( | void | ) |
Allocate an empty SwsContext.
This must be filled and passed to sws_init_context(). For filling see AVOptions, options.c and sws_setColorspaceDetails().
av_warn_unused_result int sws_init_context | ( | struct SwsContext * | sws_context, |
SwsFilter * | srcFilter, | ||
SwsFilter * | dstFilter | ||
) |
Initialize the swscaler context sws_context.
void sws_freeContext | ( | struct SwsContext * | swsContext | ) |
Free the swscaler context swsContext.
If swsContext is NULL, then does nothing.
Referenced by close_stream(), and main().
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 | ||
) |
Allocate and return an SwsContext.
You need it to perform scaling/conversion operations using sws_scale().
srcW | the width of the source image |
srcH | the height of the source image |
srcFormat | the source image format |
dstW | the width of the destination image |
dstH | the height of the destination image |
dstFormat | the destination image format |
flags | specify which algorithm and options to use for rescaling |
param | extra parameters to tune the used scaler For SWS_BICUBIC param[0] and [1] tune the shape of the basis function, param[0] tunes f(1) and param[1] f´(1) For SWS_GAUSS param[0] tunes the exponent and thus cutoff frequency For SWS_LANCZOS param[0] tunes the width of the window function |
Referenced by get_video_frame(), and main().
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[] | ||
) |
Scale the image slice in srcSlice and put the resulting scaled slice in the image in dst.
A slice is a sequence of consecutive rows in an image.
Slices have to be provided in sequential order, either in top-bottom or bottom-top order. If slices are provided in non-sequential order the behavior of the function is undefined.
c | the scaling context previously created with sws_getContext() |
srcSlice | the array containing the pointers to the planes of the source slice |
srcStride | the array containing the strides for each plane of the source image |
srcSliceY | the position in the source image of the slice to process, that is the number (counted starting from zero) in the image of the first row of the slice |
srcSliceH | the height of the source slice, that is the number of rows in the slice |
dst | the array containing the pointers to the planes of the destination image |
dstStride | the array containing the strides for each plane of the destination image |
Referenced by get_video_frame(), and main().
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 | ||
) |
dstRange | flag indicating the while-black range of the output (1=jpeg / 0=mpeg) |
srcRange | flag indicating the while-black range of the input (1=jpeg / 0=mpeg) |
table | the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x] |
inv_table | the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x] |
brightness | 16.16 fixed point brightness correction |
contrast | 16.16 fixed point contrast correction |
saturation | 16.16 fixed point saturation correction |
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 | ) |
Allocate and return an uninitialized vector with length coefficients.
SwsVector* sws_getGaussianVec | ( | double | variance, |
double | quality | ||
) |
Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality.
void sws_scaleVec | ( | SwsVector * | a, |
double | scalar | ||
) |
Scale all the coefficients of a by the scalar value.
void sws_normalizeVec | ( | SwsVector * | a, |
double | height | ||
) |
Scale all the coefficients of a so that their sum equals 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 | ||
) |
Check if context can be reused, otherwise reallocate a new one.
If context is NULL, just calls sws_getContext() to get a new context. Otherwise, checks if the parameters are the ones already saved in context. If that is the case, returns the current context. Otherwise, frees context and gets a new context with the new parameters.
Be warned that srcFilter and dstFilter are not checked, they are assumed to remain the same.
void sws_convertPalette8ToPacked32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | num_pixels, | ||
const uint8_t * | palette | ||
) |
Convert an 8-bit paletted frame into a frame with a color depth of 32 bits.
The output frame will have the same packed format as the palette.
src | source frame buffer |
dst | destination frame buffer |
num_pixels | number of pixels to convert |
palette | array with [256] entries, which must match color arrangement (RGB or BGR) of src |
void sws_convertPalette8ToPacked24 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | num_pixels, | ||
const uint8_t * | palette | ||
) |
Convert an 8-bit paletted frame into a frame with a color depth of 24 bits.
With the palette format "ABCD", the destination frame ends up with the format "ABC".
src | source frame buffer |
dst | destination frame buffer |
num_pixels | number of pixels to convert |
palette | array with [256] entries, which must match color arrangement (RGB or BGR) of src |
const AVClass* sws_get_class | ( | void | ) |
Get the AVClass for swsContext.
It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.