libswscale/yuv2rgb.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include "libavutil/cpu.h"
#include "libavutil/bswap.h"
#include "config.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "libavutil/pixdesc.h"

Go to the source code of this file.

Defines

#define LOADCHROMA(i)
#define PUTRGB(dst, src, i)
#define PUTRGB24(dst, src, i)
#define PUTBGR24(dst, src, i)
#define PUTRGBA(dst, ysrc, asrc, i, s)
#define PUTRGB48(dst, src, i)
#define PUTBGR48(dst, src, i)
#define YUV2RGBFUNC(func_name, dst_type, alpha)
#define ENDYUV2RGBLINE(dst_delta, ss)
#define ENDYUV2RGBFUNC()
#define CLOSEYUV2RGBFUNC(dst_delta)
#define PUTRGB16(dst, src, i, o)
#define PUTRGB15(dst, src, i, o)
#define PUTRGB12(dst, src, i, o)
#define PUTRGB8(dst, src, i, o)
#define PUTRGB4D(dst, src, i, o)
#define PUTRGB4DB(dst, src, i, o)
#define PUTRGB1(out, src, i, o)

Functions

const intsws_getCoefficients (int colorspace)
 Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().
 LOADCHROMA (0)
 PUTRGB48 (dst_1, py_1, 0)
 PUTRGB48 (dst_2, py_2, 0)
 LOADCHROMA (1)
 PUTRGB48 (dst_2, py_2, 1)
 PUTRGB48 (dst_1, py_1, 1)
 LOADCHROMA (2)
 PUTRGB48 (dst_1, py_1, 2)
 PUTRGB48 (dst_2, py_2, 2)
 LOADCHROMA (3)
 PUTRGB48 (dst_2, py_2, 3)
 PUTRGB48 (dst_1, py_1, 3)
 PUTBGR48 (dst_1, py_1, 0)
 PUTBGR48 (dst_2, py_2, 0)
 PUTBGR48 (dst_2, py_2, 1)
 PUTBGR48 (dst_1, py_1, 1)
 PUTBGR48 (dst_1, py_1, 2)
 PUTBGR48 (dst_2, py_2, 2)
 PUTBGR48 (dst_2, py_2, 3)
 PUTBGR48 (dst_1, py_1, 3)
 PUTRGB (dst_1, py_1, 0)
 PUTRGB (dst_2, py_2, 0)
 PUTRGB (dst_2, py_2, 1)
 PUTRGB (dst_1, py_1, 1)
 PUTRGB (dst_1, py_1, 2)
 PUTRGB (dst_2, py_2, 2)
 PUTRGB (dst_2, py_2, 3)
 PUTRGB (dst_1, py_1, 3)
 PUTRGBA (dst_1, py_1, pa_1, 0, 24)
 PUTRGBA (dst_2, py_2, pa_2, 0, 24)
 PUTRGBA (dst_2, py_2, pa_1, 1, 24)
 PUTRGBA (dst_1, py_1, pa_2, 1, 24)
 PUTRGBA (dst_1, py_1, pa_1, 2, 24)
 PUTRGBA (dst_2, py_2, pa_2, 2, 24)
 PUTRGBA (dst_2, py_2, pa_1, 3, 24)
 PUTRGBA (dst_1, py_1, pa_2, 3, 24)
 PUTRGBA (dst_1, py_1, pa_1, 0, 0)
 PUTRGBA (dst_2, py_2, pa_2, 0, 0)
 PUTRGBA (dst_2, py_2, pa_2, 1, 0)
 PUTRGBA (dst_1, py_1, pa_1, 1, 0)
 PUTRGBA (dst_1, py_1, pa_1, 2, 0)
 PUTRGBA (dst_2, py_2, pa_2, 2, 0)
 PUTRGBA (dst_2, py_2, pa_2, 3, 0)
 PUTRGBA (dst_1, py_1, pa_1, 3, 0)
 PUTRGB24 (dst_1, py_1, 0)
 PUTRGB24 (dst_2, py_2, 0)
 PUTRGB24 (dst_2, py_2, 1)
 PUTRGB24 (dst_1, py_1, 1)
 PUTRGB24 (dst_1, py_1, 2)
 PUTRGB24 (dst_2, py_2, 2)
 PUTRGB24 (dst_2, py_2, 3)
 PUTRGB24 (dst_1, py_1, 3)
 PUTBGR24 (dst_1, py_1, 0)
 PUTBGR24 (dst_2, py_2, 0)
 PUTBGR24 (dst_2, py_2, 1)
 PUTBGR24 (dst_1, py_1, 1)
 PUTBGR24 (dst_1, py_1, 2)
 PUTBGR24 (dst_2, py_2, 2)
 PUTBGR24 (dst_2, py_2, 3)
 PUTBGR24 (dst_1, py_1, 3)
 PUTRGB16 (dst_1, py_1, 0, 0)
 PUTRGB16 (dst_2, py_2, 0, 0+8)
 PUTRGB16 (dst_2, py_2, 1, 2+8)
 PUTRGB16 (dst_1, py_1, 1, 2)
 PUTRGB16 (dst_1, py_1, 2, 4)
 PUTRGB16 (dst_2, py_2, 2, 4+8)
 PUTRGB16 (dst_2, py_2, 3, 6+8)
 PUTRGB16 (dst_1, py_1, 3, 6)
 PUTRGB15 (dst_1, py_1, 0, 0)
 PUTRGB15 (dst_2, py_2, 0, 0+8)
 PUTRGB15 (dst_2, py_2, 1, 2+8)
 PUTRGB15 (dst_1, py_1, 1, 2)
 PUTRGB15 (dst_1, py_1, 2, 4)
 PUTRGB15 (dst_2, py_2, 2, 4+8)
 PUTRGB15 (dst_2, py_2, 3, 6+8)
 PUTRGB15 (dst_1, py_1, 3, 6)
 PUTRGB12 (dst_1, py_1, 0, 0)
 PUTRGB12 (dst_2, py_2, 0, 0+8)
 PUTRGB12 (dst_2, py_2, 1, 2+8)
 PUTRGB12 (dst_1, py_1, 1, 2)
 PUTRGB12 (dst_1, py_1, 2, 4)
 PUTRGB12 (dst_2, py_2, 2, 4+8)
 PUTRGB12 (dst_2, py_2, 3, 6+8)
 PUTRGB12 (dst_1, py_1, 3, 6)
 PUTRGB8 (dst_1, py_1, 0, 0)
 PUTRGB8 (dst_2, py_2, 0, 0+8)
 PUTRGB8 (dst_2, py_2, 1, 2+8)
 PUTRGB8 (dst_1, py_1, 1, 2)
 PUTRGB8 (dst_1, py_1, 2, 4)
 PUTRGB8 (dst_2, py_2, 2, 4+8)
 PUTRGB8 (dst_2, py_2, 3, 6+8)
 PUTRGB8 (dst_1, py_1, 3, 6)
 PUTRGB4D (dst_1, py_1, 0, 0)
 PUTRGB4D (dst_2, py_2, 0, 0+8)
 PUTRGB4D (dst_2, py_2, 1, 2+8)
 PUTRGB4D (dst_1, py_1, 1, 2)
 PUTRGB4D (dst_1, py_1, 2, 4)
 PUTRGB4D (dst_2, py_2, 2, 4+8)
 PUTRGB4D (dst_2, py_2, 3, 6+8)
 PUTRGB4D (dst_1, py_1, 3, 6)
 PUTRGB4DB (dst_1, py_1, 0, 0)
 PUTRGB4DB (dst_2, py_2, 0, 0+8)
 PUTRGB4DB (dst_2, py_2, 1, 2+8)
 PUTRGB4DB (dst_1, py_1, 1, 2)
 PUTRGB4DB (dst_1, py_1, 2, 4)
 PUTRGB4DB (dst_2, py_2, 2, 4+8)
 PUTRGB4DB (dst_2, py_2, 3, 6+8)
 PUTRGB4DB (dst_1, py_1, 3, 6)
 PUTRGB1 (out_1, py_1, 0, 0)
 PUTRGB1 (out_2, py_2, 0, 0+8)
 PUTRGB1 (out_2, py_2, 1, 2+8)
 PUTRGB1 (out_1, py_1, 1, 2)
 PUTRGB1 (out_1, py_1, 2, 4)
 PUTRGB1 (out_2, py_2, 2, 4+8)
 PUTRGB1 (out_2, py_2, 3, 6+8)
 PUTRGB1 (out_1, py_1, 3, 6)
SwsFunc ff_yuv2rgb_get_func_ptr (SwsContext *c)
static void fill_table (uint8_t *table[256+2 *YUVRGB_TABLE_HEADROOM], const int elemsize, const int inc, void *y_tab)
static void fill_gv_table (int table[256+2 *YUVRGB_TABLE_HEADROOM], const int elemsize, const int inc)
static uint16_t roundToInt16 (int64_t f)
av_cold int ff_yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation)

Variables

const uint8_t dither_2x2_4 [2][8]
const uint8_t dither_2x2_8 [2][8]
const uint8_t dither_4x4_16 [4][8]
const uint8_t dither_8x8_32 [8][8]
const uint8_t dither_8x8_73 [8][8]
const uint8_t dither_8x8_220 [8][8]
const int32_t ff_yuv2rgb_coeffs [8][4]
 pa_1 = 8
 pa_2 = 8
const uint8_td16 = dither_2x2_8[y & 1]
const uint8_te16 = dither_2x2_4[y & 1]
const uint8_tf16 = dither_2x2_8[(y & 1)^1]
const uint8_td32 = dither_8x8_32[y & 7]
const uint8_td64 = dither_8x8_73[y & 7]
const uint8_td128 = dither_8x8_220[y & 7]
int acc
char out_1 = 0
char out_2 = 0
 g = c->table_gU[128 + YUVRGB_TABLE_HEADROOM] + c->table_gV[128 + YUVRGB_TABLE_HEADROOM]
 dst_1 [0] = out_1
 dst_2 [0] = out_2


Define Documentation

#define CLOSEYUV2RGBFUNC ( dst_delta   ) 

Value:

ENDYUV2RGBLINE(dst_delta, 0)                    \
    ENDYUV2RGBFUNC()

Definition at line 169 of file yuv2rgb.c.

 
#define ENDYUV2RGBFUNC (  ) 

Value:

}                                       \
        }                                           \
        return srcSliceH;                           \
    }

Definition at line 163 of file yuv2rgb.c.

#define ENDYUV2RGBLINE ( dst_delta,
ss   ) 

Value:

pu    += 4 >> ss;                               \
    pv    += 4 >> ss;                               \
    py_1  += 8 >> ss;                               \
    py_2  += 8 >> ss;                               \
    dst_1 += dst_delta >> ss;                       \
    dst_2 += dst_delta >> ss;                       \
    }                                               \
    if (c->dstW & (4 >> ss)) {                      \
        int av_unused Y, U, V;                      \

Definition at line 152 of file yuv2rgb.c.

#define LOADCHROMA (  ) 

Value:

U = pu[i];                                      \
    V = pv[i];                                      \
    r = (void *)c->table_rV[V+YUVRGB_TABLE_HEADROOM];                     \
    g = (void *)(c->table_gU[U+YUVRGB_TABLE_HEADROOM] + c->table_gV[V+YUVRGB_TABLE_HEADROOM]);  \
    b = (void *)c->table_bU[U+YUVRGB_TABLE_HEADROOM];

Definition at line 63 of file yuv2rgb.c.

#define PUTBGR24 ( dst,
src,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[6 * i + 0] = b[Y];                          \
    dst[6 * i + 1] = g[Y];                          \
    dst[6 * i + 2] = r[Y];                          \
    Y              = src[2 * i + 1];                \
    dst[6 * i + 3] = b[Y];                          \
    dst[6 * i + 4] = g[Y];                          \
    dst[6 * i + 5] = r[Y];

Definition at line 86 of file yuv2rgb.c.

#define PUTBGR48 ( dst,
src,
 ) 

Value:

Y                = src[2 * i];                  \
    dst[12 * i +  0] = dst[12 * i +  1] = b[Y];     \
    dst[12 * i +  2] = dst[12 * i +  3] = g[Y];     \
    dst[12 * i +  4] = dst[12 * i +  5] = r[Y];     \
    Y                = src[2  * i +  1];            \
    dst[12 * i +  6] = dst[12 * i +  7] = b[Y];     \
    dst[12 * i +  8] = dst[12 * i +  9] = g[Y];     \
    dst[12 * i + 10] = dst[12 * i + 11] = r[Y];

Definition at line 112 of file yuv2rgb.c.

#define PUTRGB ( dst,
src,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y] + g[Y] + b[Y];            \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y] + g[Y] + b[Y];

Definition at line 70 of file yuv2rgb.c.

#define PUTRGB1 ( out,
src,
i,
 ) 

Value:

Y    = src[2 * i];                              \
    out += out + g[Y + d128[0 + o]];                \
    Y    = src[2 * i + 1];                          \
    out += out + g[Y + d128[1 + o]];

Definition at line 585 of file yuv2rgb.c.

#define PUTRGB12 ( dst,
src,
i,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y + d16[0 + o]] +            \
                     g[Y + d16[0 + o]] +            \
                     b[Y + d16[0 + o]];             \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y + d16[1 + o]] +            \
                     g[Y + d16[1 + o]] +            \
                     b[Y + d16[1 + o]];

Definition at line 457 of file yuv2rgb.c.

#define PUTRGB15 ( dst,
src,
i,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y + d16[0 + o]] +            \
                     g[Y + d16[1 + o]] +            \
                     b[Y + e16[0 + o]];             \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y + d16[1 + o]] +            \
                     g[Y + d16[0 + o]] +            \
                     b[Y + e16[1 + o]];

Definition at line 427 of file yuv2rgb.c.

#define PUTRGB16 ( dst,
src,
i,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y + d16[0 + o]] +            \
                     g[Y + e16[0 + o]] +            \
                     b[Y + f16[0 + o]];             \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y + d16[1 + o]] +            \
                     g[Y + e16[1 + o]] +            \
                     b[Y + f16[1 + o]];

Definition at line 397 of file yuv2rgb.c.

#define PUTRGB24 ( dst,
src,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[6 * i + 0] = r[Y];                          \
    dst[6 * i + 1] = g[Y];                          \
    dst[6 * i + 2] = b[Y];                          \
    Y              = src[2 * i + 1];                \
    dst[6 * i + 3] = r[Y];                          \
    dst[6 * i + 4] = g[Y];                          \
    dst[6 * i + 5] = b[Y];

Definition at line 76 of file yuv2rgb.c.

#define PUTRGB48 ( dst,
src,
 ) 

Value:

Y                = src[ 2 * i];                 \
    dst[12 * i +  0] = dst[12 * i +  1] = r[Y];     \
    dst[12 * i +  2] = dst[12 * i +  3] = g[Y];     \
    dst[12 * i +  4] = dst[12 * i +  5] = b[Y];     \
    Y                = src[ 2 * i + 1];             \
    dst[12 * i +  6] = dst[12 * i +  7] = r[Y];     \
    dst[12 * i +  8] = dst[12 * i +  9] = g[Y];     \
    dst[12 * i + 10] = dst[12 * i + 11] = b[Y];

Definition at line 102 of file yuv2rgb.c.

#define PUTRGB4D ( dst,
src,
i,
 ) 

Value:

Y      = src[2 * i];                            \
    acc    = r[Y + d128[0 + o]] +                   \
             g[Y +  d64[0 + o]] +                   \
             b[Y + d128[0 + o]];                    \
    Y      = src[2 * i + 1];                        \
    acc   |= (r[Y + d128[1 + o]] +                  \
              g[Y +  d64[1 + o]] +                  \
              b[Y + d128[1 + o]]) << 4;             \
    dst[i] = acc;

Definition at line 521 of file yuv2rgb.c.

#define PUTRGB4DB ( dst,
src,
i,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y + d128[0 + o]] +           \
                     g[Y +  d64[0 + o]] +           \
                     b[Y + d128[0 + o]];            \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y + d128[1 + o]] +           \
                     g[Y +  d64[1 + o]] +           \
                     b[Y + d128[1 + o]];

Definition at line 553 of file yuv2rgb.c.

#define PUTRGB8 ( dst,
src,
i,
 ) 

Value:

Y              = src[2 * i];                    \
    dst[2 * i]     = r[Y + d32[0 + o]] +            \
                     g[Y + d32[0 + o]] +            \
                     b[Y + d64[0 + o]];             \
    Y              = src[2 * i + 1];                \
    dst[2 * i + 1] = r[Y + d32[1 + o]] +            \
                     g[Y + d32[1 + o]] +            \
                     b[Y + d64[1 + o]];

Definition at line 489 of file yuv2rgb.c.

#define PUTRGBA ( dst,
ysrc,
asrc,
i,
 ) 

Value:

Y              = ysrc[2 * i];                                       \
    dst[2 * i]     = r[Y] + g[Y] + b[Y] + (asrc[2 * i]     << s);       \
    Y              = ysrc[2 * i + 1];                                   \
    dst[2 * i + 1] = r[Y] + g[Y] + b[Y] + (asrc[2 * i + 1] << s);

Definition at line 96 of file yuv2rgb.c.

#define YUV2RGBFUNC ( func_name,
dst_type,
alpha   ) 

Value:

static int func_name(SwsContext *c, const uint8_t *src[],               \
                         int srcStride[], int srcSliceY, int srcSliceH,     \
                         uint8_t *dst[], int dstStride[])                   \
    {                                                                       \
        int y;                                                              \
                                                                            \
        if (!alpha && c->srcFormat == PIX_FMT_YUV422P) {                    \
            srcStride[1] *= 2;                                              \
            srcStride[2] *= 2;                                              \
        }                                                                   \
        for (y = 0; y < srcSliceH; y += 2) {                                \
            dst_type *dst_1 =                                               \
                (dst_type *)(dst[0] + (y + srcSliceY)     * dstStride[0]);  \
            dst_type *dst_2 =                                               \
                (dst_type *)(dst[0] + (y + srcSliceY + 1) * dstStride[0]);  \
            dst_type av_unused *r, *g, *b;                                  \
            const uint8_t *py_1 = src[0] +  y       * srcStride[0];         \
            const uint8_t *py_2 = py_1   +            srcStride[0];         \
            const uint8_t *pu   = src[1] + (y >> 1) * srcStride[1];         \
            const uint8_t *pv   = src[2] + (y >> 1) * srcStride[2];         \
            const uint8_t av_unused *pa_1, *pa_2;                           \
            unsigned int h_size = c->dstW >> 3;                             \
            if (alpha) {                                                    \
                pa_1 = src[3] + y * srcStride[3];                           \
                pa_2 = pa_1   +     srcStride[3];                           \
            }                                                               \
            while (h_size--) {                                              \
                int av_unused U, V, Y;                                      \

Definition at line 122 of file yuv2rgb.c.


Function Documentation

av_cold int ff_yuv2rgb_c_init_tables ( SwsContext c,
const int  inv_table[4],
int  fullRange,
int  brightness,
int  contrast,
int  saturation 
)

Definition at line 706 of file yuv2rgb.c.

Referenced by sws_setColorspaceDetails().

SwsFunc ff_yuv2rgb_get_func_ptr ( SwsContext c  ) 

Definition at line 607 of file yuv2rgb.c.

Referenced by ff_get_unscaled_swscale().

static void fill_gv_table ( int  table[256+2 *YUVRGB_TABLE_HEADROOM],
const int  elemsize,
const int  inc 
) [static]

Definition at line 683 of file yuv2rgb.c.

Referenced by ff_yuv2rgb_c_init_tables().

static void fill_table ( uint8_t table[256+2 *YUVRGB_TABLE_HEADROOM],
const int  elemsize,
const int  inc,
void *  y_tab 
) [static]

Definition at line 669 of file yuv2rgb.c.

Referenced by ff_yuv2rgb_c_init_tables().

LOADCHROMA (  ) 

LOADCHROMA (  ) 

LOADCHROMA (  ) 

LOADCHROMA (  ) 

PUTBGR24 ( dst_1  ,
py_1  ,
 
)

PUTBGR24 ( dst_2  ,
py_2  ,
 
)

PUTBGR24 ( dst_2  ,
py_2  ,
 
)

PUTBGR24 ( dst_1  ,
py_1  ,
 
)

PUTBGR24 ( dst_1  ,
py_1  ,
 
)

PUTBGR24 ( dst_2  ,
py_2  ,
 
)

PUTBGR24 ( dst_2  ,
py_2  ,
 
)

PUTBGR24 ( dst_1  ,
py_1  ,
 
)

PUTBGR48 ( dst_1  ,
py_1  ,
 
)

PUTBGR48 ( dst_2  ,
py_2  ,
 
)

PUTBGR48 ( dst_2  ,
py_2  ,
 
)

PUTBGR48 ( dst_1  ,
py_1  ,
 
)

PUTBGR48 ( dst_1  ,
py_1  ,
 
)

PUTBGR48 ( dst_2  ,
py_2  ,
 
)

PUTBGR48 ( dst_2  ,
py_2  ,
 
)

PUTBGR48 ( dst_1  ,
py_1  ,
 
)

PUTRGB ( dst_1  ,
py_1  ,
 
)

PUTRGB ( dst_2  ,
py_2  ,
 
)

PUTRGB ( dst_2  ,
py_2  ,
 
)

PUTRGB ( dst_1  ,
py_1  ,
 
)

PUTRGB ( dst_1  ,
py_1  ,
 
)

PUTRGB ( dst_2  ,
py_2  ,
 
)

PUTRGB ( dst_2  ,
py_2  ,
 
)

PUTRGB ( dst_1  ,
py_1  ,
 
)

PUTRGB1 ( out_1  ,
py_1  ,
,
 
)

PUTRGB1 ( out_2  ,
py_2  ,
,
6+  8 
)

PUTRGB1 ( out_2  ,
py_2  ,
,
4+  8 
)

PUTRGB1 ( out_1  ,
py_1  ,
,
 
)

PUTRGB1 ( out_1  ,
py_1  ,
,
 
)

PUTRGB1 ( out_2  ,
py_2  ,
,
2+  8 
)

PUTRGB1 ( out_2  ,
py_2  ,
,
0+  8 
)

PUTRGB1 ( out_1  ,
py_1  ,
,
 
)

PUTRGB12 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB12 ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB12 ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB12 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB12 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB12 ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB12 ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB12 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB15 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB15 ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB15 ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB15 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB15 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB15 ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB15 ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB15 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB16 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB16 ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB16 ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB16 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB16 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB16 ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB16 ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB16 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB24 ( dst_1  ,
py_1  ,
 
)

PUTRGB24 ( dst_2  ,
py_2  ,
 
)

PUTRGB24 ( dst_2  ,
py_2  ,
 
)

PUTRGB24 ( dst_1  ,
py_1  ,
 
)

PUTRGB24 ( dst_1  ,
py_1  ,
 
)

PUTRGB24 ( dst_2  ,
py_2  ,
 
)

PUTRGB24 ( dst_2  ,
py_2  ,
 
)

PUTRGB24 ( dst_1  ,
py_1  ,
 
)

PUTRGB48 ( dst_1  ,
py_1  ,
 
)

PUTRGB48 ( dst_2  ,
py_2  ,
 
)

PUTRGB48 ( dst_2  ,
py_2  ,
 
)

PUTRGB48 ( dst_1  ,
py_1  ,
 
)

PUTRGB48 ( dst_1  ,
py_1  ,
 
)

PUTRGB48 ( dst_2  ,
py_2  ,
 
)

PUTRGB48 ( dst_2  ,
py_2  ,
 
)

PUTRGB48 ( dst_1  ,
py_1  ,
 
)

PUTRGB4D ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4D ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB4D ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB4D ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4D ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4D ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB4D ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB4D ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4DB ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4DB ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB4DB ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB4DB ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4DB ( dst_1  ,
py_1  ,
,
 
)

PUTRGB4DB ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB4DB ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB4DB ( dst_1  ,
py_1  ,
,
 
)

PUTRGB8 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB8 ( dst_2  ,
py_2  ,
,
6+  8 
)

PUTRGB8 ( dst_2  ,
py_2  ,
,
4+  8 
)

PUTRGB8 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB8 ( dst_1  ,
py_1  ,
,
 
)

PUTRGB8 ( dst_2  ,
py_2  ,
,
2+  8 
)

PUTRGB8 ( dst_2  ,
py_2  ,
,
0+  8 
)

PUTRGB8 ( dst_1  ,
py_1  ,
,
 
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
 
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
 
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
 
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
 
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
 
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
 
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
 
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
 
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_2  ,
,
24   
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_1  ,
,
24   
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
24   
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
24   
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_2  ,
,
24   
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_1  ,
,
24   
)

PUTRGBA ( dst_2  ,
py_2  ,
pa_2  ,
,
24   
)

PUTRGBA ( dst_1  ,
py_1  ,
pa_1  ,
,
24   
)

static uint16_t roundToInt16 ( int64_t  f  )  [static]

Definition at line 694 of file yuv2rgb.c.

Referenced by ff_yuv2rgb_c_init_tables().

const int* sws_getCoefficients ( int  colorspace  ) 

Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().

Parameters:
colorspace One of the SWS_CS_* macros. If invalid, SWS_CS_DEFAULT is used.

Definition at line 56 of file yuv2rgb.c.


Variable Documentation

const uint8_t * d128 = dither_8x8_220[y & 7]

const uint8_t * d16 = dither_2x2_8[y & 1]

Definition at line 393 of file yuv2rgb.c.

const uint8_t* d32 = dither_8x8_32[y & 7]

Definition at line 486 of file yuv2rgb.c.

Referenced by av_image_copy_to_buffer(), and yuv2rgb_write().

const uint8_t * d64 = dither_8x8_73[y & 7]

Definition at line 487 of file yuv2rgb.c.

Referenced by yuv2rgb_write().

const uint8_t dither_2x2_4[2][8]

Definition at line 40 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t dither_2x2_8[2][8]

Definition at line 46 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t dither_4x4_16[4][8]

Definition at line 52 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t dither_8x8_220[8][8]

const uint8_t dither_8x8_32[8][8]

Definition at line 60 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t dither_8x8_73[8][8]

Definition at line 72 of file output.c.

Referenced by yuv2rgb_write().

dst_1[0] = out_1

Definition at line 603 of file yuv2rgb.c.

dst_2[0] = out_2

Definition at line 604 of file yuv2rgb.c.

const uint8_t * e16 = dither_2x2_4[y & 1]

Definition at line 394 of file yuv2rgb.c.

const uint8_t* f16 = dither_2x2_8[(y & 1)^1]

Definition at line 395 of file yuv2rgb.c.

const int32_t ff_yuv2rgb_coeffs[8][4]

Initial value:

 {
    { 117504, 138453, 13954, 34903 }, 
    { 117504, 138453, 13954, 34903 }, 
    { 104597, 132201, 25675, 53279 }, 
    { 104597, 132201, 25675, 53279 }, 
    { 104448, 132798, 24759, 53109 }, 
    { 104597, 132201, 25675, 53279 }, 
    { 104597, 132201, 25675, 53279 }, 
    { 117579, 136230, 16907, 35559 }  
}

Definition at line 45 of file yuv2rgb.c.

Referenced by sws_getCachedContext(), sws_getCoefficients(), and sws_getContext().

g = c->table_gU[128 + YUVRGB_TABLE_HEADROOM] + c->table_gV[128 + YUVRGB_TABLE_HEADROOM]

Definition at line 583 of file yuv2rgb.c.

Referenced by aac_encode_frame(), add_hfyu_left_prediction_bgr32_c(), adjust_frame_information(), apply_dependent_coupling(), apply_intensity_stereo(), apply_mid_side_stereo(), avcodec_string(), bfi_decode_frame(), bgr24ToUV_c(), bgr24ToUV_half_c(), bgr24ToY_c(), cdg_load_palette(), cdxl_decode_ham6(), cdxl_decode_ham8(), create_lut(), dct_quantize_refine(), decode_band_types(), decode_cce(), decode_frame(), decode_hybrid(), decode_pal(), decode_scalefactors(), decode_spectrum_and_dequant(), dump_stream_format(), dvbsub_init_decoder(), dvbsub_parse_clut_segment(), encode_dvb_subtitles(), encode_frame(), ff_mov_read_stsd_entries(), ff_set_systematic_pal2(), find_best_vect(), flic_decode_frame_8BPP(), gbr24pToUV_half_c(), gen_image(), generate_joint_tables(), get_match_score(), guess_palette(), idcin_read_packet(), import_palette(), initPv(), lag_decode_frame(), mangle_rgb_planes(), mp_decode_layer3(), mp_yuv_to_rgb(), paf_vid_decode(), paint_mouse_pointer(), parse_chunks(), parse_palette_segment(), planar_rgb16_to_uv(), planar_rgb16_to_y(), planar_rgb_to_uv(), planar_rgb_to_y(), png_filter_row(), process_ipmovie_chunk(), psy_3gpp_analyze_channel(), psy_3gpp_init(), put_image(), qtrle_decode_24bpp(), ra144_encode_subblock(), restore_rgb_planes(), rgb12to15(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24_to_yuv420p(), rgb24to15_c(), rgb24to15_TMPL(), rgb24to16_c(), rgb24to16_TMPL(), rgb24tobgr15_c(), rgb24tobgr15_TMPL(), rgb24tobgr16_c(), rgb24tobgr16_TMPL(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24ToY_c(), rgb24toyv12_c(), rgb48funcs(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb64funcs(), rgb64ToUV_c_template(), rgb64ToUV_half_c_template(), rgb64ToY_c_template(), sbr_hf_gen(), search_for_ms(), search_for_quantizers_anmr(), search_for_quantizers_faac(), search_for_quantizers_fast(), search_for_quantizers_twoloop(), set_palette(), sha256_transform(), shuffle_bytes_2103_c(), shuffle_bytes_2103_TMPL(), sub_left_prediction_bgr32(), sub_left_prediction_rgb24(), subtitle_thread(), sws_scale(), update_palette_index(), vb_decode_framedata(), vmd_decode(), vmdvideo_decode_init(), vqa_decode_chunk(), write_stream_codec_info(), xan_decode_frame(), yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), yuv2rgb_write(), yuv2rgb_X_c_template(), and yuv_a_to_rgba().

char out_1 = 0

Definition at line 582 of file yuv2rgb.c.

char out_2 = 0

Definition at line 582 of file yuv2rgb.c.

pa_1 = 8

Definition at line 279 of file yuv2rgb.c.

pa_2 = 8

Definition at line 280 of file yuv2rgb.c.


Generated on Fri Oct 26 02:50:13 2012 for FFmpeg by  doxygen 1.5.8