libswscale/swscale.h File Reference

external api for the swscale stuff More...

#include "libavutil/avutil.h"

Go to the source code of this file.

Data Structures

struct  SwsVector
struct  SwsFilter

Defines

#define LIBSWSCALE_VERSION_MAJOR   0
#define LIBSWSCALE_VERSION_MINOR   14
#define LIBSWSCALE_VERSION_MICRO   1
#define LIBSWSCALE_VERSION_INT
#define LIBSWSCALE_VERSION
#define LIBSWSCALE_BUILD   LIBSWSCALE_VERSION_INT
#define LIBSWSCALE_IDENT   "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
#define FF_API_SWS_GETCONTEXT   (LIBSWSCALE_VERSION_MAJOR < 3)
 Those FF_API_* defines are not part of public API.
#define FF_API_SWS_CPU_CAPS   (LIBSWSCALE_VERSION_MAJOR < 3)
#define FF_API_SWS_FORMAT_NAME   (LIBSWSCALE_VERSION_MAJOR < 3)
#define SWS_FAST_BILINEAR   1
#define SWS_BILINEAR   2
#define SWS_BICUBIC   4
#define SWS_X   8
#define SWS_POINT   0x10
#define SWS_AREA   0x20
#define SWS_BICUBLIN   0x40
#define SWS_GAUSS   0x80
#define SWS_SINC   0x100
#define SWS_LANCZOS   0x200
#define SWS_SPLINE   0x400
#define SWS_SRC_V_CHR_DROP_MASK   0x30000
#define SWS_SRC_V_CHR_DROP_SHIFT   16
#define SWS_PARAM_DEFAULT   123456
#define SWS_PRINT_INFO   0x1000
#define SWS_FULL_CHR_H_INT   0x2000
#define SWS_FULL_CHR_H_INP   0x4000
#define SWS_DIRECT_BGR   0x8000
#define SWS_ACCURATE_RND   0x40000
#define SWS_BITEXACT   0x80000
#define SWS_CPU_CAPS_MMX   0x80000000
 CPU caps are autodetected now, those flags are only provided for API compatibility.
#define SWS_CPU_CAPS_MMX2   0x20000000
#define SWS_CPU_CAPS_3DNOW   0x40000000
#define SWS_CPU_CAPS_ALTIVEC   0x10000000
#define SWS_CPU_CAPS_BFIN   0x01000000
#define SWS_CPU_CAPS_SSE2   0x02000000
#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

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.
const int * sws_getCoefficients (int colorspace)
 Returns a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().
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.
struct SwsContextsws_alloc_context (void)
 Allocates an empty SwsContext.
int sws_init_context (struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter)
 Initializes the swscaler context sws_context.
void sws_freeContext (struct SwsContext *swsContext)
 Frees the swscaler context swsContext.
struct 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.
int sws_scale (struct SwsContext *context, const uint8_t *const srcSlice[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 Scales the image slice in srcSlice and puts the resulting scaled slice in the image in dst.
int sws_scale_ordered (struct SwsContext *context, const uint8_t *const src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) attribute_deprecated
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)
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, lower is lower 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.
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.
void sws_convVec (SwsVector *a, SwsVector *b)
void sws_addVec (SwsVector *a, SwsVector *b)
void sws_subVec (SwsVector *a, SwsVector *b)
void sws_shiftVec (SwsVector *a, int shift)
SwsVectorsws_cloneVec (SwsVector *a)
 Allocates and returns a clone of the vector a, that is a vector with the same coefficients as a.
attribute_deprecated void sws_printVec (SwsVector *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_freeVec (SwsVector *a)
SwsFiltersws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose)
void sws_freeFilter (SwsFilter *filter)
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.
void sws_convertPalette8ToPacked32 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette)
 Converts an 8bit paletted frame into a frame with a color depth of 32-bits.
void sws_convertPalette8ToPacked24 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette)
 Converts an 8bit paletted frame into a frame with a color depth of 24 bits.


Detailed Description

external api for the swscale stuff

Definition in file swscale.h.


Define Documentation

#define FF_API_SWS_CPU_CAPS   (LIBSWSCALE_VERSION_MAJOR < 3)

Definition at line 54 of file swscale.h.

#define FF_API_SWS_FORMAT_NAME   (LIBSWSCALE_VERSION_MAJOR < 3)

Definition at line 57 of file swscale.h.

#define FF_API_SWS_GETCONTEXT   (LIBSWSCALE_VERSION_MAJOR < 3)

Those FF_API_* defines are not part of public API.

They may change, break or disappear at any time.

Definition at line 51 of file swscale.h.

#define LIBSWSCALE_BUILD   LIBSWSCALE_VERSION_INT

Definition at line 42 of file swscale.h.

#define LIBSWSCALE_IDENT   "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)

Definition at line 44 of file swscale.h.

#define LIBSWSCALE_VERSION

#define LIBSWSCALE_VERSION_INT

#define LIBSWSCALE_VERSION_MAJOR   0

Definition at line 32 of file swscale.h.

#define LIBSWSCALE_VERSION_MICRO   1

Definition at line 34 of file swscale.h.

#define LIBSWSCALE_VERSION_MINOR   14

Definition at line 33 of file swscale.h.

#define SWS_ACCURATE_RND   0x40000

#define SWS_AREA   0x20

Definition at line 81 of file swscale.h.

Referenced by initFilter(), selfTest(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_BICUBIC   4

#define SWS_BICUBLIN   0x40

Definition at line 82 of file swscale.h.

Referenced by sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_BILINEAR   2

#define SWS_BITEXACT   0x80000

#define SWS_CPU_CAPS_3DNOW   0x40000000

Definition at line 111 of file swscale.h.

#define SWS_CPU_CAPS_ALTIVEC   0x10000000

Definition at line 112 of file swscale.h.

#define SWS_CPU_CAPS_BFIN   0x01000000

Definition at line 113 of file swscale.h.

#define SWS_CPU_CAPS_MMX   0x80000000

CPU caps are autodetected now, those flags are only provided for API compatibility.

Definition at line 109 of file swscale.h.

#define SWS_CPU_CAPS_MMX2   0x20000000

Definition at line 110 of file swscale.h.

#define SWS_CPU_CAPS_SSE2   0x02000000

Definition at line 114 of file swscale.h.

#define SWS_CS_DEFAULT   5

Definition at line 125 of file swscale.h.

Referenced by sws_getCachedContext(), sws_getCoefficients(), and sws_getContext().

#define SWS_CS_FCC   4

Definition at line 120 of file swscale.h.

#define SWS_CS_ITU601   5

Definition at line 121 of file swscale.h.

#define SWS_CS_ITU624   5

Definition at line 122 of file swscale.h.

#define SWS_CS_ITU709   1

Definition at line 119 of file swscale.h.

#define SWS_CS_SMPTE170M   5

Definition at line 123 of file swscale.h.

#define SWS_CS_SMPTE240M   7

Definition at line 124 of file swscale.h.

#define SWS_DIRECT_BGR   0x8000

Definition at line 100 of file swscale.h.

#define SWS_FAST_BILINEAR   1

#define SWS_FULL_CHR_H_INP   0x4000

Definition at line 99 of file swscale.h.

Referenced by sws_init_context().

#define SWS_FULL_CHR_H_INT   0x2000

#define SWS_GAUSS   0x80

Definition at line 83 of file swscale.h.

Referenced by initFilter(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_LANCZOS   0x200

Definition at line 85 of file swscale.h.

Referenced by initFilter(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_MAX_REDUCE_CUTOFF   0.002

Definition at line 117 of file swscale.h.

Referenced by initFilter().

#define SWS_PARAM_DEFAULT   123456

Definition at line 91 of file swscale.h.

Referenced by initFilter(), and sws_getCachedContext().

#define SWS_POINT   0x10

#define SWS_PRINT_INFO   0x1000

#define SWS_SINC   0x100

Definition at line 84 of file swscale.h.

Referenced by initFilter(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_SPLINE   0x400

Definition at line 86 of file swscale.h.

Referenced by initFilter(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().

#define SWS_SRC_V_CHR_DROP_MASK   0x30000

Definition at line 88 of file swscale.h.

Referenced by sws_init_context().

#define SWS_SRC_V_CHR_DROP_SHIFT   16

Definition at line 89 of file swscale.h.

Referenced by sws_init_context().

#define SWS_X   8

Definition at line 79 of file swscale.h.

Referenced by initFilter(), selfTest(), sws_getFlagsAndFilterFromCmdLine(), and sws_init_context().


Function Documentation

void sws_addVec ( SwsVector a,
SwsVector b 
)

Definition at line 1409 of file utils.c.

Referenced by sws_getDefaultFilter().

struct SwsContext* sws_alloc_context ( void   )  [read]

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

Referenced by sws_getCachedContext(), and sws_getContext().

SwsVector* sws_allocVec ( int  length  ) 

Allocates and returns an uninitialized vector with length coefficients.

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

void sws_convertPalette8ToPacked24 ( const uint8_t *  src,
uint8_t *  dst,
long  num_pixels,
const uint8_t *  palette 
)

Converts an 8bit 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

Definition at line 838 of file swscale_unscaled.c.

Referenced by palette8topacked24(), palToRgbWrapper(), and put_image().

void sws_convertPalette8ToPacked32 ( const uint8_t *  src,
uint8_t *  dst,
long  num_pixels,
const uint8_t *  palette 
)

Converts an 8bit 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

Definition at line 829 of file swscale_unscaled.c.

Referenced by palette8topacked32(), palToRgbWrapper(), and put_image().

void sws_convVec ( SwsVector a,
SwsVector b 
)

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

Referenced by config_props(), do_video_out(), doTest(), freeBuffers(), main(), stream_close(), sws_getCachedContext(), sws_getContext(), uninit(), and uninit_opts().

void sws_freeFilter ( SwsFilter filter  ) 

Definition at line 1487 of file utils.c.

void sws_freeVec ( SwsVector a  ) 

Definition at line 1479 of file utils.c.

Referenced by allocStuff(), 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 1557 of file utils.c.

Referenced by queue_picture().

const int* sws_getCoefficients ( int  colorspace  ) 

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

Definition at line 55 of file yuv2rgb.c.

int sws_getColorspaceDetails ( struct 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 735 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 1292 of file utils.c.

Referenced by sws_diffVec(), sws_getConvVec(), sws_getIdentityVec(), sws_getShiftedVec(), and sws_sumVec().

struct 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
Note:
this function is to be removed after a saner alternative is written
Deprecated:
Use sws_getCachedContext() instead.

Definition at line 1166 of file utils.c.

Referenced by allocStuff(), config_props(), do_video_out(), doTest(), init_opts(), main(), sws_getContextFromCmdLine(), and write_video_frame().

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

Definition at line 1200 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, lower is lower quality.

Definition at line 1272 of file utils.c.

Referenced by allocStuff(), and sws_getDefaultFilter().

SwsVector* sws_getIdentityVec ( void   ) 

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

Definition at line 1306 of file utils.c.

Referenced by sws_getDefaultFilter().

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

Initializes the swscaler context sws_context.

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

Definition at line 771 of file utils.c.

Referenced by sws_getCachedContext(), and sws_getContext().

int sws_isSupportedInput ( enum PixelFormat  pix_fmt  ) 

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

Definition at line 134 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 187 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 1330 of file utils.c.

Referenced by sws_getDefaultFilter(), and sws_getGaussianVec().

attribute_deprecated void sws_printVec ( SwsVector a  ) 

Deprecated:
Use sws_printVec2() instead.

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

Referenced by sws_getDefaultFilter(), and sws_printVec().

int sws_scale ( SwsContext c,
const uint8_t *const   src[],
const int  srcStride[],
int  srcSliceY,
int  srcSliceH,
uint8_t *const   dst[],
const int  dstStride[] 
)

Scales the image slice in srcSlice and puts the resulting scaled slice in the image in dst.

A slice is a sequence of consecutive rows in an image.

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:
context 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
Scales the image slice in srcSlice and puts the resulting scaled slice in the image in dst.

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

Definition at line 689 of file swscale_unscaled.c.

Referenced by blur(), do_video_out(), doTest(), draw_slice(), main(), queue_picture(), scale_image(), scale_slice(), sws_scale_ordered(), and write_video_frame().

int sws_scale_ordered ( struct SwsContext context,
const uint8_t *const   src[],
int  srcStride[],
int  srcSliceY,
int  srcSliceH,
uint8_t *  dst[],
int  dstStride[] 
)

Deprecated:
Use sws_scale() instead.

Definition at line 821 of file swscale_unscaled.c.

void sws_scaleVec ( SwsVector a,
double  scalar 
)

Scales all the coefficients of a by the scalar value.

Definition at line 1322 of file utils.c.

Referenced by allocStuff(), 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 
)

Parameters:
inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
Returns:
-1 if not supported

Definition at line 712 of file utils.c.

Referenced by sws_getCachedContext(), and sws_getContext().

void sws_shiftVec ( SwsVector a,
int  shift 
)

Definition at line 1400 of file utils.c.

Referenced by sws_getDefaultFilter().

void sws_subVec ( SwsVector a,
SwsVector b 
)

Definition at line 1418 of file utils.c.

const char* swscale_configuration ( void   ) 

Returns the libswscale build-time configuration.

Definition at line 56 of file utils.c.

const char* swscale_license ( void   ) 

Returns the libswscale license.

Definition at line 61 of file utils.c.

unsigned swscale_version ( void   ) 

Returns the LIBSWSCALE_VERSION_INT constant.

Definition at line 51 of file utils.c.


Generated on Fri Oct 26 02:38:22 2012 for FFmpeg by  doxygen 1.5.8