#include "config.h"
#include "libavutil/avutil.h"
#include "libavutil/common.h"
#include "libavutil/log.h"
#include "libavutil/pixfmt.h"
#include "libavutil/pixdesc.h"
Go to the source code of this file.
Data Structures | |
struct | SwsContext |
Defines | |
#define | STR(s) AV_TOSTRING(s) |
#define | YUVRGB_TABLE_HEADROOM 128 |
#define | FAST_BGR2YV12 |
#define | MAX_FILTER_SIZE 256 |
#define | DITHER1XBPP |
#define | ALT32_CORR 1 |
#define | APCK_PTR2 4 |
#define | APCK_COEF 8 |
#define | APCK_SIZE 16 |
#define | RED_DITHER "0*8" |
#define | GREEN_DITHER "1*8" |
#define | BLUE_DITHER "2*8" |
#define | Y_COEFF "3*8" |
#define | VR_COEFF "4*8" |
#define | UB_COEFF "5*8" |
#define | VG_COEFF "6*8" |
#define | UG_COEFF "7*8" |
#define | Y_OFFSET "8*8" |
#define | U_OFFSET "9*8" |
#define | V_OFFSET "10*8" |
#define | LUM_MMX_FILTER_OFFSET "11*8" |
#define | CHR_MMX_FILTER_OFFSET "11*8+4*4*256" |
#define | DSTW_OFFSET "11*8+4*4*256*2" |
#define | ESP_OFFSET "11*8+4*4*256*2+8" |
#define | VROUNDER_OFFSET "11*8+4*4*256*2+16" |
#define | U_TEMP "11*8+4*4*256*2+24" |
#define | V_TEMP "11*8+4*4*256*2+32" |
#define | Y_TEMP "11*8+4*4*256*2+40" |
#define | ALP_MMX_FILTER_OFFSET "11*8+4*4*256*2+48" |
#define | UV_OFF_PX "11*8+4*4*256*3+48" |
#define | UV_OFF_BYTE "11*8+4*4*256*3+56" |
#define | DITHER16 "11*8+4*4*256*3+64" |
#define | DITHER32 "11*8+4*4*256*3+80" |
#define | is16BPS(x) (av_pix_fmt_descriptors[x].comp[0].depth_minus1 == 15) |
#define | is9_OR_10BPS(x) |
#define | isNBPS(x) is9_OR_10BPS(x) |
#define | isBE(x) (av_pix_fmt_descriptors[x].flags & PIX_FMT_BE) |
#define | isYUV(x) |
#define | isPlanarYUV(x) |
#define | isRGB(x) (av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB) |
#define | isGray(x) |
#define | isRGBinInt(x) |
#define | isBGRinInt(x) |
#define | isRGBinBytes(x) |
#define | isBGRinBytes(x) |
#define | isAnyRGB(x) |
#define | isALPHA(x) |
#define | isPacked(x) |
#define | isPlanar(x) |
#define | isPackedRGB(x) |
#define | isPlanarRGB(x) |
#define | usePal(x) |
Typedefs | |
typedef int(* | SwsFunc )(struct SwsContext *context, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
typedef void(* | yuv2planar1_fn )(const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) |
Write one line of horizontally scaled data to planar output without any additional vertical scaling (or point-scaling). | |
typedef void(* | yuv2planarX_fn )(const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) |
Write one line of horizontally scaled data to planar output with multi-point vertical scaling between input pixels. | |
typedef void(* | yuv2interleavedX_fn )(struct SwsContext *c, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest, int dstW) |
Write one line of horizontally scaled chroma to interleaved output with multi-point vertical scaling between input pixels. | |
typedef void(* | yuv2packed1_fn )(struct SwsContext *c, const int16_t *lumSrc, const int16_t *chrUSrc[2], const int16_t *chrVSrc[2], const int16_t *alpSrc, uint8_t *dest, int dstW, int uvalpha, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output without any additional vertical scaling (or point-scaling). | |
typedef void(* | yuv2packed2_fn )(struct SwsContext *c, const int16_t *lumSrc[2], const int16_t *chrUSrc[2], const int16_t *chrVSrc[2], const int16_t *alpSrc[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output by doing bilinear scaling between two input lines. | |
typedef void(* | yuv2packedX_fn )(struct SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output by doing multi-point vertical scaling between input pixels. | |
Functions | |
SwsFunc | ff_yuv2rgb_get_func_ptr (SwsContext *c) |
int | ff_yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation) |
void | ff_yuv2rgb_init_tables_altivec (SwsContext *c, const int inv_table[4], int brightness, int contrast, int saturation) |
void | updateMMXDitherTables (SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex, int lastInLumBuf, int lastInChrBuf) |
SwsFunc | ff_yuv2rgb_init_mmx (SwsContext *c) |
SwsFunc | ff_yuv2rgb_init_vis (SwsContext *c) |
SwsFunc | ff_yuv2rgb_init_altivec (SwsContext *c) |
SwsFunc | ff_yuv2rgb_get_func_ptr_bfin (SwsContext *c) |
void | ff_bfin_get_unscaled_swscale (SwsContext *c) |
void | ff_get_unscaled_swscale (SwsContext *c) |
Set c->swScale to an unscaled converter if one exists for the specific source and destination formats, bit depths, flags, etc. | |
void | ff_swscale_get_unscaled_altivec (SwsContext *c) |
SwsFunc | ff_getSwsFunc (SwsContext *c) |
Return function pointer to fastest main scaler path function depending on architecture and available optimizations. | |
void | ff_sws_init_input_funcs (SwsContext *c) |
void | ff_sws_init_output_funcs (SwsContext *c, yuv2planar1_fn *yuv2plane1, yuv2planarX_fn *yuv2planeX, yuv2interleavedX_fn *yuv2nv12cX, yuv2packed1_fn *yuv2packed1, yuv2packed2_fn *yuv2packed2, yuv2packedX_fn *yuv2packedX) |
void | ff_sws_init_swScale_altivec (SwsContext *c) |
void | ff_sws_init_swScale_mmx (SwsContext *c) |
Variables | |
const uint64_t | ff_dither4 [2] |
const uint64_t | ff_dither8 [2] |
const uint8_t | dithers [8][8][8] |
const uint16_t | dither_scale [15][16] |
const AVClass | sws_context_class |
#define ALP_MMX_FILTER_OFFSET "11*8+4*4*256*2+48" |
Definition at line 362 of file swscale_internal.h.
Referenced by yuv2rgb32_X_ar_TMPL(), and yuv2rgb32_X_TMPL().
#define ALT32_CORR 1 |
#define APCK_COEF 8 |
Definition at line 58 of file swscale_internal.h.
#define APCK_PTR2 4 |
Definition at line 57 of file swscale_internal.h.
#define APCK_SIZE 16 |
#define BLUE_DITHER "2*8" |
Definition at line 345 of file swscale_internal.h.
Referenced by yuv2rgb555_1_TMPL(), yuv2rgb555_2_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_1_TMPL(), yuv2rgb565_2_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2rgb565_X_TMPL().
#define CHR_MMX_FILTER_OFFSET "11*8+4*4*256" |
Definition at line 355 of file swscale_internal.h.
#define DITHER16 "11*8+4*4*256*3+64" |
Definition at line 365 of file swscale_internal.h.
#define DITHER1XBPP |
#define DITHER32 "11*8+4*4*256*3+80" |
Definition at line 366 of file swscale_internal.h.
#define DSTW_OFFSET "11*8+4*4*256*2" |
Definition at line 356 of file swscale_internal.h.
#define ESP_OFFSET "11*8+4*4*256*2+8" |
Definition at line 357 of file swscale_internal.h.
Referenced by yuv2bgr24_1_TMPL(), yuv2bgr24_2_TMPL(), yuv2rgb32_1_TMPL(), yuv2rgb32_2_TMPL(), yuv2rgb555_1_TMPL(), yuv2rgb555_2_TMPL(), yuv2rgb565_1_TMPL(), yuv2rgb565_2_TMPL(), yuv2yuyv422_1_TMPL(), and yuv2yuyv422_2_TMPL().
#define FAST_BGR2YV12 |
Definition at line 40 of file swscale_internal.h.
#define GREEN_DITHER "1*8" |
Definition at line 344 of file swscale_internal.h.
Referenced by yuv2rgb555_1_TMPL(), yuv2rgb555_2_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_1_TMPL(), yuv2rgb565_2_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2rgb565_X_TMPL().
#define is16BPS | ( | x | ) | (av_pix_fmt_descriptors[x].comp[0].depth_minus1 == 15) |
Definition at line 558 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swScale_altivec(), planarCopyWrapper(), sws_init_context(), and swScale().
#define is9_OR_10BPS | ( | x | ) |
Value:
(av_pix_fmt_descriptors[x].comp[0].depth_minus1 >= 8 && \ av_pix_fmt_descriptors[x].comp[0].depth_minus1 <= 13)
Definition at line 561 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swScale_altivec(), and swScale().
#define isALPHA | ( | x | ) |
Value:
(av_pix_fmt_descriptors[x].nb_components == 2 || \ av_pix_fmt_descriptors[x].nb_components == 4)
Definition at line 661 of file swscale_internal.h.
#define isAnyRGB | ( | x | ) |
Value:
( \ isRGBinInt(x) || \ isBGRinInt(x) || \ (x)==PIX_FMT_GBR24P \ )
Definition at line 654 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), hScale16To15_c(), hScale16To19_c(), sws_init_context(), and sws_init_swScale_c().
#define isBE | ( | x | ) | (av_pix_fmt_descriptors[x].flags & PIX_FMT_BE) |
Definition at line 567 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swScale_mmx(), and planarCopyWrapper().
#define isBGRinBytes | ( | x | ) |
Value:
( \ (x)==PIX_FMT_BGR48BE \ || (x)==PIX_FMT_BGR48LE \ || (x)==PIX_FMT_BGRA64BE \ || (x)==PIX_FMT_BGRA64LE \ || (x)==PIX_FMT_BGRA \ || (x)==PIX_FMT_ABGR \ || (x)==PIX_FMT_BGR24 \ )
Definition at line 644 of file swscale_internal.h.
#define isBGRinInt | ( | x | ) |
Value:
( \ (x)==PIX_FMT_BGR48BE || \ (x)==PIX_FMT_BGR48LE || \ (x)==PIX_FMT_BGRA64BE || \ (x)==PIX_FMT_BGRA64LE || \ (x)==PIX_FMT_BGR32 || \ (x)==PIX_FMT_BGR32_1 || \ (x)==PIX_FMT_BGR24 || \ (x)==PIX_FMT_BGR565BE || \ (x)==PIX_FMT_BGR565LE || \ (x)==PIX_FMT_BGR555BE || \ (x)==PIX_FMT_BGR555LE || \ (x)==PIX_FMT_BGR444BE || \ (x)==PIX_FMT_BGR444LE || \ (x)==PIX_FMT_BGR8 || \ (x)==PIX_FMT_BGR4 || \ (x)==PIX_FMT_BGR4_BYTE|| \ (x)==PIX_FMT_MONOBLACK|| \ (x)==PIX_FMT_MONOWHITE \ )
Definition at line 613 of file swscale_internal.h.
Referenced by findRgbConvFn().
#define isGray | ( | x | ) |
Value:
((x) == PIX_FMT_GRAY8 || \ (x) == PIX_FMT_Y400A || \ (x) == PIX_FMT_GRAY16BE || \ (x) == PIX_FMT_GRAY16LE)
Definition at line 585 of file swscale_internal.h.
#define isNBPS | ( | x | ) | is9_OR_10BPS(x) |
Definition at line 565 of file swscale_internal.h.
Referenced by planarCopyWrapper(), and sws_init_context().
#define isPacked | ( | x | ) |
Value:
( \ (x)==PIX_FMT_PAL8 \ || (x)==PIX_FMT_YUYV422 \ || (x)==PIX_FMT_UYVY422 \ || (x)==PIX_FMT_Y400A \ || isRGBinInt(x) \ || isBGRinInt(x) \ )
Definition at line 666 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and swScale().
#define isPackedRGB | ( | x | ) |
Value:
((av_pix_fmt_descriptors[x].flags & \ (PIX_FMT_PLANAR | PIX_FMT_RGB)) == PIX_FMT_RGB)
Definition at line 685 of file swscale_internal.h.
#define isPlanar | ( | x | ) |
Value:
(av_pix_fmt_descriptors[x].nb_components >= 2 && \ (av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR))
Definition at line 681 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), reset_ptr(), and swScale().
#define isPlanarRGB | ( | x | ) |
Value:
((av_pix_fmt_descriptors[x].flags & \ (PIX_FMT_PLANAR | PIX_FMT_RGB)) == (PIX_FMT_PLANAR | PIX_FMT_RGB))
Definition at line 689 of file swscale_internal.h.
#define isPlanarYUV | ( | x | ) |
Value:
((av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR) && \ isYUV(x))
Definition at line 574 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and swScale().
#define isRGB | ( | x | ) | (av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB) |
Definition at line 578 of file swscale_internal.h.
#define isRGBinBytes | ( | x | ) |
Value:
( \ (x)==PIX_FMT_RGB48BE \ || (x)==PIX_FMT_RGB48LE \ || (x)==PIX_FMT_RGBA64BE \ || (x)==PIX_FMT_RGBA64LE \ || (x)==PIX_FMT_RGBA \ || (x)==PIX_FMT_ARGB \ || (x)==PIX_FMT_RGB24 \ )
Definition at line 635 of file swscale_internal.h.
#define isRGBinInt | ( | x | ) |
Value:
( \ (x)==PIX_FMT_RGB48BE || \ (x)==PIX_FMT_RGB48LE || \ (x)==PIX_FMT_RGBA64BE || \ (x)==PIX_FMT_RGBA64LE || \ (x)==PIX_FMT_RGB32 || \ (x)==PIX_FMT_RGB32_1 || \ (x)==PIX_FMT_RGB24 || \ (x)==PIX_FMT_RGB565BE || \ (x)==PIX_FMT_RGB565LE || \ (x)==PIX_FMT_RGB555BE || \ (x)==PIX_FMT_RGB555LE || \ (x)==PIX_FMT_RGB444BE || \ (x)==PIX_FMT_RGB444LE || \ (x)==PIX_FMT_RGB8 || \ (x)==PIX_FMT_RGB4 || \ (x)==PIX_FMT_RGB4_BYTE || \ (x)==PIX_FMT_MONOBLACK || \ (x)==PIX_FMT_MONOWHITE \ )
Definition at line 592 of file swscale_internal.h.
Referenced by findRgbConvFn().
#define isYUV | ( | x | ) |
Value:
(!(av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB) && \ av_pix_fmt_descriptors[x].nb_components >= 2)
Definition at line 570 of file swscale_internal.h.
Referenced by sws_getColorspaceDetails(), and sws_setColorspaceDetails().
#define LUM_MMX_FILTER_OFFSET "11*8" |
Definition at line 354 of file swscale_internal.h.
#define MAX_FILTER_SIZE 256 |
#define RED_DITHER "0*8" |
Definition at line 343 of file swscale_internal.h.
Referenced by yuv2rgb555_1_TMPL(), yuv2rgb555_2_TMPL(), yuv2rgb555_X_ar_TMPL(), yuv2rgb555_X_TMPL(), yuv2rgb565_1_TMPL(), yuv2rgb565_2_TMPL(), yuv2rgb565_X_ar_TMPL(), and yuv2rgb565_X_TMPL().
#define STR | ( | s | ) | AV_TOSTRING(s) |
#define U_OFFSET "9*8" |
Definition at line 352 of file swscale_internal.h.
#define U_TEMP "11*8+4*4*256*2+24" |
Definition at line 359 of file swscale_internal.h.
Referenced by yuv2rgb32_2_TMPL(), and yuv2rgb32_X_ar_TMPL().
#define UB_COEFF "5*8" |
Definition at line 348 of file swscale_internal.h.
#define UG_COEFF "7*8" |
Definition at line 350 of file swscale_internal.h.
#define usePal | ( | x | ) |
Value:
((av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) || \ (av_pix_fmt_descriptors[x].flags & PIX_FMT_PSEUDOPAL))
Definition at line 693 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), palToRgbWrapper(), reset_ptr(), and sws_scale().
#define UV_OFF_BYTE "11*8+4*4*256*3+56" |
Definition at line 364 of file swscale_internal.h.
#define UV_OFF_PX "11*8+4*4*256*3+48" |
Definition at line 363 of file swscale_internal.h.
#define V_OFFSET "10*8" |
Definition at line 353 of file swscale_internal.h.
#define V_TEMP "11*8+4*4*256*2+32" |
Definition at line 360 of file swscale_internal.h.
Referenced by yuv2rgb32_2_TMPL(), and yuv2rgb32_X_ar_TMPL().
#define VG_COEFF "6*8" |
Definition at line 349 of file swscale_internal.h.
#define VR_COEFF "4*8" |
Definition at line 347 of file swscale_internal.h.
#define VROUNDER_OFFSET "11*8+4*4*256*2+16" |
Definition at line 358 of file swscale_internal.h.
#define Y_COEFF "3*8" |
Definition at line 346 of file swscale_internal.h.
#define Y_OFFSET "8*8" |
Definition at line 351 of file swscale_internal.h.
#define Y_TEMP "11*8+4*4*256*2+40" |
#define YUVRGB_TABLE_HEADROOM 128 |
Definition at line 38 of file swscale_internal.h.
Referenced by yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), and yuv2rgb_X_c_template().
typedef int(* SwsFunc)(struct SwsContext *context, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
Definition at line 64 of file swscale_internal.h.
typedef void(* yuv2interleavedX_fn)(struct SwsContext *c, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest, int dstW) |
Write one line of horizontally scaled chroma to interleaved output with multi-point vertical scaling between input pixels.
c | SWS scaling context | |
chrFilter | vertical chroma scaling coefficients, 12bit [0,4096] | |
chrUSrc | scaled chroma (U) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrVSrc | scaled chroma (V) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrFilterSize | number of vertical chroma input lines to scale | |
dest | pointer to the output plane. For >8bit output, this is in uint16_t | |
dstW | width of chroma planes |
Definition at line 115 of file swscale_internal.h.
typedef void(* yuv2packed1_fn)(struct SwsContext *c, const int16_t *lumSrc, const int16_t *chrUSrc[2], const int16_t *chrVSrc[2], const int16_t *alpSrc, uint8_t *dest, int dstW, int uvalpha, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output without any additional vertical scaling (or point-scaling).
Note that this function may do chroma scaling, see the "uvalpha" argument.
c | SWS scaling context | |
lumSrc | scaled luma (Y) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrUSrc | scaled chroma (U) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrVSrc | scaled chroma (V) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
alpSrc | scaled alpha (A) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
dest | pointer to the output plane. For 16bit output, this is uint16_t | |
dstW | width of lumSrc and alpSrc in pixels, number of pixels to write into dest[] | |
uvalpha | chroma scaling coefficient for the second line of chroma pixels, either 2048 or 0. If 0, one chroma input is used for 2 output pixels (or if the SWS_FLAG_FULL_CHR_INT flag is set, it generates 1 output pixel). If 2048, two chroma input pixels should be averaged for 2 output pixels (this only happens if SWS_FLAG_FULL_CHR_INT is not set) | |
y | vertical line number for this output. This does not need to be used to calculate the offset in the destination, but can be used to generate comfort noise using dithering for some output formats. |
Definition at line 151 of file swscale_internal.h.
typedef void(* yuv2packed2_fn)(struct SwsContext *c, const int16_t *lumSrc[2], const int16_t *chrUSrc[2], const int16_t *chrVSrc[2], const int16_t *alpSrc[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output by doing bilinear scaling between two input lines.
c | SWS scaling context | |
lumSrc | scaled luma (Y) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrUSrc | scaled chroma (U) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrVSrc | scaled chroma (V) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
alpSrc | scaled alpha (A) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
dest | pointer to the output plane. For 16bit output, this is uint16_t | |
dstW | width of lumSrc and alpSrc in pixels, number of pixels to write into dest[] | |
yalpha | luma/alpha scaling coefficients for the second input line. The first line's coefficients can be calculated by using 4096 - yalpha | |
uvalpha | chroma scaling coefficient for the second input line. The first line's coefficients can be calculated by using 4096 - uvalpha | |
y | vertical line number for this output. This does not need to be used to calculate the offset in the destination, but can be used to generate comfort noise using dithering for some output formats. |
Definition at line 184 of file swscale_internal.h.
typedef void(* yuv2packedX_fn)(struct SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y) |
Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB output by doing multi-point vertical scaling between input pixels.
c | SWS scaling context | |
lumFilter | vertical luma/alpha scaling coefficients, 12bit [0,4096] | |
lumSrc | scaled luma (Y) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
lumFilterSize | number of vertical luma/alpha input lines to scale | |
chrFilter | vertical chroma scaling coefficients, 12bit [0,4096] | |
chrUSrc | scaled chroma (U) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrVSrc | scaled chroma (V) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
chrFilterSize | number of vertical chroma input lines to scale | |
alpSrc | scaled alpha (A) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
dest | pointer to the output plane. For 16bit output, this is uint16_t | |
dstW | width of lumSrc and alpSrc in pixels, number of pixels to write into dest[] | |
y | vertical line number for this output. This does not need to be used to calculate the offset in the destination, but can be used to generate comfort noise using dithering or some output formats. |
Definition at line 216 of file swscale_internal.h.
typedef void(* yuv2planar1_fn)(const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) |
Write one line of horizontally scaled data to planar output without any additional vertical scaling (or point-scaling).
src | scaled source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
dest | pointer to the output plane. For >8bit output, this is in uint16_t | |
dstW | width of destination in pixels | |
dither | ordered dither array of type int16_t and size 8 | |
offset | Dither offset |
Definition at line 80 of file swscale_internal.h.
typedef void(* yuv2planarX_fn)(const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) |
Write one line of horizontally scaled data to planar output with multi-point vertical scaling between input pixels.
filter | vertical luma/alpha scaling coefficients, 12bit [0,4096] | |
src | scaled luma (Y) or alpha (A) source data, 15bit for 8-10bit output, 19-bit for 16bit output (in int32_t) | |
filterSize | number of vertical input lines to scale | |
dest | pointer to output plane. For >8bit output, this is in uint16_t | |
dstW | width of destination pixels | |
offset | Dither offset |
Definition at line 96 of file swscale_internal.h.
void ff_bfin_get_unscaled_swscale | ( | SwsContext * | c | ) |
void ff_get_unscaled_swscale | ( | SwsContext * | c | ) |
Set c->swScale to an unscaled converter if one exists for the specific source and destination formats, bit depths, flags, etc.
Definition at line 940 of file swscale_unscaled.c.
Referenced by sws_init_context().
SwsFunc ff_getSwsFunc | ( | SwsContext * | c | ) |
Return function pointer to fastest main scaler path function depending on architecture and available optimizations.
Definition at line 731 of file swscale.c.
Referenced by sws_init_context().
void ff_sws_init_input_funcs | ( | SwsContext * | c | ) |
void ff_sws_init_output_funcs | ( | SwsContext * | c, | |
yuv2planar1_fn * | yuv2plane1, | |||
yuv2planarX_fn * | yuv2planeX, | |||
yuv2interleavedX_fn * | yuv2nv12cX, | |||
yuv2packed1_fn * | yuv2packed1, | |||
yuv2packed2_fn * | yuv2packed2, | |||
yuv2packedX_fn * | yuv2packedX | |||
) |
void ff_sws_init_swScale_altivec | ( | SwsContext * | c | ) |
void ff_sws_init_swScale_mmx | ( | SwsContext * | c | ) |
void ff_swscale_get_unscaled_altivec | ( | SwsContext * | c | ) |
SwsFunc ff_yuv2rgb_get_func_ptr | ( | SwsContext * | c | ) |
SwsFunc ff_yuv2rgb_get_func_ptr_bfin | ( | SwsContext * | c | ) |
SwsFunc ff_yuv2rgb_init_altivec | ( | SwsContext * | c | ) |
SwsFunc ff_yuv2rgb_init_mmx | ( | SwsContext * | c | ) |
void ff_yuv2rgb_init_tables_altivec | ( | SwsContext * | c, | |
const int | inv_table[4], | |||
int | brightness, | |||
int | contrast, | |||
int | saturation | |||
) |
SwsFunc ff_yuv2rgb_init_vis | ( | SwsContext * | c | ) |
void updateMMXDitherTables | ( | SwsContext * | c, | |
int | dstY, | |||
int | lumBufIndex, | |||
int | chrBufIndex, | |||
int | lastInLumBuf, | |||
int | lastInChrBuf | |||
) |
Referenced by swScale().
const uint16_t dither_scale[15][16] |
Definition at line 125 of file swscale_unscaled.c.
Definition at line 48 of file swscale_unscaled.c.
const uint64_t ff_dither4[2] |
Referenced by yuv420_rgb16_TMPL().
const uint64_t ff_dither8[2] |
Referenced by yuv420_rgb15_TMPL(), and yuv420_rgb16_TMPL().
const AVClass sws_context_class |