FFmpeg
Files | Data Structures | Macros | Enumerations | Functions
libswscale

Color conversion and scaling library. More...

Files

file  swscale.h
 

Data Structures

struct  SwsContext
 Main external API structure. More...
 
struct  SwsVector
 
struct  SwsFilter
 

Macros

#define SWS_SRC_V_CHR_DROP_MASK   0x30000
 
#define SWS_SRC_V_CHR_DROP_SHIFT   16
 
#define SWS_PARAM_DEFAULT   123456
 
#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
 

Enumerations

enum  SwsDither {
  SWS_DITHER_NONE = 0, SWS_DITHER_AUTO, SWS_DITHER_BAYER, SWS_DITHER_ED,
  SWS_DITHER_A_DITHER, SWS_DITHER_X_DITHER, SWS_DITHER_NB
}
 
enum  SwsAlphaBlend { SWS_ALPHA_BLEND_NONE = 0, SWS_ALPHA_BLEND_UNIFORM, SWS_ALPHA_BLEND_CHECKERBOARD, SWS_ALPHA_BLEND_NB }
 
enum  SwsFlags {
  SWS_FAST_BILINEAR = 1 << 0, SWS_BILINEAR = 1 << 1, SWS_BICUBIC = 1 << 2, SWS_X = 1 << 3,
  SWS_POINT = 1 << 4, SWS_AREA = 1 << 5, SWS_BICUBLIN = 1 << 6, SWS_GAUSS = 1 << 7,
  SWS_SINC = 1 << 8, SWS_LANCZOS = 1 << 9, SWS_SPLINE = 1 << 10, SWS_STRICT = 1 << 11,
  SWS_PRINT_INFO = 1 << 12, SWS_FULL_CHR_H_INT = 1 << 13, SWS_FULL_CHR_H_INP = 1 << 14, SWS_ACCURATE_RND = 1 << 18,
  SWS_BITEXACT = 1 << 19, SWS_DIRECT_BGR = 1 << 15, SWS_ERROR_DIFFUSION = 1 << 23
}
 

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 AVClasssws_get_class (void)
 Get the AVClass for SwsContext. More...
 
SwsContextsws_alloc_context (void)
 Allocate an empty SwsContext and set its fields to default values. More...
 
void sws_free_context (SwsContext **ctx)
 Free the context and everything associated with it, and write NULL to the provided pointer. More...
 
int sws_test_format (enum AVPixelFormat format, int output)
 Test if a given pixel format is supported. More...
 
int sws_test_colorspace (enum AVColorSpace colorspace, int output)
 Test if a given color space is supported. More...
 
int sws_test_primaries (enum AVColorPrimaries primaries, int output)
 Test if a given set of color primaries is supported. More...
 
int sws_test_transfer (enum AVColorTransferCharacteristic trc, int output)
 Test if a given color transfer function is supported. More...
 
int sws_test_frame (const AVFrame *frame, int output)
 Helper function to run all sws_test_* against a frame, as well as testing the basic frame properties for sanity. More...
 
int sws_frame_setup (SwsContext *ctx, const AVFrame *dst, const AVFrame *src)
 Like sws_scale_frame, but without actually scaling. More...
 
int sws_is_noop (const AVFrame *dst, const AVFrame *src)
 Check if a given conversion is a noop. More...
 
int sws_scale_frame (SwsContext *c, AVFrame *dst, const AVFrame *src)
 Scale source data from src and write the output to dst. 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)
 
av_warn_unused_result int sws_init_context (SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter)
 Initialize the swscaler context sws_context. More...
 
void sws_freeContext (SwsContext *swsContext)
 Free the swscaler context swsContext. More...
 
SwsContextsws_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 (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_frame_start (SwsContext *c, AVFrame *dst, const AVFrame *src)
 Initialize the scaling process for a given pair of source/destination frames. More...
 
void sws_frame_end (SwsContext *c)
 Finish the scaling process for a pair of source/destination frames previously submitted with sws_frame_start(). More...
 
int sws_send_slice (SwsContext *c, unsigned int slice_start, unsigned int slice_height)
 Indicate that a horizontal slice of input data is available in the source frame previously provided to sws_frame_start(). More...
 
int sws_receive_slice (SwsContext *c, unsigned int slice_start, unsigned int slice_height)
 Request a horizontal slice of the output data to be written into the frame previously provided to sws_frame_start(). More...
 
unsigned int sws_receive_slice_alignment (const SwsContext *c)
 Get the alignment required for slices. More...
 
int sws_setColorspaceDetails (SwsContext *c, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation)
 
int sws_getColorspaceDetails (SwsContext *c, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation)
 
SwsVectorsws_allocVec (int length)
 Allocate and return an uninitialized vector with length coefficients. More...
 
SwsVectorsws_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...
 
void sws_freeVec (SwsVector *a)
 
SwsFiltersws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose)
 
void sws_freeFilter (SwsFilter *filter)
 
SwsContextsws_getCachedContext (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...
 

Detailed Description

Color conversion and scaling library.

Return the LIBSWSCALE_VERSION_INT constant.

Macro Definition Documentation

◆ SWS_SRC_V_CHR_DROP_MASK

#define SWS_SRC_V_CHR_DROP_MASK   0x30000

Definition at line 349 of file swscale.h.

◆ SWS_SRC_V_CHR_DROP_SHIFT

#define SWS_SRC_V_CHR_DROP_SHIFT   16

Definition at line 350 of file swscale.h.

◆ SWS_PARAM_DEFAULT

#define SWS_PARAM_DEFAULT   123456

Definition at line 352 of file swscale.h.

◆ SWS_MAX_REDUCE_CUTOFF

#define SWS_MAX_REDUCE_CUTOFF   0.002

Definition at line 354 of file swscale.h.

◆ SWS_CS_ITU709

#define SWS_CS_ITU709   1

Definition at line 356 of file swscale.h.

◆ SWS_CS_FCC

#define SWS_CS_FCC   4

Definition at line 357 of file swscale.h.

◆ SWS_CS_ITU601

#define SWS_CS_ITU601   5

Definition at line 358 of file swscale.h.

◆ SWS_CS_ITU624

#define SWS_CS_ITU624   5

Definition at line 359 of file swscale.h.

◆ SWS_CS_SMPTE170M

#define SWS_CS_SMPTE170M   5

Definition at line 360 of file swscale.h.

◆ SWS_CS_SMPTE240M

#define SWS_CS_SMPTE240M   7

Definition at line 361 of file swscale.h.

◆ SWS_CS_DEFAULT

#define SWS_CS_DEFAULT   5

Definition at line 362 of file swscale.h.

◆ SWS_CS_BT2020

#define SWS_CS_BT2020   9

Definition at line 363 of file swscale.h.

Enumeration Type Documentation

◆ SwsDither

enum SwsDither
Enumerator
SWS_DITHER_NONE 
SWS_DITHER_AUTO 
SWS_DITHER_BAYER 
SWS_DITHER_ED 
SWS_DITHER_A_DITHER 
SWS_DITHER_X_DITHER 
SWS_DITHER_NB 

Definition at line 77 of file swscale.h.

◆ SwsAlphaBlend

Enumerator
SWS_ALPHA_BLEND_NONE 
SWS_ALPHA_BLEND_UNIFORM 
SWS_ALPHA_BLEND_CHECKERBOARD 
SWS_ALPHA_BLEND_NB 

Definition at line 87 of file swscale.h.

◆ SwsFlags

enum SwsFlags
Enumerator
SWS_FAST_BILINEAR 

Scaler selection options.

Only one may be active at a time. fast bilinear filtering

SWS_BILINEAR 

bilinear filtering

SWS_BICUBIC 

2-tap cubic B-spline

SWS_X 

experimental

SWS_POINT 

nearest neighbor

SWS_AREA 

area averaging

SWS_BICUBLIN 

bicubic luma, bilinear chroma

SWS_GAUSS 

gaussian approximation

SWS_SINC 

unwindowed sinc

SWS_LANCZOS 

3-tap sinc/sinc

SWS_SPLINE 

cubic Keys spline

SWS_STRICT 

Return an error on underspecified conversions.

Without this flag, unspecified fields are defaulted to sensible values.

SWS_PRINT_INFO 

Emit verbose log of scaling parameters.

SWS_FULL_CHR_H_INT 

Perform full chroma upsampling when upscaling to RGB.

For example, when converting 50x50 yuv420p to 100x100 rgba, setting this flag will scale the chroma plane from 25x25 to 100x100 (4:4:4), and then convert the 100x100 yuv444p image to rgba in the final output step.

Without this flag, the chroma plane is instead scaled to 50x100 (4:2:2), with a single chroma sample being re-used for both of the horizontally adjacent RGBA output pixels.

SWS_FULL_CHR_H_INP 

Perform full chroma interpolation when downscaling RGB sources.

For example, when converting a 100x100 rgba source to 50x50 yuv444p, setting this flag will generate a 100x100 (4:4:4) chroma plane, which is then downscaled to the required 50x50.

Without this flag, the chroma plane is instead generated at 50x100 (dropping every other pixel), before then being downscaled to the required 50x50 resolution.

SWS_ACCURATE_RND 

Force bit-exact output.

This will prevent the use of platform-specific optimizations that may lead to slight difference in rounding, in favor of always maintaining exact bit output compatibility with the reference C code.

Note: It is recommended to set both of these flags simultaneously.

SWS_BITEXACT 
SWS_DIRECT_BGR 

Deprecated flags.

This flag has no effect

SWS_ERROR_DIFFUSION 

Set SwsContext.dither instead.

Definition at line 94 of file swscale.h.

Function Documentation

◆ swscale_version()

unsigned swscale_version ( void  )

Definition at line 27 of file version.c.

◆ swscale_configuration()

const char* swscale_configuration ( void  )

Return the libswscale build-time configuration.

Definition at line 33 of file version.c.

◆ swscale_license()

const char* swscale_license ( void  )

Return the libswscale license.

Definition at line 38 of file version.c.

◆ sws_get_class()

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.

See also
av_opt_find().

Definition at line 99 of file options.c.

Referenced by child_class_iterate(), opt_default(), scale2ref_child_class_iterate(), and show_help_default().

◆ sws_alloc_context()

SwsContext* sws_alloc_context ( void  )

◆ sws_free_context()

void sws_free_context ( SwsContext **  ctx)

Free the context and everything associated with it, and write NULL to the provided pointer.

Definition at line 2526 of file utils.c.

Referenced by add_legacy_sws_pass(), free_legacy_swscale(), main(), sws_getCachedContext(), and uninit().

◆ sws_test_format()

int sws_test_format ( enum AVPixelFormat  format,
int  output 
)

Test if a given pixel format is supported.

Parameters
outputIf 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
formatThe format to check.
Returns
A positive integer if supported, 0 otherwise.

Definition at line 2711 of file utils.c.

Referenced by ff_test_fmt(), query_formats(), and run_self_tests().

◆ sws_test_colorspace()

int sws_test_colorspace ( enum AVColorSpace  colorspace,
int  output 
)

Test if a given color space is supported.

Parameters
outputIf 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
colorspaceThe colorspace to check.
Returns
A positive integer if supported, 0 otherwise.

Definition at line 2716 of file utils.c.

Referenced by ff_test_fmt(), init(), and query_formats().

◆ sws_test_primaries()

int sws_test_primaries ( enum AVColorPrimaries  primaries,
int  output 
)

Test if a given set of color primaries is supported.

Parameters
outputIf 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
primariesThe color primaries to check.
Returns
A positive integer if supported, 0 otherwise.

Definition at line 2733 of file utils.c.

Referenced by ff_test_fmt().

◆ sws_test_transfer()

int sws_test_transfer ( enum AVColorTransferCharacteristic  trc,
int  output 
)

Test if a given color transfer function is supported.

Parameters
outputIf 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
trcThe color transfer function to check.
Returns
A positive integer if supported, 0 otherwise.

Definition at line 2739 of file utils.c.

Referenced by ff_test_fmt().

◆ sws_test_frame()

int sws_test_frame ( const AVFrame frame,
int  output 
)

Helper function to run all sws_test_* against a frame, as well as testing the basic frame properties for sanity.

Ignores irrelevant properties - for example, AVColorSpace is not checked for RGB frames.

Definition at line 2766 of file utils.c.

◆ sws_frame_setup()

int sws_frame_setup ( SwsContext ctx,
const AVFrame dst,
const AVFrame src 
)

Like sws_scale_frame, but without actually scaling.

It will instead merely initialize internal state that would be required to perform the operation, as well as returning the correct error code for unsupported frame combinations.

Parameters
ctxThe scaling context.
dstThe destination frame to consider.
srcThe source frame to consider.
Returns
0 on success, a negative AVERROR code on failure.

Definition at line 1343 of file swscale.c.

Referenced by sws_scale_frame().

◆ sws_is_noop()

int sws_is_noop ( const AVFrame dst,
const AVFrame src 
)

Check if a given conversion is a noop.

Returns a positive integer if no operation needs to be performed, 0 otherwise.

Definition at line 2779 of file utils.c.

Referenced by scale_frame().

◆ sws_scale_frame()

int sws_scale_frame ( SwsContext c,
AVFrame dst,
const AVFrame src 
)

Scale source data from src and write the output to dst.

This function can be used directly on an allocated context, without setting up any frame properties or calling sws_init_context(). Such usage is fully dynamic and does not require reallocation if the frame properties change.

Alternatively, this function can be called on a context that has been explicitly initialized. However, this is provided only for backwards compatibility. In this usage mode, all frame properties must be correctly set at init time, and may no longer change after initialization.

Parameters
ctxThe scaling context.
dstThe destination frame. 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 (or all) output planes may be references to input planes, rather than copies.
srcThe source frame. If the data buffers are set to NULL, then this function behaves identically to sws_frame_setup.
Returns
0 on success, a negative AVERROR code on failure.

Definition at line 1267 of file swscale.c.

Referenced by main(), recon_frame_process(), run_test(), scale_frame(), and scale_legacy().

◆ sws_getCoefficients()

const int* sws_getCoefficients ( int  colorspace)

Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().

Parameters
colorspaceOne of the SWS_CS_* macros. If invalid, SWS_CS_DEFAULT is used.

Definition at line 61 of file yuv2rgb.c.

Referenced by add_legacy_sws_pass().

◆ sws_isSupportedInput()

int sws_isSupportedInput ( enum AVPixelFormat  pix_fmt)

Return a positive value if pix_fmt is a supported input format, 0 otherwise.

Definition at line 373 of file utils.c.

Referenced by ff_sws_init_single_context(), and sws_test_format().

◆ sws_isSupportedOutput()

int sws_isSupportedOutput ( enum AVPixelFormat  pix_fmt)

Return a positive value if pix_fmt is a supported output format, 0 otherwise.

Definition at line 379 of file utils.c.

Referenced by ff_sws_init_single_context(), and sws_test_format().

◆ sws_isSupportedEndiannessConversion()

int sws_isSupportedEndiannessConversion ( enum AVPixelFormat  pix_fmt)
Parameters
[in]pix_fmtthe pixel format
Returns
a positive value if an endianness conversion for pix_fmt is supported, 0 otherwise.

Definition at line 385 of file utils.c.

Referenced by ff_sws_init_single_context().

◆ sws_init_context()

av_warn_unused_result int sws_init_context ( SwsContext sws_context,
SwsFilter srcFilter,
SwsFilter dstFilter 
)

Initialize the swscaler context sws_context.

This function is considered deprecated, and provided only for backwards compatibility with sws_scale() and sws_start_frame(). The preferred way to use libswscale is to set all frame properties correctly and call sws_scale_frame() directly, without explicitly initializing the context.

Returns
zero or positive value on success, a negative value on error

Definition at line 2082 of file utils.c.

Referenced by add_legacy_sws_pass(), check_chrConvertRange(), check_hscale(), check_input_planar_rgb_to_a(), check_input_planar_rgb_to_uv(), check_input_planar_rgb_to_y(), check_lumConvertRange(), check_output_yuv2gbrp(), check_yuv2yuv1(), check_yuv2yuvX(), draw_qrcode(), ff_sws_init_single_context(), LLVMFuzzerTestOneInput(), output_single_frame(), scale_legacy(), sws_getCachedContext(), sws_getContext(), and sws_setColorspaceDetails().

◆ sws_freeContext()

void sws_freeContext ( SwsContext swsContext)

◆ sws_getContext()

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().

Parameters
srcWthe width of the source image
srcHthe height of the source image
srcFormatthe source image format
dstWthe width of the destination image
dstHthe height of the destination image
dstFormatthe destination image format
flagsspecify which algorithm and options to use for rescaling
paramextra 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
Returns
a pointer to an allocated context, or NULL in case of error
Note
this function is to be removed after a saner alternative is written
Examples
mux.c, and scale_video.c.

Definition at line 2116 of file utils.c.

Referenced by check_semiplanar(), check_yuv2rgb(), checkasm_check_sw_rgb(), config_output(), 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(), ff_sws_init_single_context(), get_video_frame(), main(), open_filter_param(), prepare_uv_scale(), process_frame(), and recon_frame_process().

◆ sws_scale()

int sws_scale ( SwsContext sws,
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. Requires a context that has been previously been initialized with sws_init_context().

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.

Parameters
cthe scaling context previously created with sws_getContext()
srcSlicethe array containing the pointers to the planes of the source slice
srcStridethe array containing the strides for each plane of the source image
srcSliceYthe 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
srcSliceHthe height of the source slice, that is the number of rows in the slice
dstthe array containing the pointers to the planes of the destination image
dstStridethe array containing the strides for each plane of the destination image
Returns
the height of the output slice

Scale the image slice in srcSlice and put the resulting scaled slice in the image in dst.

Assumes planar YUV to be in YUV order instead of YVU.

Definition at line 1427 of file swscale.c.

Referenced by blur(), copy_uv_planes(), draw_qrcode(), 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(), LLVMFuzzerTestOneInput(), main(), output_single_frame(), process_frame(), video_image_display(), and wrap().

◆ sws_frame_start()

int sws_frame_start ( SwsContext c,
AVFrame dst,
const AVFrame src 
)

Initialize the scaling process for a given pair of source/destination frames.

Must be called before any calls to sws_send_slice() and sws_receive_slice(). Requires a context that has been previously been initialized with sws_init_context().

This function will retain references to src and dst, so they must both use refcounted buffers (if allocated by the caller, in case of dst).

Parameters
cThe scaling context
dstThe destination frame.
       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.
srcThe source frame. The data buffers must be allocated, but the frame data does not have to be ready at this point. Data availability is then signalled by sws_send_slice().
Returns
0 on success, a negative AVERROR code on failure
See also
sws_frame_end()

Definition at line 1114 of file swscale.c.

Referenced by sws_scale_frame().

◆ sws_frame_end()

void sws_frame_end ( SwsContext c)

Finish the scaling process for a pair of source/destination frames previously submitted with sws_frame_start().

Must be called after all sws_send_slice() and sws_receive_slice() calls are done, before any new sws_frame_start() calls.

Parameters
cThe scaling context

Definition at line 1106 of file swscale.c.

Referenced by sws_scale_frame().

◆ sws_send_slice()

int sws_send_slice ( SwsContext c,
unsigned int  slice_start,
unsigned int  slice_height 
)

Indicate that a horizontal slice of input data is available in the source frame previously provided to sws_frame_start().

The slices may be provided in any order, but may not overlap. For vertically subsampled pixel formats, the slices must be aligned according to subsampling.

Parameters
cThe scaling context
slice_startfirst row of the slice
slice_heightnumber of rows in the slice
Returns
a non-negative number on success, a negative AVERROR code on failure.

Definition at line 1145 of file swscale.c.

Referenced by sws_scale_frame().

◆ sws_receive_slice()

int sws_receive_slice ( SwsContext c,
unsigned int  slice_start,
unsigned int  slice_height 
)

Request a horizontal slice of the output data to be written into the frame previously provided to sws_frame_start().

Parameters
cThe scaling context
slice_startfirst row of the slice; must be a multiple of sws_receive_slice_alignment()
slice_heightnumber of rows in the slice; must be a multiple of sws_receive_slice_alignment(), except for the last slice (i.e. when slice_start+slice_height is equal to output frame height)
Returns
a non-negative number if the data was successfully written into the output AVERROR(EAGAIN) if more input data needs to be provided before the output can be produced another negative AVERROR code on other kinds of scaling failure

Definition at line 1167 of file swscale.c.

Referenced by sws_scale_frame().

◆ sws_receive_slice_alignment()

unsigned int sws_receive_slice_alignment ( const SwsContext c)

Get the alignment required for slices.

Requires a context that has been previously been initialized with sws_init_context().

Parameters
cThe scaling context
Returns
alignment required for output slices requested with sws_receive_slice(). Slice offsets and sizes passed to sws_receive_slice() must be multiples of the value returned from this function.

Definition at line 1158 of file swscale.c.

Referenced by sws_receive_slice().

◆ sws_setColorspaceDetails()

int sws_setColorspaceDetails ( SwsContext c,
const int  inv_table[4],
int  srcRange,
const int  table[4],
int  dstRange,
int  brightness,
int  contrast,
int  saturation 
)
Parameters
cthe scaling context
dstRangeflag indicating the while-black range of the output (1=jpeg / 0=mpeg)
srcRangeflag indicating the while-black range of the input (1=jpeg / 0=mpeg)
tablethe yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x]
inv_tablethe yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x]
brightness16.16 fixed point brightness correction
contrast16.16 fixed point contrast correction
saturation16.16 fixed point saturation correction
Returns
A negative error code on error, non negative otherwise. If LIBSWSCALE_VERSION_MAJOR < 7, returns -1 if not supported.

Definition at line 1046 of file utils.c.

Referenced by add_legacy_sws_pass(), ff_sws_init_single_context(), and init_legacy_subpass().

◆ sws_getColorspaceDetails()

int sws_getColorspaceDetails ( SwsContext c,
int **  inv_table,
int *  srcRange,
int **  table,
int *  dstRange,
int *  brightness,
int *  contrast,
int *  saturation 
)
Returns
A negative error code on error, non negative otherwise. If LIBSWSCALE_VERSION_MAJOR < 7, returns -1 if not supported.

Definition at line 1202 of file utils.c.

Referenced by add_legacy_sws_pass().

◆ sws_allocVec()

SwsVector* sws_allocVec ( int  length)

Allocate and return an uninitialized vector with length coefficients.

Definition at line 2153 of file utils.c.

Referenced by sws_getConstVec(), and sws_getGaussianVec().

◆ sws_getGaussianVec()

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.

Definition at line 2170 of file utils.c.

Referenced by alloc_sws_context(), open_filter_param(), and sws_getDefaultFilter().

◆ sws_scaleVec()

void sws_scaleVec ( SwsVector a,
double  scalar 
)

Scale all the coefficients of a by the scalar value.

Definition at line 2236 of file utils.c.

Referenced by alloc_sws_context(), sws_getDefaultFilter(), and sws_normalizeVec().

◆ sws_normalizeVec()

void sws_normalizeVec ( SwsVector a,
double  height 
)

Scale all the coefficients of a so that their sum equals height.

Definition at line 2244 of file utils.c.

Referenced by sws_getDefaultFilter(), and sws_getGaussianVec().

◆ sws_freeVec()

void sws_freeVec ( SwsVector a)

◆ sws_getDefaultFilter()

SwsFilter* sws_getDefaultFilter ( float  lumaGBlur,
float  chromaGBlur,
float  lumaSharpen,
float  chromaSharpen,
float  chromaHShift,
float  chromaVShift,
int  verbose 
)

Definition at line 2364 of file utils.c.

◆ sws_freeFilter()

void sws_freeFilter ( SwsFilter filter)

Definition at line 2352 of file utils.c.

◆ sws_getCachedContext()

SwsContext* sws_getCachedContext ( 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.

Definition at line 2536 of file utils.c.

Referenced by alloc_sws_context(), and video_image_display().

◆ sws_convertPalette8ToPacked32()

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.

Parameters
srcsource frame buffer
dstdestination frame buffer
num_pixelsnumber of pixels to convert
palettearray with [256] entries, which must match color arrangement (RGB or BGR) of src

Definition at line 2603 of file swscale_unscaled.c.

Referenced by palToRgbWrapper().

◆ sws_convertPalette8ToPacked24()

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

Parameters
srcsource frame buffer
dstdestination frame buffer
num_pixelsnumber of pixels to convert
palettearray with [256] entries, which must match color arrangement (RGB or BGR) of src

Definition at line 2613 of file swscale_unscaled.c.

Referenced by palToRgbWrapper().