FFmpeg
Loading...
Searching...
No Matches
swscale_unscaled.c File Reference
#include <inttypes.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
#include "config.h"
#include "libavutil/attributes.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "rgb2rgb.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avutil.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem_internal.h"
#include "libavutil/bswap.h"
#include "libavutil/pixdesc.h"
#include "libavutil/avassert.h"
#include "libavutil/avconfig.h"
#include "bayer_template.c"

Go to the source code of this file.

Macros

#define output_pixel(p, v)
 
#define BAYER_GBRG
 
#define BAYER_8
 
#define BAYER_RENAME(x)
 
#define BAYER_GBRG
 
#define BAYER_16LE
 
#define BAYER_RENAME(x)
 
#define BAYER_GBRG
 
#define BAYER_16BE
 
#define BAYER_RENAME(x)
 
#define BAYER_GRBG
 
#define BAYER_8
 
#define BAYER_RENAME(x)
 
#define BAYER_GRBG
 
#define BAYER_16LE
 
#define BAYER_RENAME(x)
 
#define BAYER_GRBG
 
#define BAYER_16BE
 
#define BAYER_RENAME(x)
 
#define BAYER_BGGR
 
#define BAYER_8
 
#define BAYER_RENAME(x)
 
#define BAYER_BGGR
 
#define BAYER_16LE
 
#define BAYER_RENAME(x)
 
#define BAYER_BGGR
 
#define BAYER_16BE
 
#define BAYER_RENAME(x)
 
#define BAYER_RGGB
 
#define BAYER_8
 
#define BAYER_RENAME(x)
 
#define BAYER_RGGB
 
#define BAYER_16LE
 
#define BAYER_RENAME(x)
 
#define BAYER_RGGB
 
#define BAYER_16BE
 
#define BAYER_RENAME(x)
 
#define CASE(pixfmt, prefix)
 
#define CASE(pixfmt, prefix)
 
#define CASE(pixfmt, prefix)
 
#define isRGBA32(x)
 
#define isRGBA64(x)
 
#define isRGB48(x)
 
#define isAYUV(x)
 
#define isX2RGB(x)
 
#define IS_NOT_NE(Bpp, desc)
 
#define CONV_IS(src, dst)
 
#define DITHER_COPY(dst, dstStride, src, srcStride, bswap, dbswap)
 
#define COPY816(w)
 
#define COPY_UP(r, w)
 
#define IS_DIFFERENT_ENDIANESS(src_fmt, dst_fmt, pix_fmt)
 
#define isByteRGB(f)
 
#define isPlanarGray(x)
 

Typedefs

typedef void(* rgbConvFn) (const uint8_t *, uint8_t *, int)
 

Functions

static void fillPlane (uint8_t *plane, int stride, int width, int height, int y, uint8_t val)
 
void ff_copyPlane (const uint8_t *src, int srcStride, int srcSliceY, int srcSliceH, int width, uint8_t *dst, int dstStride)
 
static int planarToNv12Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int nv12ToPlanarWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int planarToNv24Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int nv24ToPlanarWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static void nv24_to_yuv420p_chroma (uint8_t *dst1, int dstStride1, uint8_t *dst2, int dstStride2, const uint8_t *src, int srcStride, int w, int h)
 
static int nv24ToYuv420Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int planarToP01xWrapper (SwsInternal *c, const uint8_t *const src8[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam8[], const int dstStride[])
 
static int planar8ToP01xleWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam8[], const int dstStride[])
 
static int planarToYuy2Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int planarToUyvyWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int yuv422pToYuy2Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int yuv422pToUyvyWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int yuyvToYuv420Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int yuyvToYuv422Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int uyvyToYuv420Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static int uyvyToYuv422Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dstParam[], const int dstStride[])
 
static void gray8aToPacked32 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
 
static void gray8aToPacked32_1 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
 
static void gray8aToPacked24 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
 
static void gray8aToPlanar8 (const uint8_t *src, uint8_t *dst0, uint8_t *dst1, uint8_t *dst2, uint8_t *dstA, int num_pixels, const uint8_t *palette)
 
static void pal8ToPlanar8 (const uint8_t *src, uint8_t *dst0, uint8_t *dst1, uint8_t *dst2, uint8_t *dstA, int num_pixels, const uint8_t *palette)
 
static int bswap_16bpc (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int bswap_32bpc (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int palToRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int palToGbrpWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static void packed16togbra16 (const uint8_t *src, int srcStride, uint16_t *dst[], const int dstStride[], int srcSliceH, int src_alpha, int swap, int shift, int width)
 
static void packed30togbra10 (const uint8_t *src, int srcStride, uint16_t *dst[], const int dstStride[], int srcSliceH, int swap, int bpc, int shift, int width)
 
static int Rgb16ToPlanarRgb16Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static void gbr16ptopacked16 (const uint16_t *src[], const int srcStride[], uint8_t *dst, int dstStride, int srcSliceH, int alpha, int swap, int bpp, int width)
 
static void gbr16ptopacked30 (const uint16_t *src[], const int srcStride[], uint8_t *dst, int dstStride, int srcSliceH, int swap, int shift, int width)
 
static int planarRgb16ToRgb16Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static void gbr24ptopacked24 (const uint8_t *src[], const int srcStride[], uint8_t *dst, int dstStride, int srcSliceH, int width)
 
static void gbr24ptopacked32 (const uint8_t *src[], const int srcStride[], uint8_t *dst, int dstStride, int srcSliceH, int alpha_first, int width)
 
static void gbraptopacked32 (const uint8_t *src[], const int srcStride[], uint8_t *dst, int dstStride, int srcSliceH, int alpha_first, int width)
 
static int planarRgbaToRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int planarRgbToRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int planarRgbToplanarRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static void packedtogbr24p (const uint8_t *src, int srcStride, uint8_t *const dst[], const int dstStride[], int srcSliceH, int alpha_first, int inc_size, int width)
 
static int rgbToPlanarRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static void packed24togbrap (const uint8_t *src, int srcStride, uint8_t *const dst[], const int dstStride[], int srcSliceH, int width)
 
static void packed32togbrap (const uint8_t *src, int srcStride, uint8_t *const dst[], const int dstStride[], int srcSliceH, int alpha_first, int width)
 
static int rgbToPlanarRgbaWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int bayer_to_rgb24_wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int bayer_to_rgb48_wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int bayer_to_yv12_wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static rgbConvFn findRgbConvFn (SwsInternal *c)
 
static int rgbToRgbWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int bgr24ToYv12Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int yvu9ToYv12Wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int uint_y_to_float_y_wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int float_y_to_uint_y_wrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int packedCopyWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
static int planarCopyWrapper (SwsInternal *c, const uint8_t *const src[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
 
void ff_get_unscaled_swscale (SwsInternal *c)
 Set c->convert_unscaled to an unscaled converter if one exists for the specific source and destination formats, bit depths, flags, etc.
 
void sws_convertPalette8ToPacked32 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
 Convert an 8-bit paletted frame into a frame with a color depth of 32 bits.
 
void sws_convertPalette8ToPacked24 (const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
 Convert an 8-bit paletted frame into a frame with a color depth of 24 bits.
 

Variables

static const uint8_t dithers [8][8][8]
 

Macro Definition Documentation

◆ output_pixel

#define output_pixel ( p,
v )
Value:
(*p) = (v)

Definition at line 330 of file swscale_unscaled.c.

Referenced by planar8ToP01xleWrapper().

◆ BAYER_GBRG [1/3]

#define BAYER_GBRG

Definition at line 1592 of file swscale_unscaled.c.

◆ BAYER_8 [1/4]

#define BAYER_8

Definition at line 1593 of file swscale_unscaled.c.

◆ BAYER_RENAME [1/12]

#define BAYER_RENAME ( x)
Value:
bayer_gbrg8_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_GBRG [2/3]

#define BAYER_GBRG

Definition at line 1592 of file swscale_unscaled.c.

◆ BAYER_16LE [1/4]

#define BAYER_16LE

Definition at line 1598 of file swscale_unscaled.c.

◆ BAYER_RENAME [2/12]

#define BAYER_RENAME ( x)
Value:
bayer_gbrg16le_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_GBRG [3/3]

#define BAYER_GBRG

Definition at line 1592 of file swscale_unscaled.c.

◆ BAYER_16BE [1/4]

#define BAYER_16BE

Definition at line 1603 of file swscale_unscaled.c.

◆ BAYER_RENAME [3/12]

#define BAYER_RENAME ( x)
Value:
bayer_gbrg16be_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_GRBG [1/3]

#define BAYER_GRBG

Definition at line 1607 of file swscale_unscaled.c.

◆ BAYER_8 [2/4]

#define BAYER_8

Definition at line 1593 of file swscale_unscaled.c.

◆ BAYER_RENAME [4/12]

#define BAYER_RENAME ( x)
Value:
bayer_grbg8_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_GRBG [2/3]

#define BAYER_GRBG

Definition at line 1607 of file swscale_unscaled.c.

◆ BAYER_16LE [2/4]

#define BAYER_16LE

Definition at line 1598 of file swscale_unscaled.c.

◆ BAYER_RENAME [5/12]

#define BAYER_RENAME ( x)
Value:
bayer_grbg16le_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_GRBG [3/3]

#define BAYER_GRBG

Definition at line 1607 of file swscale_unscaled.c.

◆ BAYER_16BE [2/4]

#define BAYER_16BE

Definition at line 1603 of file swscale_unscaled.c.

◆ BAYER_RENAME [6/12]

#define BAYER_RENAME ( x)
Value:
bayer_grbg16be_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_BGGR [1/3]

#define BAYER_BGGR

Definition at line 1622 of file swscale_unscaled.c.

◆ BAYER_8 [3/4]

#define BAYER_8

Definition at line 1593 of file swscale_unscaled.c.

◆ BAYER_RENAME [7/12]

#define BAYER_RENAME ( x)
Value:
bayer_bggr8_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_BGGR [2/3]

#define BAYER_BGGR

Definition at line 1622 of file swscale_unscaled.c.

◆ BAYER_16LE [3/4]

#define BAYER_16LE

Definition at line 1598 of file swscale_unscaled.c.

◆ BAYER_RENAME [8/12]

#define BAYER_RENAME ( x)
Value:
bayer_bggr16le_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_BGGR [3/3]

#define BAYER_BGGR

Definition at line 1622 of file swscale_unscaled.c.

◆ BAYER_16BE [3/4]

#define BAYER_16BE

Definition at line 1603 of file swscale_unscaled.c.

◆ BAYER_RENAME [9/12]

#define BAYER_RENAME ( x)
Value:
bayer_bggr16be_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_RGGB [1/3]

#define BAYER_RGGB

Definition at line 1637 of file swscale_unscaled.c.

◆ BAYER_8 [4/4]

#define BAYER_8

Definition at line 1593 of file swscale_unscaled.c.

◆ BAYER_RENAME [10/12]

#define BAYER_RENAME ( x)
Value:
bayer_rggb8_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_RGGB [2/3]

#define BAYER_RGGB

Definition at line 1637 of file swscale_unscaled.c.

◆ BAYER_16LE [4/4]

#define BAYER_16LE

Definition at line 1598 of file swscale_unscaled.c.

◆ BAYER_RENAME [11/12]

#define BAYER_RENAME ( x)
Value:
bayer_rggb16le_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ BAYER_RGGB [3/3]

#define BAYER_RGGB

Definition at line 1637 of file swscale_unscaled.c.

◆ BAYER_16BE [4/4]

#define BAYER_16BE

Definition at line 1603 of file swscale_unscaled.c.

◆ BAYER_RENAME [12/12]

#define BAYER_RENAME ( x)
Value:
bayer_rggb16be_to_##x

Definition at line 1594 of file swscale_unscaled.c.

◆ CASE [1/3]

#define CASE ( pixfmt,
prefix )
Value:
case pixfmt: copy = bayer_##prefix##_to_rgb24_copy; \
interpolate = bayer_##prefix##_to_rgb24_interpolate; \
break;
enum AVPixelFormat pixfmt
Definition kmsgrab.c:367
static void interpolate(float *out, float v1, float v2, int size)
Definition twinvq.c:85
char prefix[8]
static void copy(const float *p1, float *p2, const int length)

Referenced by bayer_to_rgb24_wrapper(), bayer_to_rgb48_wrapper(), and bayer_to_yv12_wrapper().

◆ CASE [2/3]

#define CASE ( pixfmt,
prefix )
Value:
case pixfmt: copy = bayer_##prefix##_to_rgb48_copy; \
interpolate = bayer_##prefix##_to_rgb48_interpolate; \
break;

◆ CASE [3/3]

#define CASE ( pixfmt,
prefix )
Value:
case pixfmt: copy = bayer_##prefix##_to_yv12_copy; \
interpolate = bayer_##prefix##_to_yv12_interpolate; \
break;

◆ isRGBA32

#define isRGBA32 ( x)
Value:
( \
(x) == AV_PIX_FMT_ARGB \
|| (x) == AV_PIX_FMT_RGBA \
|| (x) == AV_PIX_FMT_BGRA \
|| (x) == AV_PIX_FMT_ABGR \
)
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
Definition pixfmt.h:99
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
Definition pixfmt.h:102
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
Definition pixfmt.h:101
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
Definition pixfmt.h:100

Definition at line 1808 of file swscale_unscaled.c.

Referenced by findRgbConvFn(), and rgbToRgbWrapper().

◆ isRGBA64

#define isRGBA64 ( x)
Value:
( \
|| (x) == AV_PIX_FMT_RGBA64BE \
|| (x) == AV_PIX_FMT_BGRA64LE \
|| (x) == AV_PIX_FMT_BGRA64BE \
)
@ AV_PIX_FMT_RGBA64BE
packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is st...
Definition pixfmt.h:202
@ AV_PIX_FMT_RGBA64LE
packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is st...
Definition pixfmt.h:203
@ AV_PIX_FMT_BGRA64BE
packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is st...
Definition pixfmt.h:204
@ AV_PIX_FMT_BGRA64LE
packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is st...
Definition pixfmt.h:205

Definition at line 1815 of file swscale_unscaled.c.

Referenced by findRgbConvFn().

◆ isRGB48

#define isRGB48 ( x)
Value:
( \
|| (x) == AV_PIX_FMT_RGB48BE \
|| (x) == AV_PIX_FMT_BGR48LE \
|| (x) == AV_PIX_FMT_BGR48BE \
)
@ AV_PIX_FMT_BGR48BE
packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big...
Definition pixfmt.h:145
@ AV_PIX_FMT_RGB48BE
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big...
Definition pixfmt.h:109
@ AV_PIX_FMT_RGB48LE
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as lit...
Definition pixfmt.h:110
@ AV_PIX_FMT_BGR48LE
packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as lit...
Definition pixfmt.h:146

Definition at line 1822 of file swscale_unscaled.c.

Referenced by findRgbConvFn().

◆ isAYUV

#define isAYUV ( x)
Value:
( \
(x) == AV_PIX_FMT_AYUV \
|| (x) == AV_PIX_FMT_VUYA \
|| (x) == AV_PIX_FMT_VUYX \
|| (x) == 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_VUYX
packed VUYX 4:4:4:4, 32bpp, Variant of VUYA where alpha channel is left undefined
Definition pixfmt.h:406
@ 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_VUYA
packed VUYA 4:4:4:4, 32bpp (1 Cr & Cb sample per 1x1 Y & A samples), VUYAVUYA...
Definition pixfmt.h:401

Definition at line 1829 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale(), and findRgbConvFn().

◆ isX2RGB

#define isX2RGB ( x)
Value:
( \
)
@ AV_PIX_FMT_X2BGR10LE
packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), little-endian, X=unused/undefined
Definition pixfmt.h:386
@ AV_PIX_FMT_X2RGB10LE
packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), little-endian, X=unused/undefined
Definition pixfmt.h:384

Definition at line 1836 of file swscale_unscaled.c.

Referenced by findRgbConvFn().

◆ IS_NOT_NE

#define IS_NOT_NE ( Bpp,
desc )
Value:
(Bpp == 2 && (!(desc->flags & AV_PIX_FMT_FLAG_BE) != !HAVE_BIGENDIAN))
const char * desc
Definition libsvtav1.c:83
#define AV_PIX_FMT_FLAG_BE
Pixel format is big-endian.
Definition pixdesc.h:116

Referenced by rgbToRgbWrapper().

◆ CONV_IS

#define CONV_IS ( src,
dst )
Value:
(srcFormat == AV_PIX_FMT_##src && dstFormat == AV_PIX_FMT_##dst)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition dsp.h:87
#define src
Definition vp8dsp.c:248

Referenced by findRgbConvFn().

◆ DITHER_COPY

#define DITHER_COPY ( dst,
dstStride,
src,
srcStride,
bswap,
dbswap )

Definition at line 2159 of file swscale_unscaled.c.

Referenced by planarCopyWrapper().

◆ COPY816

#define COPY816 ( w)
Value:
if (shiftonly) {\
for (j = 0; j < length; j++)\
w(&dstPtr2[j], (srcPtr[j]<<(dst_depth-8)) << dst_shift);\
} else {\
for (j = 0; j < length; j++)\
w(&dstPtr2[j], ((srcPtr[j]<<(dst_depth-8)) |\
(srcPtr[j]>>(2*8-dst_depth))) << dst_shift);\
}
uint8_t w
Definition llvidencdsp.c:39

Referenced by planarCopyWrapper().

◆ COPY_UP

#define COPY_UP ( r,
w )
Value:
if(shiftonly){\
for (; j < length; j++){ \
unsigned int v= r(&srcPtr2[j]) >> src_shift;\
w(&dstPtr2[j], (v << shift) << dst_shift);\
}\
}else{\
for (; j < length; j++){ \
unsigned int v= r(&srcPtr2[j]) >> src_shift;\
w(&dstPtr2[j], ((v << shift) | (v>>(2*src_depth-dst_depth))) << dst_shift);\
}\
}
#define r
Definition input.c:42
static int shift(int a, int b)
Definition bonk.c:261

Referenced by planarCopyWrapper().

◆ IS_DIFFERENT_ENDIANESS

#define IS_DIFFERENT_ENDIANESS ( src_fmt,
dst_fmt,
pix_fmt )
Value:
((src_fmt == pix_fmt ## BE && dst_fmt == pix_fmt ## LE) || \
(src_fmt == pix_fmt ## LE && dst_fmt == pix_fmt ## BE))
static enum AVPixelFormat pix_fmt

Definition at line 2387 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ isByteRGB

#define isByteRGB ( f)
Value:
( \
#define f(width, name)
Definition cbs_vp8.c:236
#define AV_PIX_FMT_BGR32
Definition pixfmt.h:519
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
Definition pixfmt.h:75
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
Definition pixfmt.h:76
#define AV_PIX_FMT_RGB32_1
Definition pixfmt.h:518
#define AV_PIX_FMT_BGR32_1
Definition pixfmt.h:520
#define AV_PIX_FMT_RGB32
Definition pixfmt.h:517

Referenced by ff_get_unscaled_swscale().

◆ isPlanarGray

#define isPlanarGray ( x)
Value:
(isGray(x) && !isALPHA(x))
static av_always_inline int isGray(enum AVPixelFormat pix_fmt)
static av_always_inline int isALPHA(enum AVPixelFormat pix_fmt)

Referenced by ff_get_unscaled_swscale().

Typedef Documentation

◆ rgbConvFn

typedef void(* rgbConvFn) (const uint8_t *, uint8_t *, int)

Definition at line 1842 of file swscale_unscaled.c.

Function Documentation

◆ fillPlane()

static void fillPlane ( uint8_t * plane,
int stride,
int width,
int height,
int y,
uint8_t val )
static

◆ ff_copyPlane()

void ff_copyPlane ( const uint8_t * src,
int srcStride,
int srcSliceY,
int srcSliceH,
int width,
uint8_t * dst,
int dstStride )

◆ planarToNv12Wrapper()

static int planarToNv12Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 147 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ nv12ToPlanarWrapper()

static int nv12ToPlanarWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 167 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarToNv24Wrapper()

static int planarToNv24Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 188 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ nv24ToPlanarWrapper()

static int nv24ToPlanarWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 208 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ nv24_to_yuv420p_chroma()

static void nv24_to_yuv420p_chroma ( uint8_t * dst1,
int dstStride1,
uint8_t * dst2,
int dstStride2,
const uint8_t * src,
int srcStride,
int w,
int h )
static

Definition at line 229 of file swscale_unscaled.c.

Referenced by nv24ToYuv420Wrapper().

◆ nv24ToYuv420Wrapper()

static int nv24ToYuv420Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 253 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarToP01xWrapper()

static int planarToP01xWrapper ( SwsInternal * c,
const uint8_t *const src8[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam8[],
const int dstStride[] )
static

Definition at line 273 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planar8ToP01xleWrapper()

static int planar8ToP01xleWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam8[],
const int dstStride[] )
static

Definition at line 333 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarToYuy2Wrapper()

static int planarToYuy2Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 376 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarToUyvyWrapper()

static int planarToUyvyWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 388 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ yuv422pToYuy2Wrapper()

static int yuv422pToYuy2Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 400 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ yuv422pToUyvyWrapper()

static int yuv422pToUyvyWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 412 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ yuyvToYuv420Wrapper()

static int yuyvToYuv420Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 424 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ yuyvToYuv422Wrapper()

static int yuyvToYuv422Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 441 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ uyvyToYuv420Wrapper()

static int uyvyToYuv420Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 455 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ uyvyToYuv422Wrapper()

static int uyvyToYuv422Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dstParam[],
const int dstStride[] )
static

Definition at line 472 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ gray8aToPacked32()

static void gray8aToPacked32 ( const uint8_t * src,
uint8_t * dst,
int num_pixels,
const uint8_t * palette )
static

Definition at line 486 of file swscale_unscaled.c.

Referenced by palToRgbWrapper().

◆ gray8aToPacked32_1()

static void gray8aToPacked32_1 ( const uint8_t * src,
uint8_t * dst,
int num_pixels,
const uint8_t * palette )
static

Definition at line 494 of file swscale_unscaled.c.

Referenced by palToRgbWrapper().

◆ gray8aToPacked24()

static void gray8aToPacked24 ( const uint8_t * src,
uint8_t * dst,
int num_pixels,
const uint8_t * palette )
static

Definition at line 503 of file swscale_unscaled.c.

Referenced by palToRgbWrapper().

◆ gray8aToPlanar8()

static void gray8aToPlanar8 ( const uint8_t * src,
uint8_t * dst0,
uint8_t * dst1,
uint8_t * dst2,
uint8_t * dstA,
int num_pixels,
const uint8_t * palette )
static

Definition at line 517 of file swscale_unscaled.c.

Referenced by palToGbrpWrapper().

◆ pal8ToPlanar8()

static void pal8ToPlanar8 ( const uint8_t * src,
uint8_t * dst0,
uint8_t * dst1,
uint8_t * dst2,
uint8_t * dstA,
int num_pixels,
const uint8_t * palette )
static

Definition at line 531 of file swscale_unscaled.c.

Referenced by palToGbrpWrapper().

◆ bswap_16bpc()

static int bswap_16bpc ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 545 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ bswap_32bpc()

static int bswap_32bpc ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 572 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ palToRgbWrapper()

static int palToRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 600 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ palToGbrpWrapper()

static int palToGbrpWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 646 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ packed16togbra16()

static void packed16togbra16 ( const uint8_t * src,
int srcStride,
uint16_t * dst[],
const int dstStride[],
int srcSliceH,
int src_alpha,
int swap,
int shift,
int width )
static

Definition at line 685 of file swscale_unscaled.c.

Referenced by Rgb16ToPlanarRgb16Wrapper().

◆ packed30togbra10()

static void packed30togbra10 ( const uint8_t * src,
int srcStride,
uint16_t * dst[],
const int dstStride[],
int srcSliceH,
int swap,
int bpc,
int shift,
int width )
static

Definition at line 819 of file swscale_unscaled.c.

Referenced by Rgb16ToPlanarRgb16Wrapper().

◆ Rgb16ToPlanarRgb16Wrapper()

static int Rgb16ToPlanarRgb16Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 891 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ gbr16ptopacked16()

static void gbr16ptopacked16 ( const uint16_t * src[],
const int srcStride[],
uint8_t * dst,
int dstStride,
int srcSliceH,
int alpha,
int swap,
int bpp,
int width )
static

Definition at line 964 of file swscale_unscaled.c.

Referenced by planarRgb16ToRgb16Wrapper().

◆ gbr16ptopacked30()

static void gbr16ptopacked30 ( const uint16_t * src[],
const int srcStride[],
uint8_t * dst,
int dstStride,
int srcSliceH,
int swap,
int shift,
int width )
static

Definition at line 1083 of file swscale_unscaled.c.

Referenced by planarRgb16ToRgb16Wrapper().

◆ planarRgb16ToRgb16Wrapper()

static int planarRgb16ToRgb16Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1117 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ gbr24ptopacked24()

static void gbr24ptopacked24 ( const uint8_t * src[],
const int srcStride[],
uint8_t * dst,
int dstStride,
int srcSliceH,
int width )
static

Definition at line 1188 of file swscale_unscaled.c.

Referenced by planarRgbaToRgbWrapper(), and planarRgbToRgbWrapper().

◆ gbr24ptopacked32()

static void gbr24ptopacked32 ( const uint8_t * src[],
const int srcStride[],
uint8_t * dst,
int dstStride,
int srcSliceH,
int alpha_first,
int width )
static

Definition at line 1206 of file swscale_unscaled.c.

Referenced by planarRgbToRgbWrapper().

◆ gbraptopacked32()

static void gbraptopacked32 ( const uint8_t * src[],
const int srcStride[],
uint8_t * dst,
int dstStride,
int srcSliceH,
int alpha_first,
int width )
static

Definition at line 1235 of file swscale_unscaled.c.

Referenced by planarRgbaToRgbWrapper().

◆ planarRgbaToRgbWrapper()

static int planarRgbaToRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1264 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarRgbToRgbWrapper()

static int planarRgbToRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1322 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarRgbToplanarRgbWrapper()

static int planarRgbToplanarRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1380 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ packedtogbr24p()

static void packedtogbr24p ( const uint8_t * src,
int srcStride,
uint8_t *const dst[],
const int dstStride[],
int srcSliceH,
int alpha_first,
int inc_size,
int width )
static

Definition at line 1404 of file swscale_unscaled.c.

Referenced by rgbToPlanarRgbWrapper().

◆ rgbToPlanarRgbWrapper()

static int rgbToPlanarRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1433 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ packed24togbrap()

static void packed24togbrap ( const uint8_t * src,
int srcStride,
uint8_t *const dst[],
const int dstStride[],
int srcSliceH,
int width )
static

Definition at line 1480 of file swscale_unscaled.c.

Referenced by rgbToPlanarRgbaWrapper().

◆ packed32togbrap()

static void packed32togbrap ( const uint8_t * src,
int srcStride,
uint8_t *const dst[],
const int dstStride[],
int srcSliceH,
int alpha_first,
int width )
static

Definition at line 1507 of file swscale_unscaled.c.

Referenced by rgbToPlanarRgbaWrapper().

◆ rgbToPlanarRgbaWrapper()

static int rgbToPlanarRgbaWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1543 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ bayer_to_rgb24_wrapper()

static int bayer_to_rgb24_wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1652 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ bayer_to_rgb48_wrapper()

static int bayer_to_rgb48_wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1702 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ bayer_to_yv12_wrapper()

static int bayer_to_yv12_wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 1752 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ findRgbConvFn()

static rgbConvFn findRgbConvFn ( SwsInternal * c)
static

Definition at line 1843 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale(), and rgbToRgbWrapper().

◆ rgbToRgbWrapper()

static int rgbToRgbWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2001 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ bgr24ToYv12Wrapper()

static int bgr24ToYv12Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2062 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ yvu9ToYv12Wrapper()

static int yvu9ToYv12Wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2079 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ uint_y_to_float_y_wrapper()

static int uint_y_to_float_y_wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2095 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ float_y_to_uint_y_wrapper()

static int float_y_to_uint_y_wrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2115 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ packedCopyWrapper()

static int packedCopyWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2138 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ planarCopyWrapper()

static int planarCopyWrapper ( SwsInternal * c,
const uint8_t *const src[],
const int srcStride[],
int srcSliceY,
int srcSliceH,
uint8_t *const dst[],
const int dstStride[] )
static

Definition at line 2220 of file swscale_unscaled.c.

Referenced by ff_get_unscaled_swscale().

◆ ff_get_unscaled_swscale()

void ff_get_unscaled_swscale ( SwsInternal * c)

Set c->convert_unscaled to an unscaled converter if one exists for the specific source and destination formats, bit depths, flags, etc.

Definition at line 2392 of file swscale_unscaled.c.

Referenced by ff_sws_init_single_context().

Variable Documentation

◆ dithers

const uint8_t dithers[8][8][8]
static