FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
output.c File Reference
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avutil.h"
#include "libavutil/avassert.h"
#include "libavutil/bswap.h"
#include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "config.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"

Go to the source code of this file.

Macros

#define output_pixel(pos, val, bias, signedness)
 
#define output_pixel(pos, val)
 
#define yuv2NBPS(bits, BE_LE, is_be, template_size, typeX_t)
 
#define output_pixel(pos, val)
 
#define accumulate_bit(acc, val)
 
#define output_pixel(pos, acc)
 
#define YUV2PACKEDWRAPPER(name, base, ext, fmt)
 
#define output_pixels(pos, Y1, U, Y2, V)
 
#define R_B   ((target == AV_PIX_FMT_RGB48LE || target == AV_PIX_FMT_RGB48BE || target == AV_PIX_FMT_RGBA64LE || target == AV_PIX_FMT_RGBA64BE) ? R : B)
 
#define B_R   ((target == AV_PIX_FMT_RGB48LE || target == AV_PIX_FMT_RGB48BE || target == AV_PIX_FMT_RGBA64LE || target == AV_PIX_FMT_RGBA64BE) ? B : R)
 
#define output_pixel(pos, val)
 
#define YUV2PACKED16WRAPPER(name, base, ext, fmt, hasAlpha, eightbytes)
 
#define r_b   ((target == AV_PIX_FMT_RGB24) ? r : b)
 
#define b_r   ((target == AV_PIX_FMT_RGB24) ? b : r)
 
#define YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha)
 
#define YUV2RGBWRAPPERX2(name, base, ext, fmt, hasAlpha)
 
#define YUV2RGBWRAPPER(name, base, ext, fmt, hasAlpha)
 
#define A_DITHER(u, v)   (((((u)+((v)*236))*119)&0xff))
 
#define X_DITHER(u, v)   (((((u)^((v)*237))*181)&0x1ff)/2)
 

Functions

static av_always_inline void yuv2plane1_16_c_template (const int32_t *src, uint16_t *dest, int dstW, int big_endian, int output_bits)
 
static av_always_inline void yuv2planeX_16_c_template (const int16_t *filter, int filterSize, const int32_t **src, uint16_t *dest, int dstW, int big_endian, int output_bits)
 
static void yuv2p016cX_c (SwsContext *c, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW)
 
static av_always_inline void yuv2plane1_10_c_template (const int16_t *src, uint16_t *dest, int dstW, int big_endian, int output_bits)
 
static av_always_inline void yuv2planeX_10_c_template (const int16_t *filter, int filterSize, const int16_t **src, uint16_t *dest, int dstW, int big_endian, int output_bits)
 
 yuv2NBPS (yuv2NBPS(9, yuv2NBPS(BE, yuv2NBPS(1, yuv2NBPS(10, int16_t)
 
static void yuv2plane1_8_c (const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2nv12cX_c (SwsContext *c, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest, int chrDstW)
 
static void yuv2p010l1_c (const int16_t *src, uint16_t *dest, int dstW, int big_endian)
 
static void yuv2p010lX_c (const int16_t *filter, int filterSize, const int16_t **src, uint16_t *dest, int dstW, int big_endian)
 
static void yuv2p010cX_c (SwsContext *c, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW)
 
static void yuv2p010l1_LE_c (const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2p010l1_BE_c (const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2p010lX_LE_c (const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2p010lX_BE_c (const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static av_always_inline void yuv2mono_X_c_template (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, enum AVPixelFormat target)
 
static av_always_inline void yuv2mono_2_c_template (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target)
 
static av_always_inline void yuv2mono_1_c_template (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target)
 
static av_always_inline void yuv2422_X_c_template (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, enum AVPixelFormat target)
 
static av_always_inline void yuv2422_2_c_template (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target)
 
static av_always_inline void yuv2422_1_c_template (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target)
 
static av_always_inline void yuv2rgba64_X_c_template (SwsContext *c, const int16_t *lumFilter, const int32_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int32_t **chrUSrc, const int32_t **chrVSrc, int chrFilterSize, const int32_t **alpSrc, uint16_t *dest, int dstW, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgba64_2_c_template (SwsContext *c, const int32_t *buf[2], const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgba64_1_c_template (SwsContext *c, const int32_t *buf0, const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf0, uint16_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgba64_full_X_c_template (SwsContext *c, const int16_t *lumFilter, const int32_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int32_t **chrUSrc, const int32_t **chrVSrc, int chrFilterSize, const int32_t **alpSrc, uint16_t *dest, int dstW, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgba64_full_2_c_template (SwsContext *c, const int32_t *buf[2], const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgba64_full_1_c_template (SwsContext *c, const int32_t *buf0, const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf0, uint16_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes)
 
static av_always_inline void yuv2rgb_write (uint8_t *_dest, int i, int Y1, int Y2, unsigned A1, unsigned A2, const void *_r, const void *_g, const void *_b, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_X_c_template (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, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_2_c_template (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_1_c_template (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_write_full (SwsContext *c, uint8_t *dest, int i, int Y, int A, int U, int V, int y, enum AVPixelFormat target, int hasAlpha, int err[4])
 
static av_always_inline void yuv2rgb_full_X_c_template (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, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_full_2_c_template (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_full_1_c_template (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y, enum AVPixelFormat target, int hasAlpha)
 
static void yuv2gbrp_full_X_c (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)
 
static void yuv2gbrp16_full_X_c (SwsContext *c, const int16_t *lumFilter, const int16_t **lumSrcx, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrcx, const int16_t **chrVSrcx, int chrFilterSize, const int16_t **alpSrcx, uint8_t **dest, int dstW, int y)
 
static void yuv2ya8_1_c (SwsContext *c, const int16_t *buf0, const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf0, uint8_t *dest, int dstW, int uvalpha, int y)
 
static void yuv2ya8_2_c (SwsContext *c, const int16_t *buf[2], const int16_t *ubuf[2], const int16_t *vbuf[2], const int16_t *abuf[2], uint8_t *dest, int dstW, int yalpha, int uvalpha, int y)
 
static void yuv2ya8_X_c (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)
 
static void yuv2ayuv64le_X_c (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)
 
av_cold 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)
 

Variables

const uint8_t ff_dither_2x2_4 [][8]
 
const uint8_t ff_dither_2x2_8 [][8]
 
const uint8_t ff_dither_4x4_16 [][8]
 
const uint8_t ff_dither_8x8_32 [][8]
 
const uint8_t ff_dither_8x8_73 [][8]
 
const uint8_t ff_dither_8x8_220 [][8]
 

Macro Definition Documentation

#define output_pixel (   pos,
  val,
  bias,
  signedness 
)
Value:
if (big_endian) { \
AV_WB16(pos, bias + av_clip_ ## signedness ## 16(val >> shift)); \
} else { \
AV_WL16(pos, bias + av_clip_ ## signedness ## 16(val >> shift)); \
}
const char const char void * val
Definition: avisynth_c.h:771
static int shift(int a, int b)
Definition: sonic.c:82
#define AV_WB16(p, v)
Definition: intreadwrite.h:405
#define AV_WL16(p, v)
Definition: intreadwrite.h:412

Definition at line 797 of file output.c.

Referenced by yuv2mono_1_c_template(), yuv2mono_2_c_template(), yuv2mono_X_c_template(), yuv2p010cX_c(), yuv2p010l1_c(), yuv2p010lX_c(), yuv2p016cX_c(), yuv2plane1_10_c_template(), yuv2plane1_16_c_template(), yuv2planeX_10_c_template(), yuv2planeX_16_c_template(), yuv2rgba64_1_c_template(), yuv2rgba64_2_c_template(), yuv2rgba64_full_1_c_template(), yuv2rgba64_full_2_c_template(), yuv2rgba64_full_X_c_template(), and yuv2rgba64_X_c_template().

#define output_pixel (   pos,
  val 
)
Value:
if (big_endian) { \
AV_WB16(pos, av_clip_uintp2(val >> shift, output_bits)); \
} else { \
AV_WL16(pos, av_clip_uintp2(val >> shift, output_bits)); \
}
const char const char void * val
Definition: avisynth_c.h:771
static int shift(int a, int b)
Definition: sonic.c:82
#define AV_WB16(p, v)
Definition: intreadwrite.h:405
#define AV_WL16(p, v)
Definition: intreadwrite.h:412

Definition at line 797 of file output.c.

#define yuv2NBPS (   bits,
  BE_LE,
  is_be,
  template_size,
  typeX_t 
)
Value:
static void yuv2plane1_ ## bits ## BE_LE ## _c(const int16_t *src, \
uint8_t *dest, int dstW, \
const uint8_t *dither, int offset)\
{ \
yuv2plane1_ ## template_size ## _c_template((const typeX_t *) src, \
(uint16_t *) dest, dstW, is_be, bits); \
}\
static void yuv2planeX_ ## bits ## BE_LE ## _c(const int16_t *filter, int filterSize, \
const int16_t **src, uint8_t *dest, int dstW, \
const uint8_t *dither, int offset)\
{ \
yuv2planeX_## template_size ## _c_template(filter, \
filterSize, (const typeX_t **) src, \
(uint16_t *) dest, dstW, is_be, bits); \
}
#define src
Definition: vp8dsp.c:254
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
Definition: cfhd.c:114
uint8_t
static const uint8_t dither[8][8]
Definition: vf_fspp.c:57
static const uint8_t offset[127][2]
Definition: vf_spp.c:92

Definition at line 254 of file output.c.

#define output_pixel (   pos,
  val 
)
Value:
if (big_endian) { \
AV_WB16(pos, av_clip_uintp2(val >> shift, 10) << 6); \
} else { \
AV_WL16(pos, av_clip_uintp2(val >> shift, 10) << 6); \
}
const char const char void * val
Definition: avisynth_c.h:771
static int shift(int a, int b)
Definition: sonic.c:82
#define AV_WB16(p, v)
Definition: intreadwrite.h:405
#define AV_WL16(p, v)
Definition: intreadwrite.h:412

Definition at line 797 of file output.c.

#define accumulate_bit (   acc,
  val 
)
Value:
acc <<= 1; \
acc |= (val) >= 234
const char const char void * val
Definition: avisynth_c.h:771
int acc
Definition: yuv2rgb.c:554

Definition at line 434 of file output.c.

Referenced by yuv2mono_1_c_template(), yuv2mono_2_c_template(), and yuv2mono_X_c_template().

#define output_pixel (   pos,
  acc 
)
Value:
if (target == AV_PIX_FMT_MONOBLACK) { \
pos = acc; \
} else { \
pos = ~acc; \
}
int acc
Definition: yuv2rgb.c:554
Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb...
Definition: pixfmt.h:72

Definition at line 797 of file output.c.

#define YUV2PACKEDWRAPPER (   name,
  base,
  ext,
  fmt 
)
Value:
static void name ## ext ## _X_c(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) \
{ \
name ## base ## _X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, fmt); \
} \
\
static void name ## ext ## _2_c(SwsContext *c, const int16_t *buf[2], \
const int16_t *ubuf[2], const int16_t *vbuf[2], \
const int16_t *abuf[2], uint8_t *dest, int dstW, \
int yalpha, int uvalpha, int y) \
{ \
name ## base ## _2_c_template(c, buf, ubuf, vbuf, abuf, \
dest, dstW, yalpha, uvalpha, y, fmt); \
} \
\
static void name ## ext ## _1_c(SwsContext *c, const int16_t *buf0, \
const int16_t *ubuf[2], const int16_t *vbuf[2], \
const int16_t *abuf0, uint8_t *dest, int dstW, \
int uvalpha, int y) \
{ \
name ## base ## _1_c_template(c, buf0, ubuf, vbuf, \
abuf0, dest, dstW, uvalpha, \
y, fmt); \
}
const char * fmt
Definition: avisynth_c.h:769
uint8_t
void * buf
Definition: avisynth_c.h:690
static double c[64]
const char * name
Definition: opengl_enc.c:103

Definition at line 609 of file output.c.

#define output_pixels (   pos,
  Y1,
  U,
  Y2,
  V 
)
Value:
if (target == AV_PIX_FMT_YUYV422) { \
dest[pos + 0] = Y1; \
dest[pos + 1] = U; \
dest[pos + 2] = Y2; \
dest[pos + 3] = V; \
} else if (target == AV_PIX_FMT_YVYU422) { \
dest[pos + 0] = Y1; \
dest[pos + 1] = V; \
dest[pos + 2] = Y2; \
dest[pos + 3] = U; \
} else { /* AV_PIX_FMT_UYVY422 */ \
dest[pos + 0] = U; \
dest[pos + 1] = Y1; \
dest[pos + 2] = V; \
dest[pos + 3] = Y2; \
}
#define U(x)
Definition: vp56_arith.h:37
packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb
Definition: pixfmt.h:206
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: pixfmt.h:63
#define V
Definition: avdct.c:30

Definition at line 644 of file output.c.

Referenced by yuv2422_1_c_template(), yuv2422_2_c_template(), and yuv2422_X_c_template().

#define R_B   ((target == AV_PIX_FMT_RGB48LE || target == AV_PIX_FMT_RGB48BE || target == AV_PIX_FMT_RGBA64LE || target == AV_PIX_FMT_RGBA64BE) ? R : B)
#define B_R   ((target == AV_PIX_FMT_RGB48LE || target == AV_PIX_FMT_RGB48BE || target == AV_PIX_FMT_RGBA64LE || target == AV_PIX_FMT_RGBA64BE) ? B : R)
#define output_pixel (   pos,
  val 
)
Value:
if (isBE(target)) { \
AV_WB16(pos, val); \
} else { \
AV_WL16(pos, val); \
}
const char const char void * val
Definition: avisynth_c.h:771
#define AV_WB16(p, v)
Definition: intreadwrite.h:405
static av_always_inline int isBE(enum AVPixelFormat pix_fmt)
#define AV_WL16(p, v)
Definition: intreadwrite.h:412

Definition at line 797 of file output.c.

#define YUV2PACKED16WRAPPER (   name,
  base,
  ext,
  fmt,
  hasAlpha,
  eightbytes 
)

Definition at line 1251 of file output.c.

#define r_b   ((target == AV_PIX_FMT_RGB24) ? r : b)
#define b_r   ((target == AV_PIX_FMT_RGB24) ? b : r)
#define YUV2RGBWRAPPERX (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
static void name ## ext ## _X_c(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) \
{ \
name ## base ## _X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, fmt, hasAlpha); \
}
const char * fmt
Definition: avisynth_c.h:769
uint8_t
static double c[64]
const char * name
Definition: opengl_enc.c:103

Definition at line 1600 of file output.c.

#define YUV2RGBWRAPPERX2 (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha) \
static void name ## ext ## _2_c(SwsContext *c, const int16_t *buf[2], \
const int16_t *ubuf[2], const int16_t *vbuf[2], \
const int16_t *abuf[2], uint8_t *dest, int dstW, \
int yalpha, int uvalpha, int y) \
{ \
name ## base ## _2_c_template(c, buf, ubuf, vbuf, abuf, \
dest, dstW, yalpha, uvalpha, y, fmt, hasAlpha); \
}
const char * fmt
Definition: avisynth_c.h:769
#define YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha)
Definition: output.c:1600
uint8_t
void * buf
Definition: avisynth_c.h:690
static double c[64]
const char * name
Definition: opengl_enc.c:103

Definition at line 1613 of file output.c.

#define YUV2RGBWRAPPER (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
YUV2RGBWRAPPERX2(name, base, ext, fmt, hasAlpha) \
static void name ## ext ## _1_c(SwsContext *c, const int16_t *buf0, \
const int16_t *ubuf[2], const int16_t *vbuf[2], \
const int16_t *abuf0, uint8_t *dest, int dstW, \
int uvalpha, int y) \
{ \
name ## base ## _1_c_template(c, buf0, ubuf, vbuf, abuf0, dest, \
dstW, uvalpha, y, fmt, hasAlpha); \
}
#define YUV2RGBWRAPPERX2(name, base, ext, fmt, hasAlpha)
Definition: output.c:1613
const char * fmt
Definition: avisynth_c.h:769
uint8_t
static double c[64]
const char * name
Definition: opengl_enc.c:103

Definition at line 1624 of file output.c.

#define A_DITHER (   u,
 
)    (((((u)+((v)*236))*119)&0xff))

Referenced by yuv2rgb_write_full().

#define X_DITHER (   u,
 
)    (((((u)^((v)*237))*181)&0x1ff)/2)

Referenced by yuv2rgb_write_full().

Function Documentation

static av_always_inline void yuv2plane1_16_c_template ( const int32_t src,
uint16_t *  dest,
int  dstW,
int  big_endian,
int  output_bits 
)
static

Definition at line 144 of file output.c.

static av_always_inline void yuv2planeX_16_c_template ( const int16_t *  filter,
int  filterSize,
const int32_t **  src,
uint16_t *  dest,
int  dstW,
int  big_endian,
int  output_bits 
)
static

Definition at line 158 of file output.c.

static void yuv2p016cX_c ( SwsContext c,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t dest8,
int  chrDstW 
)
static

Definition at line 183 of file output.c.

Referenced by ff_sws_init_output_funcs().

static av_always_inline void yuv2plane1_10_c_template ( const int16_t *  src,
uint16_t *  dest,
int  dstW,
int  big_endian,
int  output_bits 
)
static

Definition at line 221 of file output.c.

static av_always_inline void yuv2planeX_10_c_template ( const int16_t *  filter,
int  filterSize,
const int16_t **  src,
uint16_t *  dest,
int  dstW,
int  big_endian,
int  output_bits 
)
static

Definition at line 234 of file output.c.

yuv2NBPS ( yuv2NBPS(  9,
yuv2NBPS(  BE,
yuv2NBPS(  1,
yuv2NBPS(  10,
int16_t   
)

Definition at line 270 of file output.c.

static void yuv2plane1_8_c ( const int16_t *  src,
uint8_t dest,
int  dstW,
const uint8_t dither,
int  offset 
)
static

Definition at line 296 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2nv12cX_c ( SwsContext c,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t dest,
int  chrDstW 
)
static

Definition at line 306 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2p010l1_c ( const int16_t *  src,
uint16_t *  dest,
int  dstW,
int  big_endian 
)
static

Definition at line 350 of file output.c.

Referenced by yuv2p010l1_BE_c(), and yuv2p010l1_LE_c().

static void yuv2p010lX_c ( const int16_t *  filter,
int  filterSize,
const int16_t **  src,
uint16_t *  dest,
int  dstW,
int  big_endian 
)
static

Definition at line 363 of file output.c.

Referenced by yuv2p010lX_BE_c(), and yuv2p010lX_LE_c().

static void yuv2p010cX_c ( SwsContext c,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t dest8,
int  chrDstW 
)
static

Definition at line 380 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2p010l1_LE_c ( const int16_t *  src,
uint8_t dest,
int  dstW,
const uint8_t dither,
int  offset 
)
static

Definition at line 403 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2p010l1_BE_c ( const int16_t *  src,
uint8_t dest,
int  dstW,
const uint8_t dither,
int  offset 
)
static

Definition at line 410 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2p010lX_LE_c ( const int16_t *  filter,
int  filterSize,
const int16_t **  src,
uint8_t dest,
int  dstW,
const uint8_t dither,
int  offset 
)
static

Definition at line 417 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2p010lX_BE_c ( const int16_t *  filter,
int  filterSize,
const int16_t **  src,
uint8_t dest,
int  dstW,
const uint8_t dither,
int  offset 
)
static

Definition at line 424 of file output.c.

Referenced by ff_sws_init_output_funcs().

static av_always_inline void yuv2mono_X_c_template ( 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,
enum AVPixelFormat  target 
)
static

Definition at line 445 of file output.c.

static av_always_inline void yuv2mono_2_c_template ( SwsContext c,
const int16_t *  buf[2],
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf[2],
uint8_t dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 498 of file output.c.

static av_always_inline void yuv2mono_1_c_template ( SwsContext c,
const int16_t *  buf0,
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf0,
uint8_t dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 559 of file output.c.

static av_always_inline void yuv2422_X_c_template ( 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,
enum AVPixelFormat  target 
)
static

Definition at line 663 of file output.c.

static av_always_inline void yuv2422_2_c_template ( SwsContext c,
const int16_t *  buf[2],
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf[2],
uint8_t dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 702 of file output.c.

static av_always_inline void yuv2422_1_c_template ( SwsContext c,
const int16_t *  buf0,
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf0,
uint8_t dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 735 of file output.c.

static av_always_inline void yuv2rgba64_X_c_template ( SwsContext c,
const int16_t *  lumFilter,
const int32_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int32_t **  chrUSrc,
const int32_t **  chrVSrc,
int  chrFilterSize,
const int32_t **  alpSrc,
uint16_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 805 of file output.c.

static av_always_inline void yuv2rgba64_2_c_template ( SwsContext c,
const int32_t buf[2],
const int32_t ubuf[2],
const int32_t vbuf[2],
const int32_t abuf[2],
uint16_t *  dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 887 of file output.c.

static av_always_inline void yuv2rgba64_1_c_template ( SwsContext c,
const int32_t buf0,
const int32_t ubuf[2],
const int32_t vbuf[2],
const int32_t abuf0,
uint16_t *  dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 952 of file output.c.

static av_always_inline void yuv2rgba64_full_X_c_template ( SwsContext c,
const int16_t *  lumFilter,
const int32_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int32_t **  chrUSrc,
const int32_t **  chrVSrc,
int  chrFilterSize,
const int32_t **  alpSrc,
uint16_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 1055 of file output.c.

static av_always_inline void yuv2rgba64_full_2_c_template ( SwsContext c,
const int32_t buf[2],
const int32_t ubuf[2],
const int32_t vbuf[2],
const int32_t abuf[2],
uint16_t *  dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 1119 of file output.c.

static av_always_inline void yuv2rgba64_full_1_c_template ( SwsContext c,
const int32_t buf0,
const int32_t ubuf[2],
const int32_t vbuf[2],
const int32_t abuf0,
uint16_t *  dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  eightbytes 
)
static

Definition at line 1171 of file output.c.

static av_always_inline void yuv2rgb_write ( uint8_t _dest,
int  i,
int  Y1,
int  Y2,
unsigned  A1,
unsigned  A2,
const void _r,
const void _g,
const void _b,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1332 of file output.c.

Referenced by yuv2rgb_1_c_template(), yuv2rgb_2_c_template(), and yuv2rgb_X_c_template().

static av_always_inline void yuv2rgb_X_c_template ( 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,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1451 of file output.c.

static av_always_inline void yuv2rgb_2_c_template ( SwsContext c,
const int16_t *  buf[2],
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf[2],
uint8_t dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1505 of file output.c.

static av_always_inline void yuv2rgb_1_c_template ( SwsContext c,
const int16_t *  buf0,
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf0,
uint8_t dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1545 of file output.c.

static av_always_inline void yuv2rgb_write_full ( SwsContext c,
uint8_t dest,
int  i,
int  Y,
int  A,
int  U,
int  V,
int  y,
enum AVPixelFormat  target,
int  hasAlpha,
int  err[4] 
)
static
static av_always_inline void yuv2rgb_full_X_c_template ( 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,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1795 of file output.c.

static av_always_inline void yuv2rgb_full_2_c_template ( SwsContext c,
const int16_t *  buf[2],
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf[2],
uint8_t dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1845 of file output.c.

static av_always_inline void yuv2rgb_full_1_c_template ( SwsContext c,
const int16_t *  buf0,
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf0,
uint8_t dest,
int  dstW,
int  uvalpha,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1890 of file output.c.

static void yuv2gbrp_full_X_c ( 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 
)
static

Definition at line 1971 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2gbrp16_full_X_c ( SwsContext c,
const int16_t *  lumFilter,
const int16_t **  lumSrcx,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrcx,
const int16_t **  chrVSrcx,
int  chrFilterSize,
const int16_t **  alpSrcx,
uint8_t **  dest,
int  dstW,
int  y 
)
static

Definition at line 2053 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2ya8_1_c ( SwsContext c,
const int16_t *  buf0,
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf0,
uint8_t dest,
int  dstW,
int  uvalpha,
int  y 
)
static

Definition at line 2128 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2ya8_2_c ( SwsContext c,
const int16_t *  buf[2],
const int16_t *  ubuf[2],
const int16_t *  vbuf[2],
const int16_t *  abuf[2],
uint8_t dest,
int  dstW,
int  yalpha,
int  uvalpha,
int  y 
)
static

Definition at line 2154 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2ya8_X_c ( 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 
)
static

Definition at line 2185 of file output.c.

Referenced by ff_sws_init_output_funcs().

static void yuv2ayuv64le_X_c ( 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 
)
static

Definition at line 2221 of file output.c.

Referenced by ff_sws_init_output_funcs().

av_cold 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 2269 of file output.c.

Referenced by sws_init_swscale(), and swscale().

Variable Documentation

const uint8_t ff_dither_2x2_4[][8]
Initial value:
= {
{ 1, 3, 1, 3, 1, 3, 1, 3, },
{ 2, 0, 2, 0, 2, 0, 2, 0, },
{ 1, 3, 1, 3, 1, 3, 1, 3, },
}

Definition at line 39 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t ff_dither_2x2_8[][8]
Initial value:
= {
{ 6, 2, 6, 2, 6, 2, 6, 2, },
{ 0, 4, 0, 4, 0, 4, 0, 4, },
{ 6, 2, 6, 2, 6, 2, 6, 2, },
}

Definition at line 45 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t ff_dither_4x4_16[][8]
Initial value:
= {
{ 8, 4, 11, 7, 8, 4, 11, 7, },
{ 2, 14, 1, 13, 2, 14, 1, 13, },
{ 10, 6, 9, 5, 10, 6, 9, 5, },
{ 0, 12, 3, 15, 0, 12, 3, 15, },
{ 8, 4, 11, 7, 8, 4, 11, 7, },
}

Definition at line 51 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t ff_dither_8x8_32[][8]
Initial value:
= {
{ 17, 9, 23, 15, 16, 8, 22, 14, },
{ 5, 29, 3, 27, 4, 28, 2, 26, },
{ 21, 13, 19, 11, 20, 12, 18, 10, },
{ 0, 24, 6, 30, 1, 25, 7, 31, },
{ 16, 8, 22, 14, 17, 9, 23, 15, },
{ 4, 28, 2, 26, 5, 29, 3, 27, },
{ 20, 12, 18, 10, 21, 13, 19, 11, },
{ 1, 25, 7, 31, 0, 24, 6, 30, },
{ 17, 9, 23, 15, 16, 8, 22, 14, },
}

Definition at line 59 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t ff_dither_8x8_73[][8]
Initial value:
= {
{ 0, 55, 14, 68, 3, 58, 17, 72, },
{ 37, 18, 50, 32, 40, 22, 54, 35, },
{ 9, 64, 5, 59, 13, 67, 8, 63, },
{ 46, 27, 41, 23, 49, 31, 44, 26, },
{ 2, 57, 16, 71, 1, 56, 15, 70, },
{ 39, 21, 52, 34, 38, 19, 51, 33, },
{ 11, 66, 7, 62, 10, 65, 6, 60, },
{ 48, 30, 43, 25, 47, 29, 42, 24, },
{ 0, 55, 14, 68, 3, 58, 17, 72, },
}

Definition at line 71 of file output.c.

Referenced by yuv2rgb_write().

const uint8_t ff_dither_8x8_220[][8]
Initial value:
= {
{117, 62, 158, 103, 113, 58, 155, 100, },
{ 34, 199, 21, 186, 31, 196, 17, 182, },
{144, 89, 131, 76, 141, 86, 127, 72, },
{ 0, 165, 41, 206, 10, 175, 52, 217, },
{110, 55, 151, 96, 120, 65, 162, 107, },
{ 28, 193, 14, 179, 38, 203, 24, 189, },
{138, 83, 124, 69, 148, 93, 134, 79, },
{ 7, 172, 48, 213, 3, 168, 45, 210, },
{117, 62, 158, 103, 113, 58, 155, 100, },
}

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().