FFmpeg
|
#include <stdatomic.h>
#include "config.h"
#include "swscale.h"
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/frame.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "libavutil/mem_internal.h"
#include "libavutil/pixfmt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/slicethread.h"
#include "libavutil/half2float.h"
Go to the source code of this file.
Data Structures | |
struct | Range |
struct | RangeList |
struct | SwsInternal |
struct | SwsPlane |
Slice plane. More... | |
struct | SwsSlice |
Struct which defines a slice of an image to be scaled or an output for a scaled slice. More... | |
struct | SwsFilterDescriptor |
Struct which holds all necessary data for processing a slice. More... | |
Macros | |
#define | STR(s) AV_TOSTRING(s) |
#define | YUVRGB_TABLE_HEADROOM 512 |
#define | YUVRGB_TABLE_LUMA_HEADROOM 512 |
#define | MAX_FILTER_SIZE SWS_MAX_FILTER_SIZE |
#define | ALT32_CORR 1 |
#define | APCK_PTR2 4 |
#define | APCK_COEF 8 |
#define | APCK_SIZE 16 |
#define | RETCODE_USE_CASCADE -12345 |
#define | MAX_SLICE_PLANES 4 |
#define | MAX_LINES_AHEAD 4 |
Horizontal and vertical filters. | |
To better understand the following fields, here is a pseudo-code of their usage in filtering a horizontal line: | |
#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) |
Typedefs | |
typedef int(* | SwsFunc) (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const 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) (enum AVPixelFormat dstFormat, const uint8_t *chrDither, 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) (SwsInternal *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) (SwsInternal *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) (SwsInternal *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) (SwsInternal *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... | |
typedef void(* | planar1_YV12_fn) (uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal, void *opaque) |
Unscaled conversion of luma/alpha plane to YV12 for horizontal scaler. More... | |
typedef void(* | planar2_YV12_fn) (uint8_t *dst, uint8_t *dst2, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal, void *opaque) |
Unscaled conversion of chroma plane to YV12 for horizontal scaler. More... | |
typedef void(* | planarX_YV12_fn) (uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv, void *opaque) |
Unscaled conversion of arbitrary planar data (e.g. More... | |
typedef void(* | planarX2_YV12_fn) (uint8_t *dst, uint8_t *dst2, const uint8_t *src[4], int width, int32_t *rgb2yuv, void *opaque) |
Enumerations | |
enum | SwsDither { SWS_DITHER_NONE = 0, SWS_DITHER_AUTO, SWS_DITHER_BAYER, SWS_DITHER_ED, SWS_DITHER_A_DITHER, SWS_DITHER_X_DITHER, SWS_DITHER_NB } |
enum | SwsAlphaBlend { SWS_ALPHA_BLEND_NONE = 0, SWS_ALPHA_BLEND_UNIFORM, SWS_ALPHA_BLEND_CHECKERBOARD, SWS_ALPHA_BLEND_NB } |
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 [11][4] |
const AVClass | ff_sws_context_class |
#define STR | ( | s | ) | AV_TOSTRING(s) |
Definition at line 43 of file swscale_internal.h.
#define YUVRGB_TABLE_HEADROOM 512 |
Definition at line 45 of file swscale_internal.h.
#define YUVRGB_TABLE_LUMA_HEADROOM 512 |
Definition at line 46 of file swscale_internal.h.
#define MAX_FILTER_SIZE SWS_MAX_FILTER_SIZE |
Definition at line 48 of file swscale_internal.h.
#define ALT32_CORR 1 |
Definition at line 53 of file swscale_internal.h.
#define APCK_PTR2 4 |
Definition at line 61 of file swscale_internal.h.
#define APCK_COEF 8 |
Definition at line 62 of file swscale_internal.h.
#define APCK_SIZE 16 |
Definition at line 63 of file swscale_internal.h.
#define RETCODE_USE_CASCADE -12345 |
Definition at line 66 of file swscale_internal.h.
#define RY_IDX 0 |
Definition at line 470 of file swscale_internal.h.
#define GY_IDX 1 |
Definition at line 471 of file swscale_internal.h.
#define BY_IDX 2 |
Definition at line 472 of file swscale_internal.h.
#define RU_IDX 3 |
Definition at line 473 of file swscale_internal.h.
#define GU_IDX 4 |
Definition at line 474 of file swscale_internal.h.
#define BU_IDX 5 |
Definition at line 475 of file swscale_internal.h.
#define RV_IDX 6 |
Definition at line 476 of file swscale_internal.h.
#define GV_IDX 7 |
Definition at line 477 of file swscale_internal.h.
#define BV_IDX 8 |
Definition at line 478 of file swscale_internal.h.
#define RGB2YUV_SHIFT 15 |
Definition at line 479 of file swscale_internal.h.
#define RED_DITHER "0*8" |
Definition at line 504 of file swscale_internal.h.
#define GREEN_DITHER "1*8" |
Definition at line 505 of file swscale_internal.h.
#define BLUE_DITHER "2*8" |
Definition at line 506 of file swscale_internal.h.
#define Y_COEFF "3*8" |
Definition at line 507 of file swscale_internal.h.
#define VR_COEFF "4*8" |
Definition at line 508 of file swscale_internal.h.
#define UB_COEFF "5*8" |
Definition at line 509 of file swscale_internal.h.
#define VG_COEFF "6*8" |
Definition at line 510 of file swscale_internal.h.
#define UG_COEFF "7*8" |
Definition at line 511 of file swscale_internal.h.
#define Y_OFFSET "8*8" |
Definition at line 512 of file swscale_internal.h.
#define U_OFFSET "9*8" |
Definition at line 513 of file swscale_internal.h.
#define V_OFFSET "10*8" |
Definition at line 514 of file swscale_internal.h.
#define LUM_MMX_FILTER_OFFSET "11*8" |
Definition at line 515 of file swscale_internal.h.
#define CHR_MMX_FILTER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE) |
Definition at line 516 of file swscale_internal.h.
#define DSTW_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2" |
Definition at line 517 of file swscale_internal.h.
#define ESP_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+8" |
Definition at line 518 of file swscale_internal.h.
#define VROUNDER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+16" |
Definition at line 519 of file swscale_internal.h.
#define U_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+24" |
Definition at line 520 of file swscale_internal.h.
#define V_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+32" |
Definition at line 521 of file swscale_internal.h.
#define Y_TEMP "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+40" |
Definition at line 522 of file swscale_internal.h.
#define ALP_MMX_FILTER_OFFSET "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*2+48" |
Definition at line 523 of file swscale_internal.h.
#define UV_OFF_PX "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+48" |
Definition at line 524 of file swscale_internal.h.
#define UV_OFF_BYTE "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+56" |
Definition at line 525 of file swscale_internal.h.
#define DITHER16 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+64" |
Definition at line 526 of file swscale_internal.h.
#define DITHER32 "11*8+4*4*"AV_STRINGIFY(MAX_FILTER_SIZE)"*3+80" |
Definition at line 527 of file swscale_internal.h.
#define DITHER32_INT (11*8+4*4*MAX_FILTER_SIZE*3+80) |
Definition at line 528 of file swscale_internal.h.
#define XYZ_GAMMA (2.6f) |
Definition at line 575 of file swscale_internal.h.
#define RGB_GAMMA (2.2f) |
Definition at line 576 of file swscale_internal.h.
#define MAX_SLICE_PLANES 4 |
Definition at line 1086 of file swscale_internal.h.
#define MAX_LINES_AHEAD 4 |
Definition at line 1183 of file swscale_internal.h.
typedef int(* SwsFunc) (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[]) |
Definition at line 105 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, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
dest | pointer to the output plane. For >8-bit 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 121 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, 12 bits [0,4096] |
src | scaled luma (Y) or alpha (A) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
filterSize | number of vertical input lines to scale |
dest | pointer to output plane. For >8-bit output, this is in uint16_t |
dstW | width of destination pixels |
offset | Dither offset |
Definition at line 137 of file swscale_internal.h.
typedef void(* yuv2interleavedX_fn) (enum AVPixelFormat dstFormat, const uint8_t *chrDither, 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.
dstFormat | destination pixel format |
chrDither | ordered dither array of type uint8_t and size 8 |
chrFilter | vertical chroma scaling coefficients, 12 bits [0,4096] |
chrUSrc | scaled chroma (U) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrVSrc | scaled chroma (V) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrFilterSize | number of vertical chroma input lines to scale |
dest | pointer to the output plane. For >8-bit output, this is in uint16_t |
dstW | width of chroma planes |
Definition at line 157 of file swscale_internal.h.
typedef void(* yuv2packed1_fn) (SwsInternal *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, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrUSrc | scaled chroma (U) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrVSrc | scaled chroma (V) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
alpSrc | scaled alpha (A) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
dest | pointer to the output plane. For 16-bit 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 194 of file swscale_internal.h.
typedef void(* yuv2packed2_fn) (SwsInternal *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, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrUSrc | scaled chroma (U) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrVSrc | scaled chroma (V) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
alpSrc | scaled alpha (A) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
dest | pointer to the output plane. For 16-bit 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 227 of file swscale_internal.h.
typedef void(* yuv2packedX_fn) (SwsInternal *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, 12 bits [0,4096] |
lumSrc | scaled luma (Y) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
lumFilterSize | number of vertical luma/alpha input lines to scale |
chrFilter | vertical chroma scaling coefficients, 12 bits [0,4096] |
chrUSrc | scaled chroma (U) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrVSrc | scaled chroma (V) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrFilterSize | number of vertical chroma input lines to scale |
alpSrc | scaled alpha (A) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
dest | pointer to the output plane. For 16-bit 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 259 of file swscale_internal.h.
typedef void(* yuv2anyX_fn) (SwsInternal *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, 12 bits [0,4096] |
lumSrc | scaled luma (Y) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
lumFilterSize | number of vertical luma/alpha input lines to scale |
chrFilter | vertical chroma scaling coefficients, 12 bits [0,4096] |
chrUSrc | scaled chroma (U) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrVSrc | scaled chroma (V) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
chrFilterSize | number of vertical chroma input lines to scale |
alpSrc | scaled alpha (A) source data, 15 bits for 8-10-bit output, 19 bits for 16-bit output (in int32_t) |
dest | pointer to the output planes. For 16-bit 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 293 of file swscale_internal.h.
typedef void(* planar1_YV12_fn) (uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal, void *opaque) |
Unscaled conversion of luma/alpha plane to YV12 for horizontal scaler.
Definition at line 304 of file swscale_internal.h.
typedef void(* planar2_YV12_fn) (uint8_t *dst, uint8_t *dst2, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal, void *opaque) |
Unscaled conversion of chroma plane to YV12 for horizontal scaler.
Definition at line 311 of file swscale_internal.h.
typedef void(* planarX_YV12_fn) (uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv, void *opaque) |
Unscaled conversion of arbitrary planar data (e.g.
RGBA) to YV12, through conversion using the given color matrix.
Definition at line 319 of file swscale_internal.h.
typedef void(* planarX2_YV12_fn) (uint8_t *dst, uint8_t *dst2, const uint8_t *src[4], int width, int32_t *rgb2yuv, void *opaque) |
Definition at line 322 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 | |
SWS_DITHER_NB |
Definition at line 75 of file swscale_internal.h.
enum SwsAlphaBlend |
Enumerator | |
---|---|
SWS_ALPHA_BLEND_NONE | |
SWS_ALPHA_BLEND_UNIFORM | |
SWS_ALPHA_BLEND_CHECKERBOARD | |
SWS_ALPHA_BLEND_NB |
Definition at line 85 of file swscale_internal.h.
|
inlinestatic |
Definition at line 70 of file swscale_internal.h.
Referenced by alloc_set_opts(), check_chrConvertRange(), check_hscale(), check_input_planar_rgb_to_a(), check_input_planar_rgb_to_uv(), check_input_planar_rgb_to_y(), check_lumConvertRange(), check_output_yuv2gbrp(), check_semiplanar(), check_yuv2rgb(), check_yuv2yuv1(), check_yuv2yuvX(), checkasm_check_sw_rgb(), context_init_threaded(), ff_sws_slice_worker(), ff_swscale(), scale_cascaded(), scale_gamma(), scale_internal(), sws_frame_end(), sws_frame_start(), sws_freeContext(), sws_getCachedContext(), sws_getColorspaceDetails(), sws_init_context(), sws_init_single_context(), sws_receive_slice(), sws_receive_slice_alignment(), sws_scale(), sws_send_slice(), and sws_setColorspaceDetails().
int ff_range_add | ( | RangeList * | r, |
unsigned int | start, | ||
unsigned int | len | ||
) |
Definition at line 2596 of file utils.c.
Referenced by sws_send_slice().
SwsFunc ff_yuv2rgb_get_func_ptr | ( | SwsInternal * | c | ) |
Referenced by ff_get_unscaled_swscale(), and if().
int ff_yuv2rgb_c_init_tables | ( | SwsInternal * | c, |
const int | inv_table[4], | ||
int | fullRange, | ||
int | brightness, | ||
int | contrast, | ||
int | saturation | ||
) |
Referenced by if(), and sws_setColorspaceDetails().
void ff_yuv2rgb_init_tables_ppc | ( | SwsInternal * | c, |
const int | inv_table[4], | ||
int | brightness, | ||
int | contrast, | ||
int | saturation | ||
) |
Definition at line 598 of file yuv2rgb_altivec.c.
Referenced by sws_setColorspaceDetails().
void ff_updateMMXDitherTables | ( | SwsInternal * | c, |
int | dstY | ||
) |
Referenced by ff_swscale().
void ff_update_palette | ( | SwsInternal * | c, |
const uint32_t * | pal | ||
) |
Definition at line 777 of file swscale.c.
Referenced by scale_internal().
av_cold void ff_sws_init_range_convert | ( | SwsInternal * | c | ) |
Definition at line 543 of file swscale.c.
Referenced by sws_init_swscale(), and sws_setColorspaceDetails().
av_cold void ff_sws_init_range_convert_aarch64 | ( | SwsInternal * | c | ) |
Definition at line 226 of file swscale.c.
Referenced by ff_sws_init_range_convert().
av_cold void ff_sws_init_range_convert_loongarch | ( | SwsInternal * | c | ) |
Definition at line 27 of file swscale_init_loongarch.c.
Referenced by ff_sws_init_range_convert().
av_cold void ff_sws_init_range_convert_riscv | ( | SwsInternal * | c | ) |
Definition at line 29 of file swscale.c.
Referenced by ff_sws_init_range_convert().
av_cold void ff_sws_init_range_convert_x86 | ( | SwsInternal * | c | ) |
Definition at line 475 of file swscale.c.
Referenced by ff_sws_init_range_convert().
SwsFunc ff_yuv2rgb_init_x86 | ( | SwsInternal * | c | ) |
SwsFunc ff_yuv2rgb_init_ppc | ( | SwsInternal * | c | ) |
Definition at line 535 of file yuv2rgb_altivec.c.
Referenced by if().
SwsFunc ff_yuv2rgb_init_loongarch | ( | SwsInternal * | c | ) |
Definition at line 105 of file swscale_init_loongarch.c.
Referenced by if().
|
static |
Definition at line 729 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_output_lasx(), ff_sws_init_output_lsx(), ff_sws_init_swscale_ppc(), ff_sws_init_swscale_vsx(), ff_swscale(), planarCopyWrapper(), rgbaf16_funcs_endian(), sws_init_single_context(), sws_init_swscale_TMPL(), and sws_setColorspaceDetails().
|
static |
Definition at line 736 of file swscale_internal.h.
Referenced by ff_swscale().
|
static |
Definition at line 743 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_output_lasx(), ff_sws_init_output_lsx(), ff_sws_init_swscale_ppc(), ff_sws_init_swscale_vsx(), ff_swscale(), planarCopyWrapper(), rgbaf16_funcs_endian(), sws_init_single_context(), sws_init_swscale_TMPL(), and sws_setColorspaceDetails().
|
static |
Definition at line 750 of file swscale_internal.h.
Referenced by ff_sws_alphablendaway(), ff_sws_init_output_funcs(), ff_sws_init_swscale_vsx(), ff_sws_init_swscale_x86(), ff_swscale(), planarCopyWrapper(), rgbaf16_funcs_endian(), yuv2gbrp16_full_X_c(), yuv2gbrp_full_X_c(), and yuv2gbrpf32_full_X_c().
|
static |
Definition at line 757 of file swscale_internal.h.
Referenced by isPlanarYUV(), isSwappedChroma(), range_override_needed(), and sws_setColorspaceDetails().
|
static |
Definition at line 764 of file swscale_internal.h.
Referenced by isSemiPlanarYUV(), and isSwappedChroma().
|
static |
Definition at line 775 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_sws_init_output_funcs(), ff_sws_init_output_lasx(), ff_sws_init_output_lsx(), ff_sws_init_swscale_ppc(), ff_sws_init_swscale_vsx(), isSwappedChroma(), and sws_init_swscale_TMPL().
|
static |
Definition at line 782 of file swscale_internal.h.
|
static |
Definition at line 789 of file swscale_internal.h.
|
static |
Definition at line 800 of file swscale_internal.h.
Referenced by findRgbConvFn().
|
static |
Definition at line 822 of file swscale_internal.h.
Referenced by findRgbConvFn().
|
static |
Definition at line 844 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), scale_internal(), and sws_init_single_context().
|
static |
Definition at line 851 of file swscale_internal.h.
Referenced by sws_init_single_context().
|
static |
Definition at line 858 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_hscale16to15_4_neon(), ff_hscale16to15_X4_neon(), ff_hscale16to15_X8_neon(), ff_hscale16to19_4_neon(), ff_hscale16to19_X4_neon(), ff_hscale16to19_X8_neon(), ff_hscale_16_to_15_lasx(), ff_hscale_16_to_15_lsx(), ff_hscale_16_to_19_lasx(), ff_hscale_16_to_19_lsx(), ff_sws_init_range_convert(), hScale16To15_c(), hScale16To19_c(), and sws_init_single_context().
|
static |
Definition at line 866 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), planarCopyWrapper(), and sws_init_single_context().
|
static |
Definition at line 873 of file swscale_internal.h.
Referenced by ff_init_filters().
|
static |
Definition at line 880 of file swscale_internal.h.
Referenced by ff_init_desc_chscale(), ff_init_desc_fmt_convert(), ff_init_desc_hscale(), ff_init_vscale(), ff_init_vscale_pfn(), ff_yuv2rgb_init_loongarch(), if(), sws_init_single_context(), and sws_setColorspaceDetails().
|
static |
Definition at line 889 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and ff_swscale().
|
static |
Definition at line 898 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_swscale(), if(), and reset_ptr().
|
static |
Definition at line 905 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale().
|
static |
Definition at line 912 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), and sws_init_single_context().
|
static |
Definition at line 920 of file swscale_internal.h.
Referenced by ff_get_unscaled_swscale(), ff_init_filters(), palToRgbWrapper(), reset_ptr(), and scale_internal().
|
static |
Definition at line 938 of file swscale_internal.h.
Referenced by ff_sws_init_output_funcs(), ff_sws_init_output_lasx(), and ff_sws_init_output_lsx().
|
static |
Definition at line 957 of file swscale_internal.h.
Referenced by yuv2nv12cX_c().
void ff_get_unscaled_swscale | ( | SwsInternal * | c | ) |
Set c->convert_unscaled to an unscaled converter if one exists for the specific source and destination formats, bit depths, flags, etc.
Definition at line 2307 of file swscale_unscaled.c.
Referenced by sws_init_single_context().
void ff_get_unscaled_swscale_ppc | ( | SwsInternal * | c | ) |
Definition at line 187 of file yuv2yuv_altivec.c.
Referenced by ff_get_unscaled_swscale().
void ff_get_unscaled_swscale_arm | ( | SwsInternal * | c | ) |
Definition at line 185 of file swscale_unscaled.c.
Referenced by ff_get_unscaled_swscale().
void ff_get_unscaled_swscale_aarch64 | ( | SwsInternal * | c | ) |
Definition at line 216 of file swscale_unscaled.c.
Referenced by ff_get_unscaled_swscale().
void ff_sws_init_scale | ( | SwsInternal * | c | ) |
Definition at line 611 of file swscale.c.
Referenced by check_chrConvertRange(), check_hscale(), check_input_planar_rgb_to_a(), check_input_planar_rgb_to_uv(), check_input_planar_rgb_to_y(), check_lumConvertRange(), check_output_yuv2gbrp(), check_rgb_to_uv(), check_rgb_to_y(), check_yuv2yuv1(), check_yuv2yuvX(), and sws_init_single_context().
void ff_sws_init_input_funcs | ( | SwsInternal * | c, |
planar1_YV12_fn * | lumToYV12, | ||
planar1_YV12_fn * | alpToYV12, | ||
planar2_YV12_fn * | chrToYV12, | ||
planarX_YV12_fn * | readLumPlanar, | ||
planarX_YV12_fn * | readAlpPlanar, | ||
planarX2_YV12_fn * | readChrPlanar | ||
) |
Referenced by sws_init_swscale().
void ff_sws_init_output_funcs | ( | SwsInternal * | 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 3169 of file output.c.
Referenced by ff_swscale(), and sws_init_swscale().
void ff_sws_init_swscale_ppc | ( | SwsInternal * | c | ) |
Definition at line 232 of file swscale_altivec.c.
Referenced by ff_sws_init_scale().
void ff_sws_init_swscale_vsx | ( | SwsInternal * | c | ) |
Definition at line 2019 of file swscale_vsx.c.
Referenced by ff_sws_init_swscale_ppc().
void ff_sws_init_swscale_x86 | ( | SwsInternal * | c | ) |
Definition at line 485 of file swscale.c.
Referenced by ff_sws_init_scale().
void ff_sws_init_swscale_aarch64 | ( | SwsInternal * | c | ) |
Definition at line 243 of file swscale.c.
Referenced by ff_sws_init_scale().
void ff_sws_init_swscale_arm | ( | SwsInternal * | c | ) |
Definition at line 33 of file swscale.c.
Referenced by ff_sws_init_scale().
void ff_sws_init_swscale_loongarch | ( | SwsInternal * | c | ) |
Definition at line 57 of file swscale_init_loongarch.c.
Referenced by ff_sws_init_scale().
void ff_sws_init_swscale_riscv | ( | SwsInternal * | c | ) |
Definition at line 69 of file swscale.c.
Referenced by ff_sws_init_scale().
void ff_hyscale_fast_c | ( | SwsInternal * | 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 | ( | SwsInternal * | 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_single_context().
void ff_hyscale_fast_mmxext | ( | SwsInternal * | 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 | ( | SwsInternal * | 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().
int ff_sws_alphablendaway | ( | SwsInternal * | c, |
const uint8_t *const | src[], | ||
const int | srcStride[], | ||
int | srcSliceY, | ||
int | srcSliceH, | ||
uint8_t *const | dst[], | ||
const int | dstStride[] | ||
) |
Definition at line 23 of file alphablend.c.
Referenced by sws_init_single_context().
void ff_copyPlane | ( | const uint8_t * | src, |
int | srcStride, | ||
int | srcSliceY, | ||
int | srcSliceH, | ||
int | width, | ||
uint8_t * | dst, | ||
int | dstStride | ||
) |
Definition at line 125 of file swscale_unscaled.c.
Referenced by nv12ToPlanarWrapper(), nv24_to_yuv420p_neon_wrapper(), nv24ToPlanarWrapper(), nv24ToYuv420Wrapper(), planarRgbToplanarRgbWrapper(), planarToNv12Wrapper(), planarToNv24Wrapper(), and yvu9ToYv12Wrapper().
void ff_xyz12Torgb48 | ( | const SwsInternal * | c, |
uint8_t * | dst, | ||
int | dst_stride, | ||
const uint8_t * | src, | ||
int | src_stride, | ||
int | w, | ||
int | h | ||
) |
Definition at line 659 of file swscale.c.
Referenced by scale_internal().
void ff_rgb48Toxyz12 | ( | const SwsInternal * | c, |
uint8_t * | dst, | ||
int | dst_stride, | ||
const uint8_t * | src, | ||
int | src_stride, | ||
int | w, | ||
int | h | ||
) |
Definition at line 718 of file swscale.c.
Referenced by scale_internal().
|
inlinestatic |
Definition at line 1051 of file swscale_internal.h.
Referenced by ff_swscale(), and planarCopyWrapper().
|
inlinestatic |
Definition at line 1065 of file swscale_internal.h.
Referenced by ff_swscale().
int ff_init_slice_from_src | ( | SwsSlice * | s, |
uint8_t *const | src[4], | ||
const int | stride[4], | ||
int | srcW, | ||
int | lumY, | ||
int | lumH, | ||
int | chrY, | ||
int | chrH, | ||
int | relative | ||
) |
Definition at line 148 of file slice.c.
Referenced by ff_swscale().
int ff_init_filters | ( | SwsInternal * | c | ) |
Definition at line 250 of file slice.c.
Referenced by sws_init_single_context().
int ff_free_filters | ( | SwsInternal * | c | ) |
Definition at line 390 of file slice.c.
Referenced by ff_init_filters(), sws_freeContext(), and sws_init_single_context().
int ff_rotate_slice | ( | SwsSlice * | s, |
int | lum, | ||
int | chr | ||
) |
Definition at line 120 of file slice.c.
Referenced by ff_swscale().
int ff_init_gamma_convert | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
uint16_t * | table | ||
) |
initializes gamma conversion descriptor
Definition at line 59 of file gamma.c.
Referenced by ff_init_filters().
int ff_init_desc_fmt_convert | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
SwsSlice * | dst, | ||
uint32_t * | pal | ||
) |
initializes lum pixel format conversion descriptor
Definition at line 128 of file hscale.c.
Referenced by ff_init_filters().
int ff_init_desc_hscale | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
SwsSlice * | dst, | ||
uint16_t * | filter, | ||
int * | filter_pos, | ||
int | filter_size, | ||
int | xInc | ||
) |
initializes lum horizontal scaling descriptor
Definition at line 145 of file hscale.c.
Referenced by ff_init_filters().
int ff_init_desc_cfmt_convert | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
SwsSlice * | dst, | ||
uint32_t * | pal | ||
) |
initializes chr pixel format conversion descriptor
Definition at line 236 of file hscale.c.
Referenced by ff_init_filters().
int ff_init_desc_chscale | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
SwsSlice * | dst, | ||
uint16_t * | filter, | ||
int * | filter_pos, | ||
int | filter_size, | ||
int | xInc | ||
) |
initializes chr horizontal scaling descriptor
Definition at line 251 of file hscale.c.
Referenced by ff_init_filters().
int ff_init_desc_no_chr | ( | SwsFilterDescriptor * | desc, |
SwsSlice * | src, | ||
SwsSlice * | dst | ||
) |
Definition at line 282 of file hscale.c.
Referenced by ff_init_filters().
int ff_init_vscale | ( | SwsInternal * | c, |
SwsFilterDescriptor * | desc, | ||
SwsSlice * | src, | ||
SwsSlice * | dst | ||
) |
initializes vertical scaling descriptors
Definition at line 214 of file vscale.c.
Referenced by ff_init_filters().
void ff_init_vscale_pfn | ( | SwsInternal * | c, |
yuv2planar1_fn | yuv2plane1, | ||
yuv2planarX_fn | yuv2planeX, | ||
yuv2interleavedX_fn | yuv2nv12cX, | ||
yuv2packed1_fn | yuv2packed1, | ||
yuv2packed2_fn | yuv2packed2, | ||
yuv2packedX_fn | yuv2packedX, | ||
yuv2anyX_fn | yuv2anyX, | ||
int | use_mmx | ||
) |
setup vertical scaler functions
Definition at line 258 of file vscale.c.
Referenced by ff_init_vscale(), and ff_swscale().
void ff_sws_slice_worker | ( | void * | priv, |
int | jobnr, | ||
int | threadnr, | ||
int | nb_jobs, | ||
int | nb_threads | ||
) |
Definition at line 1262 of file swscale.c.
Referenced by context_init_threaded().
int ff_swscale | ( | SwsInternal * | c, |
const uint8_t *const | src[], | ||
const int | srcStride[], | ||
int | srcSliceY, | ||
int | srcSliceH, | ||
uint8_t *const | dst[], | ||
const int | dstStride[], | ||
int | dstSliceY, | ||
int | dstSliceH | ||
) |
Definition at line 236 of file swscale.c.
Referenced by scale_internal().
int ff_shuffle_filter_coefficients | ( | SwsInternal * | c, |
int * | filterPos, | ||
int | filterSize, | ||
int16_t * | filter, | ||
int | dstW | ||
) |
Definition at line 317 of file utils.c.
Referenced by check_hscale(), and sws_init_single_context().
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] |
Definition at line 38 of file swscale.c.
Referenced by ff_swscale().
const uint8_t ff_dither_8x8_220[9][8] |
Definition at line 84 of file output.c.
Referenced by if(), yuv2mono_1_c_template(), yuv2mono_2_c_template(), yuv2p01x_wrapper(), and yuv2rgb_write().
const int32_t ff_yuv2rgb_coeffs[11][4] |
Definition at line 47 of file yuv2rgb.c.
Referenced by sws_getCoefficients(), and sws_init_single_context().
const AVClass ff_sws_context_class |
Definition at line 88 of file options.c.
Referenced by sws_alloc_context(), and sws_get_class().