FFmpeg
|
#include "config.h"
#include "version.h"
#include "libavutil/avassert.h"
#include "libavutil/avutil.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.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 |
Macros | |
#define | STR(s) AV_TOSTRING(s) |
#define | YUVRGB_TABLE_HEADROOM 256 |
#define | MAX_FILTER_SIZE SWS_MAX_FILTER_SIZE |
#define | DITHER1XBPP |
#define | ALT32_CORR 1 |
#define | APCK_PTR2 4 |
#define | APCK_COEF 8 |
#define | APCK_SIZE 16 |
#define | RETCODE_USE_CASCADE -12345 |
#define | RY_IDX 0 |
#define | GY_IDX 1 |
#define | BY_IDX 2 |
#define | RU_IDX 3 |
#define | GU_IDX 4 |
#define | BU_IDX 5 |
#define | RV_IDX 6 |
#define | GV_IDX 7 |
#define | BV_IDX 8 |
#define | RGB2YUV_SHIFT 15 |
#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*"AV_STRINGIFY(MAX_FILTER_SIZE) |
#define | DSTW_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2" |
#define | ESP_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+8" |
#define | VROUNDER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+16" |
#define | U_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+24" |
#define | V_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+32" |
#define | Y_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+40" |
#define | ALP_MMX_FILTER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+48" |
#define | UV_OFF_PX "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+48" |
#define | UV_OFF_BYTE "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+56" |
#define | DITHER16 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+64" |
#define | DITHER32 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+80" |
#define | DITHER32_INT (11*8+4*4*MAX_FILTER_SIZE*3+80) |
#define | XYZ_GAMMA (2.6f) |
#define | RGB_GAMMA (2.2f) |
#define | isNBPS(x) is9_OR_10BPS(x) |
#define | isGray(x) |
#define | isRGBinInt(x) |
#define | isBGRinInt(x) |
#define | isRGBinBytes(x) |
#define | isBGRinBytes(x) |
#define | isBayer(x) |
#define | isAnyRGB(x) |
#define | isPacked(x) |
#define | FILL(wfunc) |
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). More... | |
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. More... | |
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. More... | |
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). More... | |
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. More... | |
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. More... | |
typedef void(* | yuv2anyX_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 YUV/RGB output by doing multi-point vertical scaling between input pixels. More... | |
Enumerations | |
enum | SwsDither { SWS_DITHER_NONE = 0, SWS_DITHER_AUTO, SWS_DITHER_BAYER, SWS_DITHER_ED, SWS_DITHER_A_DITHER, SWS_DITHER_X_DITHER, NB_SWS_DITHER } |
Variables | |
const uint64_t | ff_dither4 [2] |
const uint64_t | ff_dither8 [2] |
const uint8_t | ff_dither_2x2_4 [3][8] |
const uint8_t | ff_dither_2x2_8 [3][8] |
const uint8_t | ff_dither_4x4_16 [5][8] |
const uint8_t | ff_dither_8x8_32 [9][8] |
const uint8_t | ff_dither_8x8_73 [9][8] |
const uint8_t | ff_dither_8x8_128 [9][8] |
const uint8_t | ff_dither_8x8_220 [9][8] |
const int32_t | ff_yuv2rgb_coeffs [8][4] |
const AVClass | sws_context_class |
#define STR | ( | s | ) | AV_TOSTRING(s) |
Definition at line 40 of file swscale_internal.h.
Referenced by av_register_all().
#define YUVRGB_TABLE_HEADROOM 256 |
Definition at line 42 of file swscale_internal.h.
Referenced by fill_gv_table(), fill_table(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), and yuv2rgb_X_c_template().
#define MAX_FILTER_SIZE SWS_MAX_FILTER_SIZE |
Definition at line 44 of file swscale_internal.h.
Referenced by initFilter().
#define DITHER1XBPP |
Definition at line 46 of file swscale_internal.h.
Referenced by sws_init_context().
#define ALT32_CORR 1 |
Definition at line 51 of file swscale_internal.h.
Referenced by findRgbConvFn(), and rgbToRgbWrapper().
#define APCK_PTR2 4 |
Definition at line 59 of file swscale_internal.h.
#define APCK_COEF 8 |
Definition at line 60 of file swscale_internal.h.
#define APCK_SIZE 16 |
Definition at line 61 of file swscale_internal.h.
Referenced by initFilter().
#define RETCODE_USE_CASCADE -12345 |
Definition at line 64 of file swscale_internal.h.
Referenced by initFilter(), and sws_init_context().
#define RY_IDX 0 |
Definition at line 394 of file swscale_internal.h.
Referenced by bgr24ToY_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), planar_rgb16_to_y(), planar_rgb_to_y(), rgb24ToY_c(), rgb48funcs(), rgb64funcs(), and rgb64ToY_c_template().
#define GY_IDX 1 |
Definition at line 395 of file swscale_internal.h.
Referenced by bgr24ToY_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), planar_rgb16_to_y(), planar_rgb_to_y(), rgb24ToY_c(), rgb48funcs(), rgb64funcs(), and rgb64ToY_c_template().
#define BY_IDX 2 |
Definition at line 396 of file swscale_internal.h.
Referenced by bgr24ToY_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), planar_rgb16_to_y(), planar_rgb_to_y(), rgb24ToY_c(), rgb48funcs(), rgb64funcs(), and rgb64ToY_c_template().
#define RU_IDX 3 |
Definition at line 397 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define GU_IDX 4 |
Definition at line 398 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define BU_IDX 5 |
Definition at line 399 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define RV_IDX 6 |
Definition at line 400 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define GV_IDX 7 |
Definition at line 401 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define BV_IDX 8 |
Definition at line 402 of file swscale_internal.h.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), ff_rgb24toyv12_c(), fill_rgb2yuv_table(), gbr24pToUV_half_c(), planar_rgb16_to_uv(), planar_rgb_to_uv(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64ToUV_c_template(), and rgb64ToUV_half_c_template().
#define RGB2YUV_SHIFT 15 |
Definition at line 403 of file swscale_internal.h.
#define RED_DITHER "0*8" |
Definition at line 428 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 GREEN_DITHER "1*8" |
Definition at line 429 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 BLUE_DITHER "2*8" |
Definition at line 430 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 Y_COEFF "3*8" |
Definition at line 431 of file swscale_internal.h.
#define VR_COEFF "4*8" |
Definition at line 432 of file swscale_internal.h.
#define UB_COEFF "5*8" |
Definition at line 433 of file swscale_internal.h.
#define VG_COEFF "6*8" |
Definition at line 434 of file swscale_internal.h.
#define UG_COEFF "7*8" |
Definition at line 435 of file swscale_internal.h.
#define Y_OFFSET "8*8" |
Definition at line 436 of file swscale_internal.h.
#define U_OFFSET "9*8" |
Definition at line 437 of file swscale_internal.h.
#define V_OFFSET "10*8" |
Definition at line 438 of file swscale_internal.h.
#define LUM_MMX_FILTER_OFFSET "11*8" |
Definition at line 439 of file swscale_internal.h.
#define CHR_MMX_FILTER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE) |
Definition at line 440 of file swscale_internal.h.
#define DSTW_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2" |
Definition at line 441 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 ESP_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+8" |
Definition at line 442 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 VROUNDER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+16" |
Definition at line 443 of file swscale_internal.h.
#define U_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+24" |
Definition at line 444 of file swscale_internal.h.
Referenced by yuv2rgb32_2_TMPL(), and yuv2rgb32_X_ar_TMPL().
#define V_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+32" |
Definition at line 445 of file swscale_internal.h.
Referenced by yuv2rgb32_2_TMPL(), and yuv2rgb32_X_ar_TMPL().
#define Y_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+40" |
Definition at line 446 of file swscale_internal.h.
Referenced by yuv2rgb32_X_ar_TMPL().
#define ALP_MMX_FILTER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+48" |
Definition at line 447 of file swscale_internal.h.
Referenced by yuv2rgb32_X_ar_TMPL(), and yuv2rgb32_X_TMPL().
#define UV_OFF_PX "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+48" |
Definition at line 448 of file swscale_internal.h.
#define UV_OFF_BYTE "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+56" |
Definition at line 449 of file swscale_internal.h.
#define DITHER16 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+64" |
Definition at line 450 of file swscale_internal.h.
#define DITHER32 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+80" |
Definition at line 451 of file swscale_internal.h.
#define DITHER32_INT (11*8+4*4*MAX_FILTER_SIZE*3+80) |
Definition at line 452 of file swscale_internal.h.
Referenced by sws_alloc_context().
#define XYZ_GAMMA (2.6f) |
Definition at line 499 of file swscale_internal.h.
Referenced by fill_xyztables().
#define RGB_GAMMA (2.2f) |
Definition at line 500 of file swscale_internal.h.
Referenced by fill_xyztables().
#define isNBPS | ( | x | ) | is9_OR_10BPS(x) |
Definition at line 646 of file swscale_internal.h.
Referenced by planarCopyWrapper(), rgb9plus_planar_funcs(), sws_init_context(), and swscale().
#define isGray | ( | x | ) |
Definition at line 681 of file swscale_internal.h.
#define isRGBinInt | ( | x | ) |
Definition at line 690 of file swscale_internal.h.
Referenced by findRgbConvFn().
#define isBGRinInt | ( | x | ) |
Definition at line 711 of file swscale_internal.h.
Referenced by findRgbConvFn().
#define isRGBinBytes | ( | x | ) |
Definition at line 733 of file swscale_internal.h.
#define isBGRinBytes | ( | x | ) |
Definition at line 742 of file swscale_internal.h.
#define isBayer | ( | x | ) |
Definition at line 752 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and sws_init_context().
#define isAnyRGB | ( | x | ) |
Definition at line 767 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_sws_init_range_convert(), hScale16To15_c(), hScale16To19_c(), and sws_init_context().
#define isPacked | ( | x | ) |
Definition at line 785 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and swscale().
#define FILL | ( | wfunc | ) |
Referenced by fillPlane16().
typedef int(* SwsFunc)(struct SwsContext *context, const uint8_t *src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t *dst[], int dstStride[]) |
Definition at line 78 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 94 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 110 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 129 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 165 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 198 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 230 of file swscale_internal.h.
typedef void(* yuv2anyX_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 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 planes. 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 264 of file swscale_internal.h.
enum SwsDither |
Enumerator | |
---|---|
SWS_DITHER_NONE | |
SWS_DITHER_AUTO | |
SWS_DITHER_BAYER | |
SWS_DITHER_ED | |
SWS_DITHER_A_DITHER | |
SWS_DITHER_X_DITHER | |
NB_SWS_DITHER |
Definition at line 68 of file swscale_internal.h.
SwsFunc ff_yuv2rgb_get_func_ptr | ( | SwsContext * | c | ) |
Definition at line 656 of file yuv2rgb.c.
Referenced by ff_get_unscaled_swscale().
int ff_yuv2rgb_c_init_tables | ( | SwsContext * | c, |
const int | inv_table[4], | ||
int | fullRange, | ||
int | brightness, | ||
int | contrast, | ||
int | saturation | ||
) |
Definition at line 751 of file yuv2rgb.c.
Referenced by sws_setColorspaceDetails().
void ff_yuv2rgb_init_tables_ppc | ( | SwsContext * | c, |
const int | inv_table[4], | ||
int | brightness, | ||
int | contrast, | ||
int | saturation | ||
) |
Definition at line 600 of file yuv2rgb_altivec.c.
Referenced by sws_setColorspaceDetails().
void ff_updateMMXDitherTables | ( | SwsContext * | c, |
int | dstY, | ||
int | lumBufIndex, | ||
int | chrBufIndex, | ||
int | lastInLumBuf, | ||
int | lastInChrBuf | ||
) |
Referenced by swscale().
av_cold void ff_sws_init_range_convert | ( | SwsContext * | c | ) |
Definition at line 699 of file swscale.c.
Referenced by sws_init_swscale(), and sws_setColorspaceDetails().
SwsFunc ff_yuv2rgb_init_x86 | ( | SwsContext * | c | ) |
Definition at line 72 of file yuv2rgb.c.
Referenced by ff_yuv2rgb_get_func_ptr().
SwsFunc ff_yuv2rgb_init_ppc | ( | SwsContext * | c | ) |
Definition at line 537 of file yuv2rgb_altivec.c.
Referenced by ff_yuv2rgb_get_func_ptr().
|
static |
Definition at line 632 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swscale_ppc(), planarCopyWrapper(), rgb9plus_planar_funcs(), sws_init_context(), sws_init_swscale_TMPL(), and swscale().
|
static |
Definition at line 639 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swscale_ppc(), sws_init_swscale_TMPL(), and swscale().
|
static |
Definition at line 648 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_swscale_x86(), planarCopyWrapper(), rgb9plus_planar_funcs(), swscale(), and yuv2gbrp_full_X_c().
|
static |
Definition at line 655 of file swscale_internal.h.
Referenced by isPlanarYUV(), and sws_setColorspaceDetails().
|
static |
Definition at line 662 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and swscale().
|
static |
Definition at line 669 of file swscale_internal.h.
|
static |
Definition at line 775 of file swscale_internal.h.
|
static |
Definition at line 806 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_yuv2rgb_c_init_tables(), reset_ptr(), and swscale().
|
static |
Definition at line 813 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale().
|
static |
Definition at line 820 of file swscale_internal.h.
Referenced by sws_init_context().
|
static |
Definition at line 828 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), palToRgbWrapper(), reset_ptr(), sws_scale(), and swscale().
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 1560 of file swscale_unscaled.c.
Referenced by sws_init_context().
void ff_get_unscaled_swscale_ppc | ( | SwsContext * | c | ) |
Definition at line 187 of file yuv2yuv_altivec.c.
Referenced by ff_get_unscaled_swscale().
void ff_get_unscaled_swscale_arm | ( | SwsContext * | c | ) |
Definition at line 74 of file swscale_unscaled.c.
SwsFunc ff_getSwsFunc | ( | SwsContext * | c | ) |
Return function pointer to fastest main scaler path function depending on architecture and available optimizations.
Definition at line 757 of file swscale.c.
Referenced by sws_init_context().
void ff_sws_init_input_funcs | ( | SwsContext * | c | ) |
Referenced by sws_init_swscale().
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, | ||
yuv2anyX_fn * | yuv2anyX | ||
) |
Definition at line 1857 of file output.c.
Referenced by sws_init_swscale(), and swscale().
void ff_sws_init_swscale_ppc | ( | SwsContext * | c | ) |
Definition at line 329 of file swscale_altivec.c.
Referenced by ff_getSwsFunc().
void ff_sws_init_swscale_x86 | ( | SwsContext * | c | ) |
Definition at line 383 of file swscale.c.
Referenced by ff_getSwsFunc().
void ff_hyscale_fast_c | ( | SwsContext * | c, |
int16_t * | dst, | ||
int | dstWidth, | ||
const uint8_t * | src, | ||
int | srcW, | ||
int | xInc | ||
) |
Definition at line 23 of file hscale_fast_bilinear.c.
Referenced by sws_init_swscale().
void ff_hcscale_fast_c | ( | 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 38 of file hscale_fast_bilinear.c.
Referenced by sws_init_swscale().
int ff_init_hscaler_mmxext | ( | int | dstW, |
int | xInc, | ||
uint8_t * | filterCode, | ||
int16_t * | filter, | ||
int32_t * | filterPos, | ||
int | numSplits | ||
) |
Referenced by sws_init_context().
void ff_hyscale_fast_mmxext | ( | SwsContext * | c, |
int16_t * | dst, | ||
int | dstWidth, | ||
const uint8_t * | src, | ||
int | srcW, | ||
int | xInc | ||
) |
Referenced by sws_init_swscale_TMPL().
void ff_hcscale_fast_mmxext | ( | SwsContext * | c, |
int16_t * | dst1, | ||
int16_t * | dst2, | ||
int | dstWidth, | ||
const uint8_t * | src1, | ||
const uint8_t * | src2, | ||
int | srcW, | ||
int | xInc | ||
) |
Referenced by sws_init_swscale_TMPL().
|
inlinestatic |
Definition at line 891 of file swscale_internal.h.
Referenced by planarCopyWrapper(), and swscale().
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 uint8_t ff_dither_2x2_4[3][8] |
Definition at line 39 of file output.c.
Referenced by yuv2rgb_write().
const uint8_t ff_dither_2x2_8[3][8] |
Definition at line 45 of file output.c.
Referenced by yuv2rgb_write().
const uint8_t ff_dither_4x4_16[5][8] |
Definition at line 51 of file output.c.
Referenced by yuv2rgb_write().
const uint8_t ff_dither_8x8_32[9][8] |
Definition at line 59 of file output.c.
Referenced by yuv2rgb_write().
const uint8_t ff_dither_8x8_73[9][8] |
Definition at line 71 of file output.c.
Referenced by yuv2rgb_write().
const uint8_t ff_dither_8x8_128[9][8] |
const uint8_t ff_dither_8x8_220[9][8] |
Definition at line 84 of file output.c.
Referenced by yuv2mono_1_c_template(), yuv2mono_2_c_template(), yuv2mono_X_c_template(), and yuv2rgb_write().
const int32_t ff_yuv2rgb_coeffs[8][4] |
Definition at line 38 of file yuv2rgb.c.
Referenced by sws_getCoefficients(), and sws_init_context().
const AVClass sws_context_class |
Definition at line 85 of file options.c.
Referenced by sws_alloc_context(), and sws_get_class().