FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
SwsContext Struct Reference

#include <swscale_internal.h>

Data Fields

const AVClassav_class
 info on struct for av_log More...
 
SwsFunc swscale
 Note that src, dst, srcStride, dstStride will be copied in the sws_scale() wrapper so they can be freely modified here. More...
 
int srcW
 Width of source luma/alpha planes. More...
 
int srcH
 Height of source luma/alpha planes. More...
 
int dstH
 Height of destination luma/alpha planes. More...
 
int chrSrcW
 Width of source chroma planes. More...
 
int chrSrcH
 Height of source chroma planes. More...
 
int chrDstW
 Width of destination chroma planes. More...
 
int chrDstH
 Height of destination chroma planes. More...
 
int lumXInc
 
int chrXInc
 
int lumYInc
 
int chrYInc
 
enum AVPixelFormat dstFormat
 Destination pixel format. More...
 
enum AVPixelFormat srcFormat
 Source pixel format. More...
 
int dstFormatBpp
 Number of bits per pixel of the destination pixel format. More...
 
int srcFormatBpp
 Number of bits per pixel of the source pixel format. More...
 
int dstBpc
 
int srcBpc
 
int chrSrcHSubSample
 Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in source image. More...
 
int chrSrcVSubSample
 Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in source image. More...
 
int chrDstHSubSample
 Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in destination image. More...
 
int chrDstVSubSample
 Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in destination image. More...
 
int vChrDrop
 Binary logarithm of extra vertical subsampling factor in source image chroma planes specified by user. More...
 
int sliceDir
 Direction that slices are fed to the scaler (1 = top-to-bottom, -1 = bottom-to-top). More...
 
double param [2]
 Input parameters for scaling algorithms that need them. More...
 
struct SwsContextcascaded_context [3]
 
int cascaded_tmpStride [4]
 
uint8_tcascaded_tmp [4]
 
int cascaded1_tmpStride [4]
 
uint8_tcascaded1_tmp [4]
 
double gamma_value
 
int gamma_flag
 
int is_internal_gamma
 
uint16_t * gamma
 
uint16_t * inv_gamma
 
int numDesc
 
int descIndex [2]
 
int numSlice
 
struct SwsSliceslice
 
struct SwsFilterDescriptordesc
 
uint32_t pal_yuv [256]
 
uint32_t pal_rgb [256]
 
uint8_tformatConvBuffer
 
int lumMmxextFilterCodeSize
 Runtime-generated MMXEXT horizontal fast bilinear scaler code size for luma/alpha planes. More...
 
int chrMmxextFilterCodeSize
 Runtime-generated MMXEXT horizontal fast bilinear scaler code size for chroma planes. More...
 
uint8_tlumMmxextFilterCode
 Runtime-generated MMXEXT horizontal fast bilinear scaler code for luma/alpha planes. More...
 
uint8_tchrMmxextFilterCode
 Runtime-generated MMXEXT horizontal fast bilinear scaler code for chroma planes. More...
 
int canMMXEXTBeUsed
 
int dstY
 Last destination vertical line output from last slice. More...
 
int flags
 Flags passed by the user to select scaler algorithm, optimizations, subsampling, etc... More...
 
voidyuvTable
 
int table_gV [256+2 *YUVRGB_TABLE_HEADROOM]
 
uint8_ttable_rV [256+2 *YUVRGB_TABLE_HEADROOM]
 
uint8_ttable_gU [256+2 *YUVRGB_TABLE_HEADROOM]
 
uint8_ttable_bU [256+2 *YUVRGB_TABLE_HEADROOM]
 
int32_t input_rgb2yuv_table [16+40 *4]
 
int * dither_error [4]
 
int contrast
 
int brightness
 
int saturation
 
int srcColorspaceTable [4]
 
int dstColorspaceTable [4]
 
int srcRange
 0 = MPG YUV range, 1 = JPG YUV range (source image). More...
 
int dstRange
 0 = MPG YUV range, 1 = JPG YUV range (destination image). More...
 
int src0Alpha
 
int dst0Alpha
 
int srcXYZ
 
int dstXYZ
 
int src_h_chr_pos
 
int dst_h_chr_pos
 
int src_v_chr_pos
 
int dst_v_chr_pos
 
int yuv2rgb_y_offset
 
int yuv2rgb_y_coeff
 
int yuv2rgb_v2r_coeff
 
int yuv2rgb_v2g_coeff
 
int yuv2rgb_u2g_coeff
 
int yuv2rgb_u2b_coeff
 
uint64_t redDither
 
uint64_t greenDither
 
uint64_t blueDither
 
uint64_t yCoeff
 
uint64_t vrCoeff
 
uint64_t ubCoeff
 
uint64_t vgCoeff
 
uint64_t ugCoeff
 
uint64_t yOffset
 
uint64_t uOffset
 
uint64_t vOffset
 
int32_t lumMmxFilter [4 *MAX_FILTER_SIZE]
 
int32_t chrMmxFilter [4 *MAX_FILTER_SIZE]
 
int dstW
 Width of destination luma/alpha planes. More...
 
uint64_t esp
 
uint64_t vRounder
 
uint64_t u_temp
 
uint64_t v_temp
 
uint64_t y_temp
 
int32_t alpMmxFilter [4 *MAX_FILTER_SIZE]
 
ptrdiff_t uv_off
 offset (in pixels) between u and v planes More...
 
ptrdiff_t uv_offx2
 offset (in bytes) between u and v planes More...
 
uint16_t dither16 [8]
 
uint32_t dither32 [8]
 
const uint8_tchrDither8
 
const uint8_tlumDither8
 
int use_mmx_vfilter
 
int16_t * xyzgamma
 
int16_t * rgbgamma
 
int16_t * xyzgammainv
 
int16_t * rgbgammainv
 
int16_t xyz2rgb_matrix [3][4]
 
int16_t rgb2xyz_matrix [3][4]
 
yuv2planar1_fn yuv2plane1
 
yuv2planarX_fn yuv2planeX
 
yuv2interleavedX_fn yuv2nv12cX
 
yuv2packed1_fn yuv2packed1
 
yuv2packed2_fn yuv2packed2
 
yuv2packedX_fn yuv2packedX
 
yuv2anyX_fn yuv2anyX
 
void(* lumToYV12 )(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
 Unscaled conversion of luma plane to YV12 for horizontal scaler. More...
 
void(* alpToYV12 )(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
 Unscaled conversion of alpha plane to YV12 for horizontal scaler. More...
 
void(* chrToYV12 )(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
 Unscaled conversion of chroma planes to YV12 for horizontal scaler. More...
 
void(* lumConvertRange )(int16_t *dst, int width)
 Color range conversion function for luma plane if needed. More...
 
void(* chrConvertRange )(int16_t *dst1, int16_t *dst2, int width)
 Color range conversion function for chroma planes if needed. More...
 
int needs_hcscale
 Set if there are chroma planes to be converted. More...
 
SwsDither dither
 
SwsAlphaBlend alphablend
 
Scaled horizontal lines ring buffer.

The horizontal scaler keeps just enough scaled lines in a ring buffer so they may be passed to the vertical scaler.

The pointers to the allocated buffers for each line are duplicated in sequence in the ring buffer to simplify indexing and avoid wrapping around between lines inside the vertical scaler code. The wrapping is done before the vertical scaler is called.

int16_t ** lumPixBuf
 Ring buffer for scaled horizontal luma plane lines to be fed to the vertical scaler. More...
 
int16_t ** chrUPixBuf
 Ring buffer for scaled horizontal chroma plane lines to be fed to the vertical scaler. More...
 
int16_t ** chrVPixBuf
 Ring buffer for scaled horizontal chroma plane lines to be fed to the vertical scaler. More...
 
int16_t ** alpPixBuf
 Ring buffer for scaled horizontal alpha plane lines to be fed to the vertical scaler. More...
 
int vLumBufSize
 Number of vertical luma/alpha lines allocated in the ring buffer. More...
 
int vChrBufSize
 Number of vertical chroma lines allocated in the ring buffer. More...
 
int lastInLumBuf
 Last scaled horizontal luma/alpha line from source in the ring buffer. More...
 
int lastInChrBuf
 Last scaled horizontal chroma line from source in the ring buffer. More...
 
int lumBufIndex
 Index in ring buffer of the last scaled horizontal luma/alpha line from source. More...
 
int chrBufIndex
 Index in ring buffer of the last scaled horizontal chroma line from source. More...
 
Horizontal and vertical filters.

To better understand the following fields, here is a pseudo-code of their usage in filtering a horizontal line:

for (i = 0; i < width; i++) {
dst[i] = 0;
for (j = 0; j < filterSize; j++)
dst[i] += src[ filterPos[i] + j ] * filter[ filterSize * i + j ];
dst[i] >>= FRAC_BITS; // The actual implementation is fixed-point.
}
int16_t * hLumFilter
 Array of horizontal filter coefficients for luma/alpha planes. More...
 
int16_t * hChrFilter
 Array of horizontal filter coefficients for chroma planes. More...
 
int16_t * vLumFilter
 Array of vertical filter coefficients for luma/alpha planes. More...
 
int16_t * vChrFilter
 Array of vertical filter coefficients for chroma planes. More...
 
int32_thLumFilterPos
 Array of horizontal filter starting positions for each dst[i] for luma/alpha planes. More...
 
int32_thChrFilterPos
 Array of horizontal filter starting positions for each dst[i] for chroma planes. More...
 
int32_tvLumFilterPos
 Array of vertical filter starting positions for each dst[i] for luma/alpha planes. More...
 
int32_tvChrFilterPos
 Array of vertical filter starting positions for each dst[i] for chroma planes. More...
 
int hLumFilterSize
 Horizontal filter size for luma/alpha pixels. More...
 
int hChrFilterSize
 Horizontal filter size for chroma pixels. More...
 
int vLumFilterSize
 Vertical filter size for luma/alpha pixels. More...
 
int vChrFilterSize
 Vertical filter size for chroma pixels. More...
 
void(* readLumPlanar )(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)
 Functions to read planar input, such as planar RGB, and convert internally to Y/UV/A. More...
 
void(* readChrPlanar )(uint8_t *dstU, uint8_t *dstV, const uint8_t *src[4], int width, int32_t *rgb2yuv)
 
void(* readAlpPlanar )(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)
 
void(* hyscale_fast )(struct SwsContext *c, int16_t *dst, int dstWidth, const uint8_t *src, int srcW, int xInc)
 Scale one horizontal line of input data using a bilinear filter to produce one line of output data. More...
 
void(* hcscale_fast )(struct SwsContext *c, int16_t *dst1, int16_t *dst2, int dstWidth, const uint8_t *src1, const uint8_t *src2, int srcW, int xInc)
 
void(* hyScale )(struct SwsContext *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
 Scale one horizontal line of input data using a filter over the input lines, to produce one (differently sized) line of output data. More...
 
void(* hcScale )(struct SwsContext *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
 

Detailed Description

Examples:
muxing.c, and scaling_video.c.

Definition at line 283 of file swscale_internal.h.

Field Documentation

const AVClass* SwsContext::av_class

info on struct for av_log

Definition at line 287 of file swscale_internal.h.

Referenced by sws_alloc_context().

SwsFunc SwsContext::swscale

Note that src, dst, srcStride, dstStride will be copied in the sws_scale() wrapper so they can be freely modified here.

Definition at line 293 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_get_unscaled_swscale_ppc(), get_unscaled_swscale_neon(), sws_init_context(), and sws_scale().

int SwsContext::srcW
int SwsContext::srcH
int SwsContext::dstH
int SwsContext::chrSrcW

Width of source chroma planes.

Definition at line 297 of file swscale_internal.h.

Referenced by ff_sws_alphablendaway(), sws_init_context(), swscale(), and yvu9ToYv12Wrapper().

int SwsContext::chrSrcH

Height of source chroma planes.

Definition at line 298 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_init_context(), and swscale().

int SwsContext::chrDstW

Width of destination chroma planes.

Definition at line 299 of file swscale_internal.h.

Referenced by sws_init_context(), and swscale().

int SwsContext::chrDstH

Height of destination chroma planes.

Definition at line 300 of file swscale_internal.h.

Referenced by ff_init_filters(), and sws_init_context().

int SwsContext::lumXInc

Definition at line 301 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_init_context(), and swscale().

int SwsContext::chrXInc

Definition at line 301 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_init_context(), and swscale().

int SwsContext::lumYInc

Definition at line 302 of file swscale_internal.h.

Referenced by sws_init_context().

int SwsContext::chrYInc

Definition at line 302 of file swscale_internal.h.

Referenced by sws_init_context().

enum AVPixelFormat SwsContext::dstFormat
enum AVPixelFormat SwsContext::srcFormat
int SwsContext::dstFormatBpp

Number of bits per pixel of the destination pixel format.

Definition at line 305 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_yuv2rgb_c_init_tables(), findRgbConvFn(), rgbToRgbWrapper(), sws_init_context(), and sws_setColorspaceDetails().

int SwsContext::srcFormatBpp

Number of bits per pixel of the source pixel format.

Definition at line 306 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), findRgbConvFn(), rgbToRgbWrapper(), sws_init_context(), and sws_setColorspaceDetails().

int SwsContext::dstBpc
int SwsContext::srcBpc
int SwsContext::chrSrcHSubSample

Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in source image.

Definition at line 308 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_init_filters(), and sws_init_context().

int SwsContext::chrSrcVSubSample

Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in source image.

Definition at line 309 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_init_filters(), sws_init_context(), sws_scale(), and swscale().

int SwsContext::chrDstHSubSample

Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in destination image.

Definition at line 310 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_init_filters(), planarCopyWrapper(), and sws_init_context().

int SwsContext::chrDstVSubSample

Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in destination image.

Definition at line 311 of file swscale_internal.h.

Referenced by ff_get_unscaled_swscale(), ff_init_filters(), packed_16bpc_bswap(), planarCopyWrapper(), sws_init_context(), sws_scale(), and swscale().

int SwsContext::vChrDrop

Binary logarithm of extra vertical subsampling factor in source image chroma planes specified by user.

Definition at line 312 of file swscale_internal.h.

Referenced by sws_init_context(), and swscale().

int SwsContext::sliceDir

Direction that slices are fed to the scaler (1 = top-to-bottom, -1 = bottom-to-top).

Definition at line 313 of file swscale_internal.h.

Referenced by sws_scale().

double SwsContext::param[2]

Input parameters for scaling algorithms that need them.

Definition at line 314 of file swscale_internal.h.

Referenced by sws_alloc_set_opts(), sws_getCachedContext(), sws_init_context(), and sws_setColorspaceDetails().

struct SwsContext* SwsContext::cascaded_context[3]
int SwsContext::cascaded_tmpStride[4]

Definition at line 321 of file swscale_internal.h.

Referenced by sws_init_context(), sws_scale(), and sws_setColorspaceDetails().

uint8_t* SwsContext::cascaded_tmp[4]
int SwsContext::cascaded1_tmpStride[4]

Definition at line 323 of file swscale_internal.h.

Referenced by sws_init_context(), and sws_scale().

uint8_t* SwsContext::cascaded1_tmp[4]

Definition at line 324 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and sws_scale().

double SwsContext::gamma_value

Definition at line 326 of file swscale_internal.h.

Referenced by sws_init_context().

int SwsContext::gamma_flag

Definition at line 327 of file swscale_internal.h.

Referenced by sws_init_context(), and sws_scale().

int SwsContext::is_internal_gamma

Definition at line 328 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_init_vscale_pfn(), sws_init_context(), and swscale().

uint16_t* SwsContext::gamma

Definition at line 329 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

uint16_t* SwsContext::inv_gamma

Definition at line 330 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

int SwsContext::numDesc

Definition at line 332 of file swscale_internal.h.

Referenced by ff_free_filters(), ff_init_filters(), ff_init_vscale_pfn(), and swscale().

int SwsContext::descIndex[2]

Definition at line 333 of file swscale_internal.h.

Referenced by ff_init_filters(), and swscale().

int SwsContext::numSlice

Definition at line 334 of file swscale_internal.h.

Referenced by ff_free_filters(), ff_init_filters(), and swscale().

struct SwsSlice* SwsContext::slice

Definition at line 335 of file swscale_internal.h.

Referenced by ff_free_filters(), ff_init_filters(), and swscale().

struct SwsFilterDescriptor* SwsContext::desc
uint32_t SwsContext::pal_yuv[256]

Definition at line 338 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_scale(), and swscale().

uint32_t SwsContext::pal_rgb[256]

Definition at line 339 of file swscale_internal.h.

Referenced by palToRgbWrapper(), and sws_scale().

int16_t** SwsContext::lumPixBuf

Ring buffer for scaled horizontal luma plane lines to be fed to the vertical scaler.

Definition at line 351 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and swscale().

int16_t** SwsContext::chrUPixBuf

Ring buffer for scaled horizontal chroma plane lines to be fed to the vertical scaler.

Definition at line 352 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and swscale().

int16_t** SwsContext::chrVPixBuf

Ring buffer for scaled horizontal chroma plane lines to be fed to the vertical scaler.

Definition at line 353 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and swscale().

int16_t** SwsContext::alpPixBuf

Ring buffer for scaled horizontal alpha plane lines to be fed to the vertical scaler.

Definition at line 354 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_init_vscale(), ff_sws_init_output_funcs(), ff_sws_init_swscale_ppc(), ff_sws_init_swscale_x86(), sws_freeContext(), sws_init_context(), and swscale().

int SwsContext::vLumBufSize

Number of vertical luma/alpha lines allocated in the ring buffer.

Definition at line 355 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and swscale().

int SwsContext::vChrBufSize

Number of vertical chroma lines allocated in the ring buffer.

Definition at line 356 of file swscale_internal.h.

Referenced by sws_freeContext(), sws_init_context(), and swscale().

int SwsContext::lastInLumBuf

Last scaled horizontal luma/alpha line from source in the ring buffer.

Definition at line 357 of file swscale_internal.h.

Referenced by swscale().

int SwsContext::lastInChrBuf

Last scaled horizontal chroma line from source in the ring buffer.

Definition at line 358 of file swscale_internal.h.

Referenced by swscale().

int SwsContext::lumBufIndex

Index in ring buffer of the last scaled horizontal luma/alpha line from source.

Definition at line 359 of file swscale_internal.h.

Referenced by swscale().

int SwsContext::chrBufIndex

Index in ring buffer of the last scaled horizontal chroma line from source.

Definition at line 360 of file swscale_internal.h.

Referenced by swscale().

uint8_t* SwsContext::formatConvBuffer
int16_t* SwsContext::hLumFilter

Array of horizontal filter coefficients for luma/alpha planes.

Definition at line 379 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

int16_t* SwsContext::hChrFilter

Array of horizontal filter coefficients for chroma planes.

Definition at line 380 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

int16_t* SwsContext::vLumFilter

Array of vertical filter coefficients for luma/alpha planes.

Definition at line 381 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), sws_freeContext(), sws_init_context(), and swscale().

int16_t* SwsContext::vChrFilter

Array of vertical filter coefficients for chroma planes.

Definition at line 382 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), sws_freeContext(), sws_init_context(), and swscale().

int32_t* SwsContext::hLumFilterPos

Array of horizontal filter starting positions for each dst[i] for luma/alpha planes.

Definition at line 383 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

int32_t* SwsContext::hChrFilterPos

Array of horizontal filter starting positions for each dst[i] for chroma planes.

Definition at line 384 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_freeContext(), sws_init_context(), and swscale().

int32_t* SwsContext::vLumFilterPos

Array of vertical filter starting positions for each dst[i] for luma/alpha planes.

Definition at line 385 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), sws_freeContext(), sws_init_context(), and swscale().

int32_t* SwsContext::vChrFilterPos

Array of vertical filter starting positions for each dst[i] for chroma planes.

Definition at line 386 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), sws_freeContext(), sws_init_context(), and swscale().

int SwsContext::hLumFilterSize

Horizontal filter size for luma/alpha pixels.

Definition at line 387 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_sws_init_swscale_x86(), sws_init_context(), and swscale().

int SwsContext::hChrFilterSize

Horizontal filter size for chroma pixels.

Definition at line 388 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_sws_init_swscale_x86(), sws_init_context(), and swscale().

int SwsContext::vLumFilterSize

Vertical filter size for luma/alpha pixels.

Definition at line 389 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_init_vscale_pfn(), sws_init_context(), and swscale().

int SwsContext::vChrFilterSize

Vertical filter size for chroma pixels.

Definition at line 390 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_init_vscale_pfn(), sws_init_context(), and swscale().

int SwsContext::lumMmxextFilterCodeSize

Runtime-generated MMXEXT horizontal fast bilinear scaler code size for luma/alpha planes.

Definition at line 393 of file swscale_internal.h.

Referenced by sws_freeContext(), and sws_init_context().

int SwsContext::chrMmxextFilterCodeSize

Runtime-generated MMXEXT horizontal fast bilinear scaler code size for chroma planes.

Definition at line 394 of file swscale_internal.h.

Referenced by sws_freeContext(), and sws_init_context().

uint8_t* SwsContext::lumMmxextFilterCode

Runtime-generated MMXEXT horizontal fast bilinear scaler code for luma/alpha planes.

Definition at line 395 of file swscale_internal.h.

Referenced by sws_freeContext(), and sws_init_context().

uint8_t* SwsContext::chrMmxextFilterCode

Runtime-generated MMXEXT horizontal fast bilinear scaler code for chroma planes.

Definition at line 396 of file swscale_internal.h.

Referenced by sws_freeContext(), and sws_init_context().

int SwsContext::canMMXEXTBeUsed

Definition at line 398 of file swscale_internal.h.

Referenced by sws_init_context().

int SwsContext::dstY

Last destination vertical line output from last slice.

Definition at line 400 of file swscale_internal.h.

Referenced by sws_scale(), and swscale().

int SwsContext::flags
void* SwsContext::yuvTable

Definition at line 402 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables(), and sws_freeContext().

int SwsContext::table_gV[256+2 *YUVRGB_TABLE_HEADROOM]
uint8_t* SwsContext::table_rV[256+2 *YUVRGB_TABLE_HEADROOM]
uint8_t* SwsContext::table_gU[256+2 *YUVRGB_TABLE_HEADROOM]
uint8_t* SwsContext::table_bU[256+2 *YUVRGB_TABLE_HEADROOM]
int32_t SwsContext::input_rgb2yuv_table[16+40 *4]
int* SwsContext::dither_error[4]
int SwsContext::contrast
int SwsContext::brightness
int SwsContext::saturation
int SwsContext::srcColorspaceTable[4]

Definition at line 425 of file swscale_internal.h.

Referenced by sws_getColorspaceDetails(), and sws_setColorspaceDetails().

int SwsContext::dstColorspaceTable[4]

Definition at line 426 of file swscale_internal.h.

Referenced by sws_getColorspaceDetails(), and sws_setColorspaceDetails().

int SwsContext::srcRange

0 = MPG YUV range, 1 = JPG YUV range (source image).

Definition at line 427 of file swscale_internal.h.

Referenced by ff_sws_init_range_convert(), planarCopyWrapper(), sws_getColorspaceDetails(), sws_init_context(), and sws_setColorspaceDetails().

int SwsContext::dstRange

0 = MPG YUV range, 1 = JPG YUV range (destination image).

Definition at line 428 of file swscale_internal.h.

Referenced by ff_sws_init_range_convert(), sws_getColorspaceDetails(), sws_init_context(), and sws_setColorspaceDetails().

int SwsContext::src0Alpha

Definition at line 429 of file swscale_internal.h.

Referenced by handle_formats(), and sws_scale().

int SwsContext::dst0Alpha

Definition at line 430 of file swscale_internal.h.

Referenced by handle_formats(), and sws_scale().

int SwsContext::srcXYZ

Definition at line 431 of file swscale_internal.h.

Referenced by handle_formats(), and sws_scale().

int SwsContext::dstXYZ

Definition at line 432 of file swscale_internal.h.

Referenced by handle_formats(), and sws_scale().

int SwsContext::src_h_chr_pos

Definition at line 433 of file swscale_internal.h.

Referenced by sws_getCachedContext(), and sws_init_context().

int SwsContext::dst_h_chr_pos

Definition at line 434 of file swscale_internal.h.

Referenced by sws_getCachedContext(), and sws_init_context().

int SwsContext::src_v_chr_pos

Definition at line 435 of file swscale_internal.h.

Referenced by sws_getCachedContext(), and sws_init_context().

int SwsContext::dst_v_chr_pos

Definition at line 436 of file swscale_internal.h.

Referenced by sws_getCachedContext(), and sws_init_context().

int SwsContext::yuv2rgb_y_offset
int SwsContext::yuv2rgb_y_coeff
int SwsContext::yuv2rgb_v2r_coeff
int SwsContext::yuv2rgb_v2g_coeff
int SwsContext::yuv2rgb_u2g_coeff
int SwsContext::yuv2rgb_u2b_coeff
uint64_t SwsContext::redDither

Definition at line 470 of file swscale_internal.h.

uint64_t SwsContext::greenDither

Definition at line 471 of file swscale_internal.h.

uint64_t SwsContext::blueDither

Definition at line 472 of file swscale_internal.h.

uint64_t SwsContext::yCoeff

Definition at line 474 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::vrCoeff

Definition at line 475 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::ubCoeff

Definition at line 476 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::vgCoeff

Definition at line 477 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::ugCoeff

Definition at line 478 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::yOffset

Definition at line 479 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::uOffset

Definition at line 480 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

uint64_t SwsContext::vOffset

Definition at line 481 of file swscale_internal.h.

Referenced by ff_yuv2rgb_c_init_tables().

int32_t SwsContext::lumMmxFilter[4 *MAX_FILTER_SIZE]

Definition at line 482 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), packed_vscale(), and swscale().

int32_t SwsContext::chrMmxFilter[4 *MAX_FILTER_SIZE]

Definition at line 483 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), packed_vscale(), and swscale().

int SwsContext::dstW
uint64_t SwsContext::esp

Definition at line 485 of file swscale_internal.h.

uint64_t SwsContext::vRounder

Definition at line 486 of file swscale_internal.h.

Referenced by sws_init_context().

uint64_t SwsContext::u_temp

Definition at line 487 of file swscale_internal.h.

uint64_t SwsContext::v_temp

Definition at line 488 of file swscale_internal.h.

uint64_t SwsContext::y_temp

Definition at line 489 of file swscale_internal.h.

int32_t SwsContext::alpMmxFilter[4 *MAX_FILTER_SIZE]

Definition at line 490 of file swscale_internal.h.

Referenced by ff_init_vscale_pfn(), and swscale().

ptrdiff_t SwsContext::uv_off

offset (in pixels) between u and v planes

Definition at line 494 of file swscale_internal.h.

Referenced by sws_init_context().

ptrdiff_t SwsContext::uv_offx2

offset (in bytes) between u and v planes

Definition at line 495 of file swscale_internal.h.

Referenced by chr_planar_vscale(), sws_init_context(), and swscale().

uint16_t SwsContext::dither16[8]

Definition at line 496 of file swscale_internal.h.

uint32_t SwsContext::dither32[8]

Definition at line 497 of file swscale_internal.h.

const uint8_t* SwsContext::chrDither8

Definition at line 499 of file swscale_internal.h.

Referenced by chr_planar_vscale(), swscale(), and yuv2nv12cX_c().

const uint8_t * SwsContext::lumDither8

Definition at line 499 of file swscale_internal.h.

Referenced by lum_planar_vscale(), and swscale().

int SwsContext::use_mmx_vfilter

Definition at line 512 of file swscale_internal.h.

Referenced by ff_init_vscale(), ff_sws_init_swscale_x86(), and swscale().

int16_t* SwsContext::xyzgamma

Definition at line 517 of file swscale_internal.h.

Referenced by fill_xyztables(), and xyz12Torgb48().

int16_t* SwsContext::rgbgamma

Definition at line 518 of file swscale_internal.h.

Referenced by fill_xyztables(), and xyz12Torgb48().

int16_t* SwsContext::xyzgammainv

Definition at line 519 of file swscale_internal.h.

Referenced by fill_xyztables(), and rgb48Toxyz12().

int16_t* SwsContext::rgbgammainv

Definition at line 520 of file swscale_internal.h.

Referenced by fill_xyztables(), and rgb48Toxyz12().

int16_t SwsContext::xyz2rgb_matrix[3][4]

Definition at line 521 of file swscale_internal.h.

Referenced by fill_xyztables(), and xyz12Torgb48().

int16_t SwsContext::rgb2xyz_matrix[3][4]

Definition at line 522 of file swscale_internal.h.

Referenced by fill_xyztables(), and rgb48Toxyz12().

yuv2planar1_fn SwsContext::yuv2plane1
yuv2planarX_fn SwsContext::yuv2planeX
yuv2interleavedX_fn SwsContext::yuv2nv12cX

Definition at line 527 of file swscale_internal.h.

Referenced by chr_planar_vscale(), ff_init_vscale(), sws_init_swscale(), and swscale().

yuv2packed1_fn SwsContext::yuv2packed1
yuv2packed2_fn SwsContext::yuv2packed2
yuv2packedX_fn SwsContext::yuv2packedX
yuv2anyX_fn SwsContext::yuv2anyX

Definition at line 531 of file swscale_internal.h.

Referenced by ff_init_vscale(), sws_init_swscale(), and swscale().

void(* SwsContext::lumToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)

Unscaled conversion of luma plane to YV12 for horizontal scaler.

Definition at line 534 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_sws_init_swscale_x86(), hyscale(), and lum_convert().

void(* SwsContext::alpToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)

Unscaled conversion of alpha plane to YV12 for horizontal scaler.

Definition at line 537 of file swscale_internal.h.

Referenced by ff_init_filters(), ff_sws_init_swscale_x86(), hyscale(), and lum_convert().

void(* SwsContext::chrToYV12)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)

Unscaled conversion of chroma planes to YV12 for horizontal scaler.

Definition at line 540 of file swscale_internal.h.

Referenced by chr_convert(), ff_init_filters(), ff_sws_init_swscale_x86(), and hcscale().

void(* SwsContext::readLumPlanar)(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)

Functions to read planar input, such as planar RGB, and convert internally to Y/UV/A.

Definition at line 549 of file swscale_internal.h.

Referenced by ff_init_filters(), hyscale(), and lum_convert().

void(* SwsContext::readChrPlanar)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src[4], int width, int32_t *rgb2yuv)

Definition at line 550 of file swscale_internal.h.

Referenced by chr_convert(), ff_init_filters(), and hcscale().

void(* SwsContext::readAlpPlanar)(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)

Definition at line 552 of file swscale_internal.h.

Referenced by ff_init_filters(), hyscale(), and lum_convert().

void(* SwsContext::hyscale_fast)(struct SwsContext *c, int16_t *dst, int dstWidth, const uint8_t *src, int srcW, int xInc)

Scale one horizontal line of input data using a bilinear filter to produce one line of output data.

Compared to SwsContext->hScale(), please take note of the following caveats when using these:

  • Scaling is done using only 7bit instead of 14bit coefficients.
  • You can use no more than 5 input pixels to produce 4 output pixels. Therefore, this filter should not be used for downscaling by more than ~20% in width (because that equals more than 5/4th downscaling and thus more than 5 pixels input per 4 pixels output).
  • In general, bilinear filters create artifacts during downscaling (even when <20%), because one output pixel will span more than one input pixel, and thus some pixels will need edges of both neighbor pixels to interpolate the output pixel. Since you can use at most two input pixels per output pixel in bilinear scaling, this is impossible and thus downscaling by any size will create artifacts. To enable this type of scaling, set SWS_FLAG_FAST_BILINEAR in SwsContext->flags.

Definition at line 574 of file swscale_internal.h.

Referenced by hyscale(), lum_h_scale(), and sws_init_swscale().

void(* SwsContext::hcscale_fast)(struct SwsContext *c, int16_t *dst1, int16_t *dst2, int dstWidth, const uint8_t *src1, const uint8_t *src2, int srcW, int xInc)

Definition at line 577 of file swscale_internal.h.

Referenced by chr_h_scale(), hcscale(), and sws_init_swscale().

void(* SwsContext::hyScale)(struct SwsContext *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)

Scale one horizontal line of input data using a filter over the input lines, to produce one (differently sized) line of output data.

Parameters
dstpointer to destination buffer for horizontally scaled data. If the number of bits per component of one destination pixel (SwsContext->dstBpc) is <= 10, data will be 15bpc in 16bits (int16_t) width. Else (i.e. SwsContext->dstBpc == 16), data will be 19bpc in 32bits (int32_t) width.
dstWwidth of destination image
srcpointer to source data to be scaled. If the number of bits per component of a source pixel (SwsContext->srcBpc) is 8, this is 8bpc in 8bits (uint8_t) width. Else (i.e. SwsContext->dstBpc > 8), this is native depth in 16bits (uint16_t) width. In other words, for 9-bit YUV input, this is 9bpc, for 10-bit YUV input, this is 10bpc, and for 16-bit RGB or YUV, this is 16bpc.
filterfilter coefficients to be used per output pixel for scaling. This contains 14bpp filtering coefficients. Guaranteed to contain dstW * filterSize entries.
filterPosposition of the first input pixel to be used for each output pixel during scaling. Guaranteed to contain dstW entries.
filterSizethe number of input coefficients to be used (and thus the number of input pixels to be used) for creating a single output pixel. Is aligned to 4 (and input coefficients thus padded with zeroes) to simplify creating SIMD code.

Definition at line 614 of file swscale_internal.h.

Referenced by ff_sws_init_swscale_ppc(), ff_sws_init_swscale_x86(), hyscale(), lum_h_scale(), and sws_init_swscale().

void(* SwsContext::hcScale)(struct SwsContext *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
void(* SwsContext::lumConvertRange)(int16_t *dst, int width)

Color range conversion function for luma plane if needed.

Definition at line 623 of file swscale_internal.h.

Referenced by ff_sws_init_range_convert(), hyscale(), and lum_h_scale().

void(* SwsContext::chrConvertRange)(int16_t *dst1, int16_t *dst2, int width)

Color range conversion function for chroma planes if needed.

Definition at line 625 of file swscale_internal.h.

Referenced by chr_h_scale(), ff_sws_init_range_convert(), and hcscale().

int SwsContext::needs_hcscale

Set if there are chroma planes to be converted.

Definition at line 627 of file swscale_internal.h.

Referenced by ff_init_filters(), sws_init_swscale(), and swscale().

SwsDither SwsContext::dither
SwsAlphaBlend SwsContext::alphablend

The documentation for this struct was generated from the following file: