26     for (i = 0; i < 2; ++i) {
 
   29         for (j = 0; j < 
n; ++j) {
 
   36     for (i = 0; i < 4; ++i)
 
   53     for (i = 0; i < 2; ++i) {
 
   59         for (j = 0; j < 
n; ++j) {
 
   81     int size[4] = { lumLines,
 
   92     for (i = 0; i < 4; ++i) {
 
   93         int n = size[i] * ( ring == 0 ? 1 : 3);
 
  112         for (i = 0; i < 4; ++i) {
 
  123         for (i = 0; i < 4; i+=3) {
 
  134         for (i = 1; i < 3; ++i) {
 
  151     const int start[4] = {lumY,
 
  156     const int end[4] = {lumY +lumH,
 
  161     uint8_t *
const src_[4] = {src[0] + (relative ? 0 : start[0]) * stride[0],
 
  162                               src[1] + (relative ? 0 : start[1]) * stride[1],
 
  163                               src[2] + (relative ? 0 : start[2]) * stride[2],
 
  164                               src[3] + (relative ? 0 : start[3]) * stride[3]};
 
  168     for (i = 0; i < 4; ++i) {
 
  172         int lines = end[i] - start[i];
 
  173         int tot_lines = end[i] - first;
 
  175         if (start[i] >= first && n >= tot_lines) {
 
  177             for (j = 0; j < lines; j+= 1)
 
  178                 s->
plane[i].
line[start[i] - first + j] = src_[i] +  j * stride[i];
 
  181             lines = lines > n ? n : lines;
 
  183             for (j = 0; j < lines; j+= 1)
 
  184                 s->
plane[i].
line[j] = src_[i] +  j * stride[i];
 
  195     for (i = 0; i < 4; ++i) {
 
  198         for (j = 0; j < 
size; ++j) {
 
  200             int end = is16bit ? n>>1: 
n;
 
  204                 for (k = 0; k < 
end; ++k)
 
  207                 for (k = 0; k < 
end; ++k)
 
  208                     ((int16_t*)(s->
plane[i].
line[j]))[k] = 1<<14;
 
  231     *out_lum_size = lumFilterSize;
 
  232     *out_chr_size = chrFilterSize;
 
  234     for (lumY = 0; lumY < dstH; lumY++) {
 
  235         int chrY      = (int64_t)lumY * chrDstH / dstH;
 
  236         int nextSlice = 
FFMAX(lumFilterPos[lumY] + lumFilterSize - 1,
 
  237                               ((chrFilterPos[chrY] + chrFilterSize - 1)
 
  240         nextSlice >>= chrSubSample;
 
  241         nextSlice <<= chrSubSample;
 
  242         (*out_lum_size) = 
FFMAX((*out_lum_size), nextSlice - lumFilterPos[lumY]);
 
  243         (*out_chr_size) = 
FFMAX((*out_chr_size), (nextSlice >> chrSubSample) - chrFilterPos[chrY]);
 
  260     int dst_stride = 
FFALIGN(c->
dstW * 
sizeof(int16_t) + 66, 16);
 
  275     num_ydesc = need_lum_conv ? 2 : 1;
 
  276     num_cdesc = need_chr_conv ? 2 : 1;
 
  279     c->
numDesc = num_ydesc + num_cdesc + num_vdesc + (need_gamma ? 2 : 0);
 
  280     c->
descIndex[0] = num_ydesc + (need_gamma ? 1 : 0);
 
  281     c->
descIndex[1] = num_ydesc + num_cdesc + (need_gamma ? 1 : 0);
 
  293     for (i = 1; i < c->
numSlice-2; ++i) {
 
  331     dstIdx = 
FFMAX(num_ydesc, num_cdesc);
 
  348         dstIdx = 
FFMAX(num_ydesc, num_cdesc);
 
  381         for (i = 0; i < c->
numDesc; ++i)
 
int ff_init_gamma_convert(SwsFilterDescriptor *desc, SwsSlice *src, uint16_t *table)
initializes gamma conversion descriptor 
 
int ff_init_desc_fmt_convert(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst, uint32_t *pal)
initializes lum pixel format conversion descriptor 
 
int chrSrcH
Height of source chroma planes. 
 
int ff_free_filters(SwsContext *c)
 
int ff_init_slice_from_src(SwsSlice *s, uint8_t *src[4], int stride[4], int srcW, int lumY, int lumH, int chrY, int chrH, int relative)
 
int h_chr_sub_sample
horizontal chroma subsampling factor 
 
Struct which holds all necessary data for processing a slice. 
 
static void free_lines(SwsSlice *s)
 
int srcH
Height of source luma/alpha planes. 
 
int ff_rotate_slice(SwsSlice *s, int lum, int chr)
 
#define av_assert0(cond)
assert() equivalent, that is always enabled. 
 
static void get_min_buffer_size(SwsContext *c, int *out_lum_size, int *out_chr_size)
 
int chrDstVSubSample
Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in destination i...
 
void(* readChrPlanar)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src[4], int width, int32_t *rgb2yuv)
 
uint8_t ** line
line buffer 
 
int alpha
Flag for processing alpha channel. 
 
int vChrFilterSize
Vertical filter size for chroma pixels. 
 
static av_cold int end(AVCodecContext *avctx)
 
int v_chr_sub_sample
vertical chroma subsampling factor 
 
void(* lumToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
Unscaled conversion of luma plane to YV12 for horizontal scaler. 
 
enum AVPixelFormat dstFormat
Destination pixel format. 
 
int ff_init_desc_no_chr(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst)
 
int chrSrcHSubSample
Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in source imag...
 
int32_t * vChrFilterPos
Array of vertical filter starting positions for each dst[i] for chroma planes. 
 
int dstH
Height of destination luma/alpha planes. 
 
int ff_init_desc_cfmt_convert(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst, uint32_t *pal)
initializes chr pixel format conversion descriptor 
 
int32_t * hChrFilterPos
Array of horizontal filter starting positions for each dst[i] for chroma planes. 
 
int hLumFilterSize
Horizontal filter size for luma/alpha pixels. 
 
static int alloc_lines(SwsSlice *s, int size, int width)
 
int ff_init_vscale(SwsContext *c, SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst)
initializes vertical scaling descriptors 
 
static void * av_mallocz_array(size_t nmemb, size_t size)
 
SwsPlane plane[MAX_SLICE_PLANES]
color planes 
 
static int alloc_slice(SwsSlice *s, enum AVPixelFormat fmt, int lumLines, int chrLines, int h_sub_sample, int v_sub_sample, int ring)
 
int32_t * hLumFilterPos
Array of horizontal filter starting positions for each dst[i] for luma/alpha planes. 
 
int hChrFilterSize
Horizontal filter size for chroma pixels. 
 
int sliceH
number of lines 
 
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 
 
static double lum(void *priv, double x, double y, int plane)
 
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 
 
int available_lines
max number of lines that can be hold by this plane 
 
void(* readLumPlanar)(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)
Functions to read planar input, such as planar RGB, and convert internally to Y/UV/A. 
 
struct SwsFilterDescriptor * desc
 
int dstW
Width of destination luma/alpha planes. 
 
int needs_hcscale
Set if there are chroma planes to be converted. 
 
int32_t * vLumFilterPos
Array of vertical filter starting positions for each dst[i] for luma/alpha planes. 
 
int should_free_lines
flag to identify if there are dynamic allocated lines 
 
int is_ring
flag to identify if this slice is a ring buffer 
 
int width
Slice line width. 
 
int chrDstH
Height of destination chroma planes. 
 
Struct which defines a slice of an image to be scaled or an output for a scaled slice. 
 
int vLumFilterSize
Vertical filter size for luma/alpha pixels. 
 
static void free_slice(SwsSlice *s)
 
static av_always_inline int isPlanarYUV(enum AVPixelFormat pix_fmt)
 
void * instance
Filter instance data. 
 
int ff_init_filters(SwsContext *c)
 
int16_t * hLumFilter
Array of horizontal filter coefficients for luma/alpha planes. 
 
static void fill_ones(SwsSlice *s, int n, int is16bit)
 
GLint GLenum GLboolean GLsizei stride
 
void(* readAlpPlanar)(uint8_t *dst, const uint8_t *src[4], int width, int32_t *rgb2yuv)
 
enum AVPixelFormat srcFormat
Source pixel format. 
 
enum AVPixelFormat fmt
planes pixel format 
 
uint8_t ** tmp
Tmp line buffer used by mmx code. 
 
void(* alpToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
Unscaled conversion of alpha plane to YV12 for horizontal scaler. 
 
void(* chrToYV12)(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, int width, uint32_t *pal)
Unscaled conversion of chroma planes to YV12 for horizontal scaler. 
 
int32_t input_rgb2yuv_table[16+40 *4]
 
static av_always_inline int usePal(enum AVPixelFormat pix_fmt)
 
int16_t * hChrFilter
Array of horizontal filter coefficients for chroma planes. 
 
int sliceY
index of first line 
 
int chrDstHSubSample
Binary logarithm of horizontal subsampling factor between luma/alpha and chroma planes in destination...
 
int srcW
Width of source luma/alpha planes. 
 
int chrSrcVSubSample
Binary logarithm of vertical subsampling factor between luma/alpha and chroma planes in source image...
 
AVPixelFormat
Pixel format. 
 
static av_cold void cleanup(FlashSV2Context *s)