libswscale/utils.c File Reference

#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 _DARWIN_C_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)
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)
static int update_flags_cpu (int flags)
SwsContextsws_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.
SwsFiltersws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose)
SwsVectorsws_allocVec (int length)
 Allocates and returns an uninitialized vector with length coefficients.
SwsVectorsws_getGaussianVec (double variance, double quality)
 returns a normalized gaussian curve used to filter stuff quality=3 is high quality, lowwer is lowwer quality
SwsVectorsws_getConstVec (double c, int length)
 Allocates and returns a vector with length coefficients, all with the same value c.
SwsVectorsws_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 SwsVectorsws_getConvVec (SwsVector *a, SwsVector *b)
static SwsVectorsws_sumVec (SwsVector *a, SwsVector *b)
static SwsVectorsws_diffVec (SwsVector *a, SwsVector *b)
static SwsVectorsws_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)
SwsVectorsws_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 SwsContextsws_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 Documentation

#define _DARWIN_C_SOURCE

Definition at line 22 of file utils.c.

#define _SVID_SOURCE

Definition at line 21 of file utils.c.

#define isSupportedIn (  ) 

Definition at line 66 of file utils.c.

#define isSupportedOut (  ) 

Value:

(       \
           (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 118 of file utils.c.

#define LICENSE_PREFIX   "libswscale license: "

#define RET   0xC3

Definition at line 64 of file utils.c.


Function Documentation

static double getSplineCoeff ( double  a,
double  b,
double  c,
double  d,
double  dist 
) [static]

Definition at line 161 of file utils.c.

static void getSubSampleFactors ( int *  h,
int *  v,
enum PixelFormat  format 
) [static]

Definition at line 669 of file utils.c.

static int handle_jpeg ( enum PixelFormat format  )  [static]

Definition at line 712 of file utils.c.

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 172 of file utils.c.

void sws_addVec ( SwsVector a,
SwsVector b 
)

Definition at line 1362 of file utils.c.

SwsVector* sws_allocVec ( int  length  ) 

Allocates and returns an uninitialized vector with length coefficients.

Definition at line 1213 of file utils.c.

Referenced by sws_cloneVec(), sws_getConstVec(), and sws_getGaussianVec().

SwsVector* sws_cloneVec ( SwsVector a  ) 

Allocates and returns a clone of the vector a, that is a vector with the same coefficients as a.

Definition at line 1389 of file utils.c.

void sws_convVec ( SwsVector a,
SwsVector b 
)

Definition at line 1380 of file utils.c.

static double sws_dcVec ( SwsVector a  )  [static]

Definition at line 1264 of file utils.c.

static SwsVector* sws_diffVec ( SwsVector a,
SwsVector b 
) [static]

Definition at line 1321 of file utils.c.

const char* sws_format_name ( enum PixelFormat  format  ) 

Definition at line 153 of file utils.c.

void sws_freeContext ( struct SwsContext swsContext  ) 

Frees the swscaler context swsContext.

If swsContext is NULL, then does nothing.

Definition at line 1451 of file utils.c.

void sws_freeFilter ( SwsFilter filter  ) 

Definition at line 1440 of file utils.c.

void sws_freeVec ( SwsVector a  ) 

Definition at line 1432 of file utils.c.

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 1508 of file utils.c.

int sws_getColorspaceDetails ( SwsContext c,
int **  inv_table,
int *  srcRange,
int **  table,
int *  dstRange,
int *  brightness,
int *  contrast,
int *  saturation 
)

Returns:
-1 if not supported

Definition at line 697 of file utils.c.

SwsVector* sws_getConstVec ( double  c,
int  length 
)

Allocates and returns a vector with length coefficients, all with the same value c.

Definition at line 1245 of file utils.c.

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

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
Returns:
a pointer to an allocated context, or NULL in case of error

Definition at line 732 of file utils.c.

static SwsVector* sws_getConvVec ( SwsVector a,
SwsVector b 
) [static]

Definition at line 1288 of file utils.c.

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

Definition at line 1153 of file utils.c.

SwsVector* sws_getGaussianVec ( double  variance,
double  quality 
)

returns a normalized gaussian curve used to filter stuff quality=3 is high quality, lowwer is lowwer quality

Returns a normalized Gaussian curve used to filter stuff quality=3 is high quality, lower is lower quality.

Definition at line 1225 of file utils.c.

SwsVector* sws_getIdentityVec ( void   ) 

Allocates and returns a vector with just one coefficient, with value 1.0.

Definition at line 1259 of file utils.c.

static SwsVector* sws_getShiftedVec ( SwsVector a,
int  shift 
) [static]

Definition at line 1337 of file utils.c.

int sws_isSupportedInput ( enum PixelFormat  pix_fmt  ) 

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

Definition at line 113 of file utils.c.

int sws_isSupportedOutput ( enum PixelFormat  pix_fmt  ) 

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

Definition at line 146 of file utils.c.

void sws_normalizeVec ( SwsVector a,
double  height 
)

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

Definition at line 1283 of file utils.c.

void sws_printVec ( SwsVector a  ) 

Deprecated:
Use sws_printVec2() instead.

Definition at line 1426 of file utils.c.

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.

Definition at line 1402 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 1275 of file utils.c.

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:
inv_table the yuv2rgb coeffs, normally Inverse_Table_6_9[x]
fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
Returns:
-1 if not supported

Definition at line 675 of file utils.c.

void sws_shiftVec ( SwsVector a,
int  shift 
)

Definition at line 1353 of file utils.c.

void sws_subVec ( SwsVector a,
SwsVector b 
)

Definition at line 1371 of file utils.c.

static SwsVector* sws_sumVec ( SwsVector a,
SwsVector b 
) [static]

Definition at line 1306 of file utils.c.

const char* swscale_configuration ( void   ) 

Returns the libswscale build-time configuration.

Definition at line 53 of file utils.c.

const char* swscale_license ( void   ) 

Returns the libswscale license.

Definition at line 58 of file utils.c.

unsigned swscale_version ( void   ) 

Returns the LIBSWSCALE_VERSION_INT constant.

Definition at line 48 of file utils.c.

static int update_flags_cpu ( int  flags  )  [static]

Definition at line 723 of file utils.c.

Referenced by sws_getCachedContext(), and sws_getContext().


Variable Documentation

const int32_t ff_yuv2rgb_coeffs[8][4]

Definition at line 43 of file yuv2rgb.c.

Referenced by sws_getCoefficients(), and sws_getContext().


Generated on Wed Sep 8 03:10:36 2010 for FFmpeg by  doxygen 1.5.6