FFmpeg
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 yuv2plane1_float(template, dest_type, BE_LE)
 
#define yuv2planeX_float(template, dest_type, BE_LE)
 
#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_float_c_template (const int32_t *src, float *dest, int dstW)
 
static av_always_inline void yuv2plane1_float_bswap_c_template (const int32_t *src, uint32_t *dest, int dstW)
 
static av_always_inline void yuv2planeX_float_c_template (const int16_t *filter, int filterSize, const int32_t **src, float *dest, int dstW)
 
static av_always_inline void yuv2planeX_float_bswap_c_template (const int16_t *filter, int filterSize, const int32_t **src, uint32_t *dest, int dstW)
 
 yuv2plane1_float (yuv2plane1_float_c_template, yuv2plane1_float(float, LE)
 
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 yuv2ya16_X_c_template (SwsContext *c, const int16_t *lumFilter, const int32_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int32_t **unused_chrUSrc, const int32_t **unused_chrVSrc, int unused_chrFilterSize, const int32_t **alpSrc, uint16_t *dest, int dstW, int y, enum AVPixelFormat target, int unused_hasAlpha, int unused_eightbytes)
 
static av_always_inline void yuv2ya16_2_c_template (SwsContext *c, const int32_t *buf[2], const int32_t *unused_ubuf[2], const int32_t *unused_vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, int yalpha, int unused_uvalpha, int y, enum AVPixelFormat target, int unused_hasAlpha, int unused_eightbytes)
 
static av_always_inline void yuv2ya16_1_c_template (SwsContext *c, const int32_t *buf0, const int32_t *unused_ubuf[2], const int32_t *unused_vbuf[2], const int32_t *abuf0, uint16_t *dest, int dstW, int unused_uvalpha, int y, enum AVPixelFormat target, int unused_hasAlpha, int unused_eightbytes)
 
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 
)
#define yuv2plane1_float (   template,
  dest_type,
  BE_LE 
)
Value:
static void yuv2plane1_float ## BE_LE ## _c(const int16_t *src, uint8_t *dest, int dstW, \
const uint8_t *dither, int offset) \
{ \
template((const int32_t *)src, (dest_type *)dest, dstW); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
static const uint8_t dither[8][8]
Definition: vf_fspp.c:57
int32_t
#define yuv2plane1_float(template, dest_type, BE_LE)
Definition: output.c:283

Definition at line 283 of file output.c.

#define yuv2planeX_float (   template,
  dest_type,
  BE_LE 
)
Value:
static void yuv2planeX_float ## BE_LE ## _c(const int16_t *filter, int filterSize, \
const int16_t **src, uint8_t *dest, int dstW, \
const uint8_t *dither, int offset) \
{ \
template(filter, filterSize, (const int32_t **)src, (dest_type *)dest, dstW); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
#define yuv2planeX_float(template, dest_type, BE_LE)
Definition: output.c:290
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static const uint8_t dither[8][8]
Definition: vf_fspp.c:57
int32_t

Definition at line 290 of file output.c.

#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:863
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 887 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
uint8_t
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static const uint8_t dither[8][8]
Definition: vf_fspp.c:57
uint8_t bits
Definition: vp3data.h:202

Definition at line 353 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:863
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 887 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:863
int acc
Definition: yuv2rgb.c:554

Definition at line 534 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:76

Definition at line 887 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:861
uint8_t base
Definition: vp3data.h:202
uint8_t
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
void * buf
Definition: avisynth_c.h:766
const char * name
Definition: opengl_enc.c:102

Definition at line 709 of file output.c.

Referenced by yuv2422_1_c_template().

#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:210
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: pixfmt.h:67
#define V
Definition: avdct.c:30

Definition at line 744 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:863
#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 887 of file output.c.

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

Definition at line 1437 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:861
uint8_t base
Definition: vp3data.h:202
uint8_t
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
const char * name
Definition: opengl_enc.c:102

Definition at line 1788 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:861
#define YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha)
Definition: output.c:1788
uint8_t base
Definition: vp3data.h:202
uint8_t
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
void * buf
Definition: avisynth_c.h:766
const char * name
Definition: opengl_enc.c:102

Definition at line 1801 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:1801
const char * fmt
Definition: avisynth_c.h:861
uint8_t base
Definition: vp3data.h:202
uint8_t
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
const char * name
Definition: opengl_enc.c:102

Definition at line 1812 of file output.c.

Referenced by yuv2rgb_full_1_c_template().

#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_float_c_template ( const int32_t src,
float *  dest,
int  dstW 
)
static

Definition at line 212 of file output.c.

static av_always_inline void yuv2plane1_float_bswap_c_template ( const int32_t src,
uint32_t *  dest,
int  dstW 
)
static

Definition at line 228 of file output.c.

static av_always_inline void yuv2planeX_float_c_template ( const int16_t *  filter,
int  filterSize,
const int32_t **  src,
float *  dest,
int  dstW 
)
static

Definition at line 244 of file output.c.

static av_always_inline void yuv2planeX_float_bswap_c_template ( const int16_t *  filter,
int  filterSize,
const int32_t **  src,
uint32_t *  dest,
int  dstW 
)
static

Definition at line 264 of file output.c.

yuv2plane1_float ( yuv2plane1_float_c_template  ,
yuv2plane1_float(  float,
LE   
)

Definition at line 304 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 333 of file output.c.

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

Definition at line 369 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 395 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 405 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 450 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 463 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 480 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 503 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 510 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 517 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 524 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 545 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 598 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 659 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 763 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 802 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 835 of file output.c.

static av_always_inline void yuv2ya16_X_c_template ( SwsContext c,
const int16_t *  lumFilter,
const int32_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int32_t **  unused_chrUSrc,
const int32_t **  unused_chrVSrc,
int  unused_chrFilterSize,
const int32_t **  alpSrc,
uint16_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target,
int  unused_hasAlpha,
int  unused_eightbytes 
)
static

Definition at line 895 of file output.c.

static av_always_inline void yuv2ya16_2_c_template ( SwsContext c,
const int32_t buf[2],
const int32_t unused_ubuf[2],
const int32_t unused_vbuf[2],
const int32_t abuf[2],
uint16_t *  dest,
int  dstW,
int  yalpha,
int  unused_uvalpha,
int  y,
enum AVPixelFormat  target,
int  unused_hasAlpha,
int  unused_eightbytes 
)
static

Definition at line 933 of file output.c.

static av_always_inline void yuv2ya16_1_c_template ( SwsContext c,
const int32_t buf0,
const int32_t unused_ubuf[2],
const int32_t unused_vbuf[2],
const int32_t abuf0,
uint16_t *  dest,
int  dstW,
int  unused_uvalpha,
int  y,
enum AVPixelFormat  target,
int  unused_hasAlpha,
int  unused_eightbytes 
)
static

Definition at line 965 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 991 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 1073 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 1138 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 1241 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 1305 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 1357 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 1520 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 1639 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 1693 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 1733 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 1983 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 2033 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 2078 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 2159 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 2241 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 2316 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 2342 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 2373 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 2409 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 2457 of file output.c.

Referenced by sws_init_swscale(), swscale(), and usePal().

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 usePal(), and 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 usePal(), and 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 usePal(), and 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 usePal(), and 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 usePal(), and 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 usePal(), yuv2mono_1_c_template(), yuv2mono_2_c_template(), yuv2mono_X_c_template(), and yuv2rgb_write().