#include "config.h"
#include <assert.h>
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avutil.h"
#include "libavutil/bswap.h"
#include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
Go to the source code of this file.
Data Structures | |
struct | FormatEntry |
Macros | |
#define | _SVID_SOURCE |
#define | LICENSE_PREFIX "libswscale license: " |
#define | RET 0xC3 |
#define | USE_MMAP (HAVE_MMAP && HAVE_MPROTECT && defined MAP_ANONYMOUS) |
Typedefs | |
typedef struct FormatEntry | FormatEntry |
Functions | |
unsigned | swscale_version (void) |
Return the LIBSWSCALE_VERSION_INT constant. More... | |
const char * | swscale_configuration (void) |
Return the libswscale build-time configuration. More... | |
const char * | swscale_license (void) |
Return the libswscale license. 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... | |
const char * | sws_format_name (enum AVPixelFormat format) |
static double | getSplineCoeff (double a, double b, double c, double d, double dist) |
static int | initFilter (int16_t **outFilter, int32_t **filterPos, int *outFilterSize, int xInc, int srcW, int dstW, int filterAlign, int one, int flags, int cpu_flags, SwsVector *srcFilter, SwsVector *dstFilter, double param[2], int is_horizontal) |
static void | getSubSampleFactors (int *h, int *v, enum AVPixelFormat format) |
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) |
static int | handle_jpeg (enum AVPixelFormat *format) |
SwsContext * | sws_alloc_context (void) |
Allocate an empty SwsContext. More... | |
av_cold int | sws_init_context (SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) |
Initialize the swscaler context sws_context. More... | |
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... | |
SwsFilter * | sws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose) |
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... | |
SwsVector * | sws_getConstVec (double c, int length) |
Allocate and return a vector with length coefficients, all with the same value c. More... | |
SwsVector * | sws_getIdentityVec (void) |
Allocate and return a vector with just one coefficient, with value 1.0. More... | |
static double | sws_dcVec (SwsVector *a) |
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... | |
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) |
Allocate and return a clone of the vector a, that is a vector with the same coefficients as a. More... | |
void | sws_printVec2 (SwsVector *a, AVClass *log_ctx, int log_level) |
Print with av_log() a textual representation of the vector a if log_level <= av_log_level. More... | |
void | sws_freeVec (SwsVector *a) |
void | sws_freeFilter (SwsFilter *filter) |
void | sws_freeContext (SwsContext *c) |
Free the swscaler context swsContext. More... | |
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... | |
Variables | |
static const FormatEntry | format_entries [AV_PIX_FMT_NB] |
const int32_t | ff_yuv2rgb_coeffs [8][4] |
#define LICENSE_PREFIX "libswscale license: " |
#define USE_MMAP (HAVE_MMAP && HAVE_MPROTECT && defined MAP_ANONYMOUS) |
typedef struct FormatEntry FormatEntry |
|
static |
Definition at line 198 of file utils.c.
Referenced by initFilter().
|
static |
Definition at line 768 of file utils.c.
Referenced by sws_init_context().
|
static |
Definition at line 823 of file utils.c.
Referenced by sws_getCachedContext(), and sws_getContext().
|
static |
Definition at line 211 of file utils.c.
Referenced by sws_init_context().
Definition at line 1536 of file utils.c.
Referenced by sws_getDefaultFilter().
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().
Definition at line 843 of file utils.c.
Referenced by sws_getCachedContext(), and sws_getContext().
SwsVector* sws_allocVec | ( | int | length) |
Allocate and return an uninitialized vector with length coefficients.
Definition at line 1381 of file utils.c.
Referenced by sws_cloneVec(), sws_getConstVec(), and sws_getGaussianVec().
|
static |
Definition at line 1433 of file utils.c.
Referenced by sws_normalizeVec().
Definition at line 1492 of file utils.c.
Referenced by sws_subVec().
const char* sws_format_name | ( | enum AVPixelFormat | format) |
Definition at line 189 of file utils.c.
Referenced by ff_yuv2packedX_altivec(), ff_yuv2rgb_get_func_ptr(), ff_yuv2rgb_get_func_ptr_bfin(), palToRgbWrapper(), rgbToRgbWrapper(), and sws_init_context().
void sws_freeContext | ( | struct SwsContext * | swsContext) |
Free the swscaler context swsContext.
If swsContext is NULL, then does nothing.
Definition at line 1628 of file utils.c.
Referenced by config_props(), doTest(), main(), stream_close(), sws_getCachedContext(), sws_getContext(), uninit(), uninit_opts(), and uninit_parse_context().
Definition at line 1603 of file utils.c.
Referenced by sws_freeFilter(), and sws_getDefaultFilter().
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.
Definition at line 1692 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 | ||
) |
Allocate and return a vector with length coefficients, all with the same value c.
Definition at line 1414 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 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 |
Definition at line 1282 of file utils.c.
Referenced by config_props(), doTest(), init_opts(), main(), and write_video_frame().
Definition at line 1457 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 | ||
) |
Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality.
Definition at line 1393 of file utils.c.
Referenced by sws_getDefaultFilter().
Allocate and return a vector with just one coefficient, with value 1.0.
Definition at line 1428 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 1510 of file utils.c.
Referenced by sws_shiftVec().
av_cold int sws_init_context | ( | struct SwsContext * | sws_context, |
SwsFilter * | srcFilter, | ||
SwsFilter * | dstFilter | ||
) |
Initialize the swscaler context sws_context.
Definition at line 855 of file utils.c.
Referenced by sws_getCachedContext(), and sws_getContext().
int sws_isSupportedInput | ( | enum AVPixelFormat | pix_fmt) |
int sws_isSupportedOutput | ( | enum AVPixelFormat | pix_fmt) |
Scale all the coefficients of a so that their sum equals height.
Definition at line 1452 of file utils.c.
Referenced by sws_getDefaultFilter(), and sws_getGaussianVec().
Print with av_log() a textual representation of the vector a if log_level <= av_log_level.
Definition at line 1577 of file utils.c.
Referenced by sws_getDefaultFilter().
Scale all the coefficients of a by the scalar value.
Definition at line 1444 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] |
Definition at line 775 of file utils.c.
Referenced by sws_getCachedContext(), and sws_getContext().
Definition at line 1527 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 1475 of file utils.c.
Referenced by sws_addVec().
const char* swscale_configuration | ( | void | ) |
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_getCachedContext(), sws_getCoefficients(), and sws_getContext().
|
static |