|
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.
1.8.13