FFmpeg
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions | Variables
output.c File Reference
#include <math.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avutil.h"
#include "libavutil/avassert.h"
#include "libavutil/bswap.h"
#include "libavutil/intfloat.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem_internal.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 IS_BE_LE   0
 
#define IS_BE_BE   1
 
#define IS_BE(ENDIAN_IDENTIFIER)   IS_BE_ ## ENDIAN_IDENTIFIER
 
#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 yuv2MSBNBPS(bits, BE_LE, is_be, template_size, typeX_t)
 
#define output_pixel(pos, val)
 
#define yuv2p01x_wrapper(fmt, bits, shift)
 
#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_EXT(name, base, ext, fmt, is_be, hasAlpha, eightbytes)
 
#define YUV2PACKED16WRAPPER(name, base, ext, base_fmt, endianness, hasAlpha, eightbytes)   YUV2PACKED16WRAPPER_EXT(name, base, ext, base_fmt ## endianness, IS_BE(endianness), 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)
 
#define output_pixels(pos, val)
 
#define YUV2AYUV64(pixfmt, BE_LE, A, Y, U, V, is_be)
 
#define V30LE_WRAPPER(name, shift)
 
#define output_pixels(pos, val, shift, bits, output_shift)
 
#define YUV2XV36(BE_LE, is_be)
 
#define output_pixels(pos, A, Y, U, V)
 
#define AYUVPACKEDWRAPPER(name, fmt)
 
#define output_pixel(pos, val, bits)   AV_WL16(pos, av_clip_uintp2(val >> shift, bits) << output_shift);
 
#define yuv2y2xx_wrapper(bits)
 

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 av_always_inline void yuv2nv12cX_16_c_template (int big_endian, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW, int output_bits)
 
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 av_always_inline void yuv2msbplaneX_10_c_template (const int16_t *filter, int filterSize, const int16_t **src, uint16_t *dest, int dstW, int big_endian, int output_bits)
 
 yuv2MSBNBPS (yuv2MSBNBPS(10, yuv2MSBNBPS(BE, yuv2MSBNBPS(1, yuv2MSBNBPS(10, int16_t)
 
static void yuv2nv12cX_16BE_c (enum AVPixelFormat dstFormat, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW)
 
static void yuv2planeX_8_c (const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2plane1_8_c (const int16_t *src, uint8_t *dest, int dstW, const uint8_t *dither, int offset)
 
static void yuv2nv12cX_c (enum AVPixelFormat dstFormat, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest, int chrDstW)
 
static void yuv2p01xl1_c (const int16_t *src, uint16_t *dest, int dstW, int big_endian, int output_bits, int output_shift)
 
static void yuv2p01xlX_c (const int16_t *filter, int filterSize, const int16_t **src, uint16_t *dest, int dstW, int big_endian, int output_bits, int output_shift)
 
static void yuv2p01xcX_c (int big_endian, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW, int output_bits, int output_shift)
 
 yuv2p01x_wrapper (p010, yuv2p01x_wrapper(10, 6)
 
static av_always_inline void yuv2mono_2_c_template (SwsInternal *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 (SwsInternal *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 (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, enum AVPixelFormat target)
 
static av_always_inline void yuv2422_2_c_template (SwsInternal *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 (SwsInternal *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 (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2ya16_2_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2ya16_1_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_X_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_2_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_1_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_full_X_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_full_2_c_template (SwsInternal *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, int is_be)
 
static av_always_inline void yuv2rgba64_full_1_c_template (SwsInternal *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, int is_be)
 
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 (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_2_c_template (SwsInternal *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 (SwsInternal *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 (SwsInternal *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 (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, enum AVPixelFormat target, int hasAlpha)
 
static av_always_inline void yuv2rgb_full_2_c_template (SwsInternal *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 (SwsInternal *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 (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t **dest, int dstW, int y)
 
static void yuv2gbrpmsb_full_X_c (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t **dest, int dstW, int y)
 
static void yuv2gbrp16_full_X_c (SwsInternal *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 yuv2gbrpf32_full_X_c (SwsInternal *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 (SwsInternal *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 (SwsInternal *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 (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y)
 
static av_always_inline void yuv2ayuv64_X_c (SwsInternal *c, const int16_t *lumFilter, const int16_t **_lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **_chrUSrc, const int16_t **_chrVSrc, int chrFilterSize, const int16_t **_alpSrc, uint8_t *dest, int dstW, int y, int A_offset, int Y_offset, int U_offset, int V_offset, int is_be)
 
static av_always_inline void yuv2v30_X_c_template (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, int shift)
 
static void yuv2xv36_X_c (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, int is_be)
 
static av_always_inline void yuv2ayuv_1_c_template (SwsInternal *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 yuv2ayuv_2_c_template (SwsInternal *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 yuv2ayuv_X_c_template (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y, enum AVPixelFormat target)
 
 yuv2y2xx_wrapper (10)
 
static void yuv2vyu444_1_c (SwsInternal *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 yuv2vyu444_2_c (SwsInternal *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 yuv2vyu444_X_c (SwsInternal *c, const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize, const int16_t *chrFilter, const int16_t **chrUSrc, const int16_t **chrVSrc, int chrFilterSize, const int16_t **alpSrc, uint8_t *dest, int dstW, int y)
 
av_cold void ff_sws_init_output_funcs (SwsInternal *c, yuv2planar1_fn *yuv2plane1, yuv2planarX_fn *yuv2planeX, yuv2interleavedX_fn *yuv2nv12cX, yuv2packed1_fn *yuv2packed1, yuv2packed2_fn *yuv2packed2, yuv2packedX_fn *yuv2packedX, yuv2anyX_fn *yuv2anyX)
 

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

◆ IS_BE_LE

#define IS_BE_LE   0

Definition at line 137 of file output.c.

◆ IS_BE_BE

#define IS_BE_BE   1

Definition at line 138 of file output.c.

◆ IS_BE

#define IS_BE (   ENDIAN_IDENTIFIER)    IS_BE_ ## ENDIAN_IDENTIFIER

Definition at line 140 of file output.c.

◆ output_pixel [1/7]

#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)); \
}

Definition at line 3082 of file output.c.

◆ yuv2plane1_float

#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); \
}

Definition at line 291 of file output.c.

◆ yuv2planeX_float

#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); \
}

Definition at line 298 of file output.c.

◆ output_pixel [2/7]

#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)); \
}

Definition at line 3082 of file output.c.

◆ yuv2NBPS

#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); \
}

Definition at line 361 of file output.c.

◆ output_pixel [3/7]

#define output_pixel (   pos,
  val 
)
Value:
if (big_endian) { \
AV_WB16(pos, av_clip_uintp2(val >> shift, output_bits) << (16 - output_bits)); \
} else { \
AV_WL16(pos, av_clip_uintp2(val >> shift, output_bits) << (16 - output_bits)); \
}

Definition at line 3082 of file output.c.

◆ yuv2MSBNBPS

#define yuv2MSBNBPS (   bits,
  BE_LE,
  is_be,
  template_size,
  typeX_t 
)
Value:
static void yuv2msbplane1_ ## bits ## BE_LE ## _c(const int16_t *src, \
uint8_t *dest, int dstW, \
const uint8_t *dither, int offset)\
{ \
yuv2msbplane1_ ## template_size ## _c_template((const typeX_t *) src, \
(uint16_t *) dest, dstW, is_be, bits); \
}\
static void yuv2msbplaneX_ ## 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)\
{ \
yuv2msbplaneX_## template_size ## _c_template(filter, \
filterSize, (const typeX_t **) src, \
(uint16_t *) dest, dstW, is_be, bits); \
}

Definition at line 428 of file output.c.

◆ output_pixel [4/7]

#define output_pixel (   pos,
  val 
)
Value:
if (big_endian) { \
AV_WB16(pos, av_clip_uintp2(val >> shift, output_bits) << output_shift); \
} else { \
AV_WL16(pos, av_clip_uintp2(val >> shift, output_bits) << output_shift); \
}

Definition at line 3082 of file output.c.

◆ yuv2p01x_wrapper

#define yuv2p01x_wrapper (   fmt,
  bits,
  shift 
)

Definition at line 591 of file output.c.

◆ accumulate_bit

#define accumulate_bit (   acc,
  val 
)
Value:
acc <<= 1; \
acc |= (val) >= 234

◆ output_pixel [5/7]

#define output_pixel (   pos,
  acc 
)
Value:
if (target == AV_PIX_FMT_MONOBLACK) { \
pos = acc; \
} else { \
pos = ~acc; \
}

Definition at line 3082 of file output.c.

◆ YUV2PACKEDWRAPPER

#define YUV2PACKEDWRAPPER (   name,
  base,
  ext,
  fmt 
)
Value:
static void name ## ext ## _X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, \
int y) \
{ \
name ## base ## _X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, fmt); \
} \
\
static void name ## ext ## _2_c(SwsInternal *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(SwsInternal *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); \
}

Definition at line 828 of file output.c.

◆ output_pixels [1/4]

#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; \
}

Definition at line 2877 of file output.c.

◆ R_B

#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)

Definition at line 1004 of file output.c.

◆ B_R

#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)

Definition at line 1005 of file output.c.

◆ output_pixel [6/7]

#define output_pixel (   pos,
  val 
)
Value:
if (is_be) { \
AV_WB16(pos, val); \
} else { \
AV_WL16(pos, val); \
}

Definition at line 3082 of file output.c.

◆ YUV2PACKED16WRAPPER_EXT

#define YUV2PACKED16WRAPPER_EXT (   name,
  base,
  ext,
  fmt,
  is_be,
  hasAlpha,
  eightbytes 
)

Definition at line 1571 of file output.c.

◆ YUV2PACKED16WRAPPER

#define YUV2PACKED16WRAPPER (   name,
  base,
  ext,
  base_fmt,
  endianness,
  hasAlpha,
  eightbytes 
)    YUV2PACKED16WRAPPER_EXT(name, base, ext, base_fmt ## endianness, IS_BE(endianness), hasAlpha, eightbytes)

Definition at line 1616 of file output.c.

◆ r_b

#define r_b   ((target == AV_PIX_FMT_RGB24) ? r : b)

◆ b_r

#define b_r   ((target == AV_PIX_FMT_RGB24) ? b : r)

◆ YUV2RGBWRAPPERX

#define YUV2RGBWRAPPERX (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
static void name ## ext ## _X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, \
int y) \
{ \
name ## base ## _X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, fmt, hasAlpha); \
}

Definition at line 1934 of file output.c.

◆ YUV2RGBWRAPPERX2

#define YUV2RGBWRAPPERX2 (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha) \
static void name ## ext ## _2_c(SwsInternal *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); \
}

Definition at line 1947 of file output.c.

◆ YUV2RGBWRAPPER

#define YUV2RGBWRAPPER (   name,
  base,
  ext,
  fmt,
  hasAlpha 
)
Value:
YUV2RGBWRAPPERX2(name, base, ext, fmt, hasAlpha) \
static void name ## ext ## _1_c(SwsInternal *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); \
}

Definition at line 1958 of file output.c.

◆ A_DITHER

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

◆ X_DITHER

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

◆ output_pixels [2/4]

#define output_pixels (   pos,
  val 
)
Value:
if (is_be) { \
AV_WB16(pos, val); \
} else { \
AV_WL16(pos, val); \
}

Definition at line 2877 of file output.c.

◆ YUV2AYUV64

#define YUV2AYUV64 (   pixfmt,
  BE_LE,
  A,
  Y,
  U,
  V,
  is_be 
)
Value:
static void \
yuv2 ## pixfmt ## BE_LE ##_X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, int y) \
{ \
yuv2ayuv64_X_c(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, A, Y, U, V, is_be); \
}

Definition at line 2756 of file output.c.

◆ V30LE_WRAPPER

#define V30LE_WRAPPER (   name,
  shift 
)
Value:
static void yuv2 ## name ## _X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, \
int y) \
{ \
yuv2v30_X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, shift); \
}

Definition at line 2809 of file output.c.

◆ output_pixels [3/4]

#define output_pixels (   pos,
  val,
  shift,
  bits,
  output_shift 
)
Value:
if (is_be) { \
AV_WB16(pos, av_clip_uintp2(val >> shift, bits) << output_shift); \
} else { \
AV_WL16(pos, av_clip_uintp2(val >> shift, bits) << output_shift); \
}

Definition at line 2877 of file output.c.

◆ YUV2XV36

#define YUV2XV36 (   BE_LE,
  is_be 
)
Value:
static void \
yuv2xv36 ## BE_LE ##_X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, int y) \
{ \
yuv2xv36_X_c(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, is_be); \
}

Definition at line 2861 of file output.c.

◆ output_pixels [4/4]

#define output_pixels (   pos,
  A,
  Y,
  U,
  V 
)
Value:
if (target == AV_PIX_FMT_AYUV) { \
dest[pos + 0] = A; \
dest[pos + 1] = Y; \
dest[pos + 2] = U; \
dest[pos + 3] = V; \
} else if (target == AV_PIX_FMT_UYVA) { \
dest[pos + 0] = U; \
dest[pos + 1] = Y; \
dest[pos + 2] = V; \
dest[pos + 3] = A; \
} else { /* AV_PIX_FMT_VUYA || AV_PIX_FMT_VUYX */ \
dest[pos + 0] = V; \
dest[pos + 1] = U; \
dest[pos + 2] = Y; \
dest[pos + 3] = A; \
}

Definition at line 2877 of file output.c.

◆ AYUVPACKEDWRAPPER

#define AYUVPACKEDWRAPPER (   name,
  fmt 
)
Value:
static void yuv2 ## name ## _X_c(SwsInternal *c, const int16_t *lumFilter, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
const int16_t **alpSrc, uint8_t *dest, int dstW, \
int y) \
{ \
yuv2ayuv_X_c_template(c, lumFilter, lumSrc, lumFilterSize, \
chrFilter, chrUSrc, chrVSrc, chrFilterSize, \
alpSrc, dest, dstW, y, fmt); \
} \
\
static void yuv2 ## name ## _2_c(SwsInternal *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) \
{ \
yuv2ayuv_2_c_template(c, buf, ubuf, vbuf, abuf, \
dest, dstW, yalpha, uvalpha, y, fmt); \
} \
\
static void yuv2 ## name ## _1_c(SwsInternal *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) \
{ \
yuv2ayuv_1_c_template(c, buf0, ubuf, vbuf, \
abuf0, dest, dstW, uvalpha, \
y, fmt); \
}

Definition at line 3046 of file output.c.

◆ output_pixel [7/7]

#define output_pixel (   pos,
  val,
  bits 
)    AV_WL16(pos, av_clip_uintp2(val >> shift, bits) << output_shift);

Definition at line 3082 of file output.c.

◆ yuv2y2xx_wrapper

#define yuv2y2xx_wrapper (   bits)

Definition at line 3085 of file output.c.

Function Documentation

◆ yuv2plane1_16_c_template()

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

◆ yuv2planeX_16_c_template()

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

◆ yuv2nv12cX_16_c_template()

static av_always_inline void yuv2nv12cX_16_c_template ( int  big_endian,
const uint8_t *  chrDither,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t *  dest8,
int  chrDstW,
int  output_bits 
)
static

Definition at line 190 of file output.c.

Referenced by yuv2MSBNBPS(), and yuv2nv12cX_16BE_c().

◆ yuv2plane1_float_c_template()

static av_always_inline void yuv2plane1_float_c_template ( const int32_t src,
float dest,
int  dstW 
)
static

Definition at line 220 of file output.c.

◆ yuv2plane1_float_bswap_c_template()

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

Definition at line 236 of file output.c.

◆ yuv2planeX_float_c_template()

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

◆ yuv2planeX_float_bswap_c_template()

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

◆ yuv2plane1_float()

yuv2plane1_float ( yuv2plane1_float_c_template  ,
yuv2plane1_float(  float,
LE   
)

Definition at line 312 of file output.c.

◆ yuv2planeX_10_c_template()

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

◆ yuv2NBPS()

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

Definition at line 378 of file output.c.

◆ yuv2msbplaneX_10_c_template()

static av_always_inline void yuv2msbplaneX_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 410 of file output.c.

◆ yuv2MSBNBPS()

yuv2MSBNBPS ( yuv2MSBNBPS(  10,
yuv2MSBNBPS(  BE,
yuv2MSBNBPS(  1,
yuv2MSBNBPS(  10,
int16_t   
)

Definition at line 445 of file output.c.

◆ yuv2nv12cX_16BE_c()

static void yuv2nv12cX_16BE_c ( enum AVPixelFormat  dstFormat,
const uint8_t *  chrDither,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t *  dest8,
int  chrDstW 
)
static

Definition at line 460 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2planeX_8_c()

static void yuv2planeX_8_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 468 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2plane1_8_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 483 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2nv12cX_c()

static void yuv2nv12cX_c ( enum AVPixelFormat  dstFormat,
const uint8_t *  chrDither,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t *  dest,
int  chrDstW 
)
static

Definition at line 493 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2p01xl1_c()

static void yuv2p01xl1_c ( const int16_t *  src,
uint16_t *  dest,
int  dstW,
int  big_endian,
int  output_bits,
int  output_shift 
)
static

Definition at line 536 of file output.c.

◆ yuv2p01xlX_c()

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

Definition at line 549 of file output.c.

◆ yuv2p01xcX_c()

static void yuv2p01xcX_c ( int  big_endian,
const uint8_t *  chrDither,
const int16_t *  chrFilter,
int  chrFilterSize,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
uint8_t *  dest8,
int  chrDstW,
int  output_bits,
int  output_shift 
)
static

Definition at line 566 of file output.c.

◆ yuv2p01x_wrapper()

yuv2p01x_wrapper ( p010  ,
yuv2p01x_wrapper(  10,
 
)

Definition at line 648 of file output.c.

◆ yuv2mono_2_c_template()

static av_always_inline void yuv2mono_2_c_template ( SwsInternal 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 716 of file output.c.

◆ yuv2mono_1_c_template()

static av_always_inline void yuv2mono_1_c_template ( SwsInternal 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 778 of file output.c.

◆ yuv2422_X_c_template()

static av_always_inline void yuv2422_X_c_template ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 882 of file output.c.

◆ yuv2422_2_c_template()

static av_always_inline void yuv2422_2_c_template ( SwsInternal 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 921 of file output.c.

◆ yuv2422_1_c_template()

static av_always_inline void yuv2422_1_c_template ( SwsInternal 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 954 of file output.c.

◆ yuv2ya16_X_c_template()

static av_always_inline void yuv2ya16_X_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1014 of file output.c.

◆ yuv2ya16_2_c_template()

static av_always_inline void yuv2ya16_2_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1053 of file output.c.

◆ yuv2ya16_1_c_template()

static av_always_inline void yuv2ya16_1_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1086 of file output.c.

◆ yuv2rgba64_X_c_template()

static av_always_inline void yuv2rgba64_X_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1113 of file output.c.

◆ yuv2rgba64_2_c_template()

static av_always_inline void yuv2rgba64_2_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1196 of file output.c.

◆ yuv2rgba64_1_c_template()

static av_always_inline void yuv2rgba64_1_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1262 of file output.c.

◆ yuv2rgba64_full_X_c_template()

static av_always_inline void yuv2rgba64_full_X_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1369 of file output.c.

◆ yuv2rgba64_full_2_c_template()

static av_always_inline void yuv2rgba64_full_2_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1434 of file output.c.

◆ yuv2rgba64_full_1_c_template()

static av_always_inline void yuv2rgba64_full_1_c_template ( SwsInternal 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,
int  is_be 
)
static

Definition at line 1487 of file output.c.

◆ yuv2rgb_write()

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

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

◆ yuv2rgb_X_c_template()

static av_always_inline void yuv2rgb_X_c_template ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 1782 of file output.c.

◆ yuv2rgb_2_c_template()

static av_always_inline void yuv2rgb_2_c_template ( SwsInternal 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 1836 of file output.c.

◆ yuv2rgb_1_c_template()

static av_always_inline void yuv2rgb_1_c_template ( SwsInternal 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 1876 of file output.c.

◆ yuv2rgb_write_full()

static av_always_inline void yuv2rgb_write_full ( SwsInternal 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

◆ yuv2rgb_full_X_c_template()

static av_always_inline void yuv2rgb_full_X_c_template ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target,
int  hasAlpha 
)
static

Definition at line 2154 of file output.c.

◆ yuv2rgb_full_2_c_template()

static av_always_inline void yuv2rgb_full_2_c_template ( SwsInternal 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 2204 of file output.c.

◆ yuv2rgb_full_1_c_template()

static av_always_inline void yuv2rgb_full_1_c_template ( SwsInternal 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 2249 of file output.c.

◆ yuv2gbrp_full_X_c()

static void yuv2gbrp_full_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t **  dest,
int  dstW,
int  y 
)
static

Definition at line 2336 of file output.c.

Referenced by ff_sws_init_output_funcs(), and yuv2gbrpmsb_full_X_c().

◆ yuv2gbrpmsb_full_X_c()

static void yuv2gbrpmsb_full_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t **  dest,
int  dstW,
int  y 
)
static

Definition at line 2418 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2gbrp16_full_X_c()

static void yuv2gbrp16_full_X_c ( SwsInternal 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 2458 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2gbrpf32_full_X_c()

static void yuv2gbrpf32_full_X_c ( SwsInternal 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 2530 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2ya8_1_c()

static void yuv2ya8_1_c ( SwsInternal 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 2606 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2ya8_2_c()

static void yuv2ya8_2_c ( SwsInternal 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 2632 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2ya8_X_c()

static void yuv2ya8_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y 
)
static

Definition at line 2663 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2ayuv64_X_c()

static av_always_inline void yuv2ayuv64_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  _lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  _chrUSrc,
const int16_t **  _chrVSrc,
int  chrFilterSize,
const int16_t **  _alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
int  A_offset,
int  Y_offset,
int  U_offset,
int  V_offset,
int  is_be 
)
static

Definition at line 2706 of file output.c.

◆ yuv2v30_X_c_template()

static av_always_inline void yuv2v30_X_c_template ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
int  shift 
)
static

Definition at line 2778 of file output.c.

◆ yuv2xv36_X_c()

static void yuv2xv36_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
int  is_be 
)
static

Definition at line 2833 of file output.c.

◆ yuv2ayuv_1_c_template()

static av_always_inline void yuv2ayuv_1_c_template ( SwsInternal 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 2896 of file output.c.

◆ yuv2ayuv_2_c_template()

static av_always_inline void yuv2ayuv_2_c_template ( SwsInternal 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 2952 of file output.c.

◆ yuv2ayuv_X_c_template()

static av_always_inline void yuv2ayuv_X_c_template ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y,
enum AVPixelFormat  target 
)
static

Definition at line 2994 of file output.c.

◆ yuv2y2xx_wrapper()

yuv2y2xx_wrapper ( 10  )

Definition at line 3119 of file output.c.

◆ yuv2vyu444_1_c()

static void yuv2vyu444_1_c ( SwsInternal 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 3164 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2vyu444_2_c()

static void yuv2vyu444_2_c ( SwsInternal 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 3209 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ yuv2vyu444_X_c()

static void yuv2vyu444_X_c ( SwsInternal c,
const int16_t *  lumFilter,
const int16_t **  lumSrc,
int  lumFilterSize,
const int16_t *  chrFilter,
const int16_t **  chrUSrc,
const int16_t **  chrVSrc,
int  chrFilterSize,
const int16_t **  alpSrc,
uint8_t *  dest,
int  dstW,
int  y 
)
static

Definition at line 3243 of file output.c.

Referenced by ff_sws_init_output_funcs().

◆ ff_sws_init_output_funcs()

av_cold void ff_sws_init_output_funcs ( SwsInternal c,
yuv2planar1_fn yuv2plane1,
yuv2planarX_fn yuv2planeX,
yuv2interleavedX_fn yuv2nv12cX,
yuv2packed1_fn yuv2packed1,
yuv2packed2_fn yuv2packed2,
yuv2packedX_fn yuv2packedX,
yuv2anyX_fn yuv2anyX 
)

Definition at line 3284 of file output.c.

Referenced by ff_swscale(), and sws_init_swscale().

Variable Documentation

◆ ff_dither_2x2_4

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

Referenced by yuv2rgb_write().

◆ ff_dither_2x2_8

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

Referenced by yuv2rgb_write().

◆ ff_dither_4x4_16

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

Referenced by yuv2rgb_write().

◆ ff_dither_8x8_32

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

Referenced by yuv2rgb_write().

◆ ff_dither_8x8_73

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

Referenced by yuv2rgb_write().

◆ ff_dither_8x8_220

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

Referenced by if(), yuv2mono_1_c_template(), yuv2mono_2_c_template(), yuv2p01x_wrapper(), and yuv2rgb_write().

A
#define A(x)
Definition: vpx_arith.h:28
name
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 default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
av_clip_uintp2
#define av_clip_uintp2
Definition: common.h:124
YUV2RGBWRAPPERX2
#define YUV2RGBWRAPPERX2(name, base, ext, fmt, hasAlpha)
Definition: output.c:1947
base
uint8_t base
Definition: vp3data.h:128
filter
void(* filter)(uint8_t *src, int stride, int qscale)
Definition: h263dsp.c:29
val
static double val(void *priv, double ch)
Definition: aeval.c:77
yuv2plane1_float
#define yuv2plane1_float(template, dest_type, BE_LE)
Definition: output.c:291
yuv2planeX_float
#define yuv2planeX_float(template, dest_type, BE_LE)
Definition: output.c:298
bits
uint8_t bits
Definition: vp3data.h:128
bias
static int bias(int x, int c)
Definition: vqcdec.c:115
AV_PIX_FMT_YUYV422
@ AV_PIX_FMT_YUYV422
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: pixfmt.h:74
AV_PIX_FMT_MONOBLACK
@ AV_PIX_FMT_MONOBLACK
Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb.
Definition: pixfmt.h:83
V
#define V
Definition: avdct.c:31
c
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
shift
static int shift(int a, int b)
Definition: bonk.c:261
offset
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
Definition: writing_filters.txt:86
Y
#define Y
Definition: boxblur.h:37
AV_PIX_FMT_AYUV
@ AV_PIX_FMT_AYUV
packed AYUV 4:4:4:4, 32bpp (1 Cr & Cb sample per 1x1 Y & A samples), AYUVAYUV...
Definition: pixfmt.h:442
AV_PIX_FMT_UYVA
@ AV_PIX_FMT_UYVA
packed UYVA 4:4:4:4, 32bpp (1 Cr & Cb sample per 1x1 Y & A samples), UYVAUYVA...
Definition: pixfmt.h:444
AV_PIX_FMT_YVYU422
@ AV_PIX_FMT_YVYU422
packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb
Definition: pixfmt.h:207
SwsInternal
Definition: swscale_internal.h:317
pixfmt
enum AVPixelFormat pixfmt
Definition: kmsgrab.c:367
pos
unsigned int pos
Definition: spdifenc.c:414
U
#define U(x)
Definition: vpx_arith.h:37
YUV2RGBWRAPPERX
#define YUV2RGBWRAPPERX(name, base, ext, fmt, hasAlpha)
Definition: output.c:1934
int32_t
int32_t
Definition: audioconvert.c:56
src
#define src
Definition: vp8dsp.c:248
dither
static const uint8_t dither[8][8]
Definition: vf_fspp.c:62