#include <inttypes.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
#include "config.h"
#include <assert.h>
#include "swscale.h"
#include "swscale_internal.h"
#include "rgb2rgb.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/x86_cpu.h"
#include "libavutil/avutil.h"
#include "libavutil/bswap.h"
#include "libavutil/pixdesc.h"
Go to the source code of this file.
Defines | |
#define | _SVID_SOURCE |
#define | LICENSE_PREFIX "libswscale license: " |
#define | RET 0xC3 |
#define | isSupportedIn(x) |
#define | isSupportedOut(x) |
Functions | |
unsigned | swscale_version (void) |
Returns the LIBSWSCALE_VERSION_INT constant. | |
const char * | swscale_configuration (void) |
Returns the libswscale build-time configuration. | |
const char * | swscale_license (void) |
Returns the libswscale license. | |
int | sws_isSupportedInput (enum PixelFormat pix_fmt) |
Returns a positive value if pix_fmt is a supported input format, 0 otherwise. | |
int | sws_isSupportedOutput (enum PixelFormat pix_fmt) |
Returns a positive value if pix_fmt is a supported output format, 0 otherwise. | |
const char * | sws_format_name (enum PixelFormat format) |
static double | getSplineCoeff (double a, double b, double c, double d, double dist) |
static int | initFilter (int16_t **outFilter, int16_t **filterPos, int *outFilterSize, int xInc, int srcW, int dstW, int filterAlign, int one, int flags, SwsVector *srcFilter, SwsVector *dstFilter, double param[2]) |
static void | getSubSampleFactors (int *h, int *v, enum PixelFormat format) |
static uint16_t | roundToInt16 (int64_t f) |
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) |
static int | handle_jpeg (enum PixelFormat *format) |
SwsContext * | sws_getContext (int srcW, int srcH, enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
Allocates and returns a SwsContext. | |
SwsFilter * | sws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose) |
SwsVector * | sws_allocVec (int length) |
Allocates and returns an uninitialized vector with length coefficients. | |
SwsVector * | sws_getGaussianVec (double variance, double quality) |
Returns a normalized Gaussian curve used to filter stuff quality=3 is high quality, lower is lower quality. | |
SwsVector * | sws_getConstVec (double c, int length) |
Allocates and returns a vector with length coefficients, all with the same value c. | |
SwsVector * | sws_getIdentityVec (void) |
Allocates and returns a vector with just one coefficient, with value 1.0. | |
static double | sws_dcVec (SwsVector *a) |
void | sws_scaleVec (SwsVector *a, double scalar) |
Scales all the coefficients of a by the scalar value. | |
void | sws_normalizeVec (SwsVector *a, double height) |
Scales all the coefficients of a so that their sum equals height. | |
static SwsVector * | sws_getConvVec (SwsVector *a, SwsVector *b) |
static SwsVector * | sws_sumVec (SwsVector *a, SwsVector *b) |
static SwsVector * | sws_diffVec (SwsVector *a, SwsVector *b) |
static SwsVector * | sws_getShiftedVec (SwsVector *a, int shift) |
void | sws_shiftVec (SwsVector *a, int shift) |
void | sws_addVec (SwsVector *a, SwsVector *b) |
void | sws_subVec (SwsVector *a, SwsVector *b) |
void | sws_convVec (SwsVector *a, SwsVector *b) |
SwsVector * | sws_cloneVec (SwsVector *a) |
Allocates and returns a clone of the vector a, that is a vector with the same coefficients as a. | |
void | sws_printVec2 (SwsVector *a, AVClass *log_ctx, int log_level) |
Prints with av_log() a textual representation of the vector a if log_level <= av_log_level. | |
void | sws_printVec (SwsVector *a) |
void | sws_freeVec (SwsVector *a) |
void | sws_freeFilter (SwsFilter *filter) |
void | sws_freeContext (SwsContext *c) |
Frees the swscaler context swsContext. | |
struct SwsContext * | sws_getCachedContext (struct SwsContext *context, int srcW, int srcH, enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
Checks if context can be reused, otherwise reallocates a new one. | |
Variables | |
const int32_t | ff_yuv2rgb_coeffs [8][4] |
#define isSupportedIn | ( | x | ) |
Definition at line 65 of file utils.c.
Referenced by sws_getContext(), and sws_isSupportedInput().
#define isSupportedOut | ( | x | ) |
( \ (x)==PIX_FMT_YUV420P \ || (x)==PIX_FMT_YUVA420P \ || (x)==PIX_FMT_YUYV422 \ || (x)==PIX_FMT_UYVY422 \ || (x)==PIX_FMT_YUV444P \ || (x)==PIX_FMT_YUV422P \ || (x)==PIX_FMT_YUV411P \ || (x)==PIX_FMT_YUVJ420P \ || (x)==PIX_FMT_YUVJ422P \ || (x)==PIX_FMT_YUVJ440P \ || (x)==PIX_FMT_YUVJ444P \ || isAnyRGB(x) \ || (x)==PIX_FMT_NV12 \ || (x)==PIX_FMT_NV21 \ || (x)==PIX_FMT_GRAY16BE \ || (x)==PIX_FMT_GRAY16LE \ || (x)==PIX_FMT_GRAY8 \ || (x)==PIX_FMT_YUV410P \ || (x)==PIX_FMT_YUV440P \ || (x)==PIX_FMT_YUV420P16LE \ || (x)==PIX_FMT_YUV422P16LE \ || (x)==PIX_FMT_YUV444P16LE \ || (x)==PIX_FMT_YUV420P16BE \ || (x)==PIX_FMT_YUV422P16BE \ || (x)==PIX_FMT_YUV444P16BE \ )
Definition at line 117 of file utils.c.
Referenced by sws_getContext(), and sws_isSupportedOutput().
#define LICENSE_PREFIX "libswscale license: " |
static double getSplineCoeff | ( | double | a, | |
double | b, | |||
double | c, | |||
double | d, | |||
double | dist | |||
) | [static] |
Definition at line 160 of file utils.c.
Referenced by initFilter().
static void getSubSampleFactors | ( | int * | h, | |
int * | v, | |||
enum PixelFormat | format | |||
) | [static] |
Definition at line 668 of file utils.c.
Referenced by sws_getContext().
static int handle_jpeg | ( | enum PixelFormat * | format | ) | [static] |
Definition at line 761 of file utils.c.
Referenced by sws_getContext().
static int initFilter | ( | int16_t ** | outFilter, | |
int16_t ** | filterPos, | |||
int * | outFilterSize, | |||
int | xInc, | |||
int | srcW, | |||
int | dstW, | |||
int | filterAlign, | |||
int | one, | |||
int | flags, | |||
SwsVector * | srcFilter, | |||
SwsVector * | dstFilter, | |||
double | param[2] | |||
) | [static] |
Definition at line 171 of file utils.c.
Referenced by sws_getContext().
static uint16_t roundToInt16 | ( | int64_t | f | ) | [static] |
Definition at line 674 of file utils.c.
Referenced by sws_setColorspaceDetails().
Definition at line 1414 of file utils.c.
Referenced by sws_getDefaultFilter().
SwsVector* sws_allocVec | ( | int | length | ) |
Allocates and returns an uninitialized vector with length coefficients.
Definition at line 1265 of file utils.c.
Referenced by sws_cloneVec(), sws_getConstVec(), and sws_getGaussianVec().
static double sws_dcVec | ( | SwsVector * | a | ) | [static] |
Definition at line 1316 of file utils.c.
Referenced by sws_normalizeVec().
Definition at line 1373 of file utils.c.
Referenced by sws_subVec().
const char* sws_format_name | ( | enum PixelFormat | format | ) |
Definition at line 152 of file utils.c.
Referenced by doTest(), ff_yuv2packedX_altivec(), ff_yuv2rgb_get_func_ptr(), ff_yuv2rgb_get_func_ptr_bfin(), palToRgbWrapper(), rgbToRgbWrapper(), selfTest(), and sws_getContext().
void sws_freeContext | ( | struct SwsContext * | swsContext | ) |
Frees the swscaler context swsContext.
If swsContext is NULL, then does nothing.
Definition at line 1503 of file utils.c.
Referenced by do_video_out(), doTest(), main(), stream_close(), sws_getCachedContext(), sws_getContext(), and uninit().
void sws_freeVec | ( | SwsVector * | a | ) |
Definition at line 1484 of file utils.c.
Referenced by sws_freeFilter(), and sws_getDefaultFilter().
struct SwsContext* sws_getCachedContext | ( | struct SwsContext * | context, | |
int | srcW, | |||
int | srcH, | |||
enum PixelFormat | srcFormat, | |||
int | dstW, | |||
int | dstH, | |||
enum PixelFormat | dstFormat, | |||
int | flags, | |||
SwsFilter * | srcFilter, | |||
SwsFilter * | dstFilter, | |||
const double * | param | |||
) | [read] |
Checks if context can be reused, otherwise reallocates 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 1560 of file utils.c.
Referenced by queue_picture().
int sws_getColorspaceDetails | ( | struct SwsContext * | c, | |
int ** | inv_table, | |||
int * | srcRange, | |||
int ** | table, | |||
int * | dstRange, | |||
int * | brightness, | |||
int * | contrast, | |||
int * | saturation | |||
) |
SwsVector* sws_getConstVec | ( | double | c, | |
int | length | |||
) |
Allocates and returns a vector with length coefficients, all with the same value c.
Definition at line 1297 of file utils.c.
Referenced by sws_diffVec(), sws_getConvVec(), sws_getIdentityVec(), sws_getShiftedVec(), and sws_sumVec().
SwsContext* sws_getContext | ( | int | srcW, | |
int | srcH, | |||
enum PixelFormat | srcFormat, | |||
int | dstW, | |||
int | dstH, | |||
enum PixelFormat | dstFormat, | |||
int | flags, | |||
SwsFilter * | srcFilter, | |||
SwsFilter * | dstFilter, | |||
const double * | param | |||
) | [read] |
Allocates and returns a 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 |
Definition at line 781 of file utils.c.
Referenced by av_transcode(), config_props(), do_video_out(), doTest(), main(), sws_getCachedContext(), and write_video_frame().
Definition at line 1340 of file utils.c.
Referenced by sws_convVec().
SwsFilter* sws_getDefaultFilter | ( | float | lumaGBlur, | |
float | chromaGBlur, | |||
float | lumaSharpen, | |||
float | chromaSharpen, | |||
float | chromaHShift, | |||
float | chromaVShift, | |||
int | verbose | |||
) |
SwsVector* sws_getGaussianVec | ( | double | variance, | |
double | quality | |||
) |
Returns a normalized Gaussian curve used to filter stuff quality=3 is high quality, lower is lower quality.
Definition at line 1277 of file utils.c.
Referenced by sws_getDefaultFilter().
SwsVector* sws_getIdentityVec | ( | void | ) |
Allocates and returns a vector with just one coefficient, with value 1.0.
Definition at line 1311 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 1389 of file utils.c.
Referenced by sws_shiftVec().
int sws_isSupportedInput | ( | enum PixelFormat | pix_fmt | ) |
int sws_isSupportedOutput | ( | enum PixelFormat | pix_fmt | ) |
void sws_normalizeVec | ( | SwsVector * | a, | |
double | height | |||
) |
Scales all the coefficients of a so that their sum equals height.
Definition at line 1335 of file utils.c.
Referenced by sws_getDefaultFilter(), and sws_getGaussianVec().
void sws_printVec | ( | SwsVector * | a | ) |
Prints with av_log() a textual representation of the vector a if log_level <= av_log_level.
Definition at line 1454 of file utils.c.
Referenced by sws_getDefaultFilter(), and sws_printVec().
void sws_scaleVec | ( | SwsVector * | a, | |
double | scalar | |||
) |
Scales all the coefficients of a by the scalar value.
Definition at line 1327 of file utils.c.
Referenced by sws_getDefaultFilter(), and sws_normalizeVec().
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 | |||
) |
inv_table | the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x] | |
fullRange | if 1 then the luma range is 0..255 if 0 it is 16..235 |
Definition at line 682 of file utils.c.
Referenced by sws_getContext().
void sws_shiftVec | ( | SwsVector * | a, | |
int | shift | |||
) |
Definition at line 1405 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 1358 of file utils.c.
Referenced by sws_addVec().
const char* swscale_configuration | ( | void | ) |
Returns the libswscale build-time configuration.
Definition at line 52 of file utils.c.
Referenced by show_banner().
const char* swscale_license | ( | void | ) |
unsigned swscale_version | ( | void | ) |
const int32_t ff_yuv2rgb_coeffs[8][4] |
Definition at line 43 of file yuv2rgb.c.
Referenced by sws_getCoefficients(), and sws_getContext().