Loading...
Searching...
No Matches
libswscale

Color conversion and scaling library. More...

## Files

file | swscale.h
| external API header

## 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 , SWS_DITHER_MAX_ENUM = 0x7FFFFFFF }
enum | SwsAlphaBlend { SWS_ALPHA_BLEND_NONE = 0 , SWS_ALPHA_BLEND_UNIFORM , SWS_ALPHA_BLEND_CHECKERBOARD , SWS_ALPHA_BLEND_NB , SWS_ALPHA_BLEND_MAX_ENUM = 0x7FFFFFFF }

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_UNSTABLE = 1 << 20 , SWS_DIRECT_BGR = 1 << 15 , SWS_ERROR_DIFFUSION = 1 << 23
}

enum | SwsIntent { SWS_INTENT_PERCEPTUAL = 0 , SWS_INTENT_RELATIVE_COLORIMETRIC = 1 , SWS_INTENT_SATURATION = 2 , SWS_INTENT_ABSOLUTE_COLORIMETRIC = 3 , SWS_INTENT_NB }

## Functions

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 AVClass * | sws_get_class (void)
| Get the AVClass for SwsContext.
SwsContext * | sws_alloc_context (void)
| Allocate an empty SwsContext and set its fields to default values.
void | sws_free_context (SwsContext **ctx)
| Free the context and everything associated with it, and write NULL to the provided pointer.
int | sws_test_format (enum AVPixelFormat format, int output)
| Test if a given (software) pixel format is supported.
int | sws_test_hw_format (enum AVPixelFormat format)
| Test if a given hardware pixel format is supported.
int | sws_test_colorspace (enum AVColorSpace colorspace, int output)
| Test if a given color space is supported.
int | sws_test_primaries (enum AVColorPrimaries primaries, int output)
| Test if a given set of color primaries is supported.
int | sws_test_transfer (enum AVColorTransferCharacteristic trc, int output)
| Test if a given color transfer function is supported.
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.
int | sws_frame_setup (SwsContext *ctx, const AVFrame *dst, const AVFrame *src)
| Like sws_scale_frame, but without actually scaling.
int | sws_is_noop (const AVFrame *dst, const AVFrame *src)
| Check if a given conversion is a noop.
int | sws_scale_frame (SwsContext *c, AVFrame *dst, const AVFrame *src)
| Scale source data from src and write the output to dst.
const int * | sws_getCoefficients (int colorspace)
| Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().
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)
av_warn_unused_result int | sws_init_context (SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter)
| Initialize the swscaler context sws_context.
void | sws_freeContext (SwsContext *swsContext)
| Free the swscaler context swsContext.
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.
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.
int | sws_frame_start (SwsContext *c, AVFrame *dst, const AVFrame *src)
| Initialize the scaling process for a given pair of source/destination frames.
void | sws_frame_end (SwsContext *c)
| Finish the scaling process for a pair of source/destination frames previously submitted with sws_frame_start().
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().
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().
unsigned int | sws_receive_slice_alignment (const SwsContext *c)
| Get the alignment required for slices.
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)
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.
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)
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.
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.
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.

## 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 380 of file swscale.h.

## SWS_SRC_V_CHR_DROP_SHIFT

#define SWS_SRC_V_CHR_DROP_SHIFT 16

Definition at line 381 of file swscale.h.

## SWS_PARAM_DEFAULT

#define SWS_PARAM_DEFAULT 123456

Definition at line 383 of file swscale.h.

## SWS_MAX_REDUCE_CUTOFF

#define SWS_MAX_REDUCE_CUTOFF 0.002

Definition at line 385 of file swscale.h.

## SWS_CS_ITU709

#define SWS_CS_ITU709 1

Definition at line 387 of file swscale.h.

## SWS_CS_FCC

#define SWS_CS_FCC 4

Definition at line 388 of file swscale.h.

## SWS_CS_ITU601

#define SWS_CS_ITU601 5

Definition at line 389 of file swscale.h.

## SWS_CS_ITU624

#define SWS_CS_ITU624 5

Definition at line 390 of file swscale.h.

## SWS_CS_SMPTE170M

#define SWS_CS_SMPTE170M 5

Definition at line 391 of file swscale.h.

## SWS_CS_SMPTE240M

#define SWS_CS_SMPTE240M 7

Definition at line 392 of file swscale.h.

## SWS_CS_DEFAULT

#define SWS_CS_DEFAULT 5

Definition at line 393 of file swscale.h.

## SWS_CS_BT2020

#define SWS_CS_BT2020 9

Definition at line 394 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 |
SWS_DITHER_MAX_ENUM |

Definition at line 77 of file swscale.h.

## SwsAlphaBlend

enum SwsAlphaBlend

Enumerator
SWS_ALPHA_BLEND_NONE |
SWS_ALPHA_BLEND_UNIFORM |
SWS_ALPHA_BLEND_CHECKERBOARD |
SWS_ALPHA_BLEND_NB |
SWS_ALPHA_BLEND_MAX_ENUM |

Definition at line 88 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 reused 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_UNSTABLE | Allow using experimental new code paths. This may be faster, slower, or produce different output, with semantics subject to change at any point in time. For testing and debugging purposes only.
SWS_DIRECT_BGR | Deprecated flags. This flag has no effect
SWS_ERROR_DIFFUSION | Set SwsContext.dither instead.

Definition at line 96 of file swscale.h.

## SwsIntent

enum SwsIntent

Enumerator
SWS_INTENT_PERCEPTUAL | Perceptual tone mapping.
SWS_INTENT_RELATIVE_COLORIMETRIC | Relative colorimetric clipping.
SWS_INTENT_SATURATION | Saturation mapping.
SWS_INTENT_ABSOLUTE_COLORIMETRIC | Absolute colorimetric clipping.
SWS_INTENT_NB | not part of the ABI

Definition at line 174 of file swscale.h.

## Function Documentation

## swscale_version()

unsigned swscale_version | ( | void |  | ) |

## swscale_configuration()

const char * swscale_configuration | ( | void |  | ) |

Return the libswscale build-time configuration.

## swscale_license()

const char * swscale_license | ( | void |  | ) |

Return the libswscale license.

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

## sws_alloc_context()

SwsContext * sws_alloc_context | ( | void |  | ) |

Allocate an empty SwsContext and set its fields to default values.

## sws_free_context()

void sws_free_context | ( | SwsContext ** | ctx | ) |

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

## sws_test_format()

int sws_test_format | ( | enum AVPixelFormat | format,
|  | int | output )

Test if a given (software) pixel format is supported.

Parameters

  output | If 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
  format | The format to check.

Returns
  A positive integer if supported, 0 otherwise.

## sws_test_hw_format()

int sws_test_hw_format | ( | enum AVPixelFormat | format | ) |

Test if a given hardware pixel format is supported.

Parameters

  format | The hardware format to check, or AV_PIX_FMT_NONE.

Returns
  A positive integer if supported or AV_PIX_FMT_NONE, 0 otherwise.

## sws_test_colorspace()

int sws_test_colorspace | ( | enum AVColorSpace | colorspace,
|  | int | output )

Test if a given color space is supported.

Parameters

  output | If 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
  colorspace | The colorspace to check.

Returns
  A positive integer if supported, 0 otherwise.

## sws_test_primaries()

int sws_test_primaries | ( | enum AVColorPrimaries | primaries,
|  | int | output )

Test if a given set of color primaries is supported.

Parameters

  output | If 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
  primaries | The color primaries to check.

Returns
  A positive integer if supported, 0 otherwise.

## sws_test_transfer()

int sws_test_transfer | ( | enum AVColorTransferCharacteristic | trc,
|  | int | output )

Test if a given color transfer function is supported.

Parameters

  output | If 0, test if compatible with the source/input frame; otherwise, with the destination/output frame.
  trc | The color transfer function to check.

Returns
  A positive integer if supported, 0 otherwise.

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

## 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

  ctx | The scaling context.
  dst | The destination frame to consider.
  src | The source frame to consider.

Returns
  0 on success, a negative AVERROR code on failure.

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

## 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

  ctx | The scaling context.
  dst | The 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.
  src | The 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.

## sws_getCoefficients()

const int * sws_getCoefficients | ( | int | colorspace | ) |

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

Parameters

  colorspace | One of the SWS_CS_* macros. If invalid, SWS_CS_DEFAULT is used.

## sws_isSupportedInput()

int sws_isSupportedInput | ( | enum AVPixelFormat | pix_fmt | ) |

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

## sws_isSupportedOutput()

int sws_isSupportedOutput | ( | enum AVPixelFormat | pix_fmt | ) |

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

## sws_isSupportedEndiannessConversion()

int sws_isSupportedEndiannessConversion | ( | enum AVPixelFormat | pix_fmt | ) |

Parameters

  [in] | pix_fmt | the pixel format

Returns
  a positive value if an endianness conversion for pix_fmt is supported, 0 otherwise.

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

## sws_freeContext()

void sws_freeContext | ( | SwsContext * | swsContext | ) |

Free the swscaler context swsContext.

If swsContext is NULL, then does nothing.

Examples
  mux.c, and scale_video.c.

Referenced by close_stream(), and main().

## 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

  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

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.

Referenced by get_video_frame(), and main().

## sws_scale()

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.

A slice is a sequence of consecutive rows in an image. Requires a context that has 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

  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

Returns
  the height of the output slice

Examples
  mux.c, and scale_video.c.

Referenced by get_video_frame(), and main().

## 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 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

  c | The scaling context

  dst

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

  src | The 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()

## 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

  c | The scaling context

## 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

  c | The scaling context
  slice_start | first row of the slice
  slice_height | number of rows in the slice

Returns
  a non-negative number on success, a negative AVERROR code on failure.

## 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

  c | The scaling context
  slice_start | first row of the slice; must be a multiple of sws_receive_slice_alignment()
  slice_height | number 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

## sws_receive_slice_alignment()

unsigned int sws_receive_slice_alignment | ( | const SwsContext * | c | ) |

Get the alignment required for slices.

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

Parameters

  c | The 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.

## 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

  c | the scaling context
  dstRange | flag indicating the white-black range of the output (1=jpeg / 0=mpeg)
  srcRange | flag indicating the white-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

Returns
  A negative error code on error, non negative otherwise. If LIBSWSCALE_VERSION_MAJOR < 7, returns -1 if not supported.

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

## sws_allocVec()

SwsVector * sws_allocVec | ( | int | length | ) |

Allocate and return an uninitialized vector with length coefficients.

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

## sws_scaleVec()

void sws_scaleVec | ( | SwsVector * | a,
|  | double | scalar )

Scale all the coefficients of a by the scalar value.

## sws_normalizeVec()

void sws_normalizeVec | ( | SwsVector * | a,
|  | double | height )

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

## 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 )

## sws_freeFilter()

void sws_freeFilter | ( | SwsFilter * | filter | ) |

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

## 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

  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

## 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

  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