gavl
Data Fields
gavl_dsp_funcs_t Struct Reference

Function table. More...

#include <gavldsp.h>

Data Fields

int(* sad_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)
 Get the sum of absolute differences (RGB/BGR15) More...
 
int(* sad_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)
 Get the sum of absolute differences (RGB/BGR16) More...
 
int(* sad_8 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)
 Get the sum of absolute differences (8 bit) More...
 
int(* sad_16 )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)
 Get the sum of absolute differences (16 bit) More...
 
float(* sad_f )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)
 Get the sum of absolute differences (float) More...
 
void(* average_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)
 Average 2 scanlines (RGB/BGR15) More...
 
void(* average_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)
 Average 2 scanlines (RGB/BGR16) More...
 
void(* average_8 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)
 Average 2 scanlines (8 bit) More...
 
void(* average_16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)
 Average 2 scanlines (16 bit) More...
 
void(* average_f )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)
 Average 2 scanlines (float) More...
 
void(* interpolate_rgb15 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float)
 Interpolate 2 scanlines (RGB/BGR15) More...
 
void(* interpolate_rgb16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)
 Interpolate 2 scanlines (RGB/BGR16) More...
 
void(* interpolate_8 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)
 Interpolate 2 scanlines (8 bit) More...
 
void(* interpolate_16 )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)
 Interpolate 2 scanlines (16 bit) More...
 
void(* interpolate_f )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)
 Interpolate 2 scanlines (float) More...
 
void(* bswap_16 )(void *ptr, int len)
 Do 16 bit endian swapping. More...
 
void(* bswap_32 )(void *ptr, int len)
 Do 32 byte endian swapping. More...
 
void(* bswap_64 )(void *ptr, int len)
 Do 64 byte endian swapping. More...
 
void(* add_u8 )(const void *src1, const void *src2, void *dst, int num)
 Add 2 uint8_t vectors. More...
 
void(* add_u8_s )(const void *src1, const void *src2, void *dst, int num)
 Add 2 uint8_t vectors (for audio stored as unsigned) More...
 
void(* add_s8 )(const void *src1, const void *src2, void *dst, int num)
 Add 2 int8_t vectors. More...
 
void(* add_u16 )(const void *src1, const void *src2, void *dst, int num)
 Add 2 uint16_t vectors. More...
 
void(* add_u16_s )(const void *src1, const void *src2, void *dst, int num)
 Add 2 uint16_t vectors (for audio stored as unsigned) More...
 
void(* add_s16 )(const void *src1, const void *src2, void *dst, int num)
 Add 2 int16_t vectors. More...
 
void(* add_s32 )(const void *src1, const void *src2, void *dst, int num)
 Add 2 int32_t vectors. More...
 
void(* add_float )(const void *src1, const void *src2, void *dst, int num)
 Add 2 float vectors. More...
 
void(* add_double )(const void *src1, const void *src2, void *dst, int num)
 Add 2 float vectors. More...
 
void(* sub_u8 )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 uint8_t vectors. More...
 
void(* sub_u8_s )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 uint8_t vectors (for audio stored as unsigned) More...
 
void(* sub_s8 )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 int8_t vectors. More...
 
void(* sub_u16 )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 uint16_t vectors. More...
 
void(* sub_u16_s )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 uint16_t vectors (for audio stored as unsigned) More...
 
void(* sub_s16 )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 int16_t vectors. More...
 
void(* sub_s32 )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 int32_t vectors. More...
 
void(* sub_float )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 float vectors. More...
 
void(* sub_double )(const void *src1, const void *src2, void *dst, int num)
 Subtract 2 float vectors. More...
 

Detailed Description

Function table.

This structure contains pointers to the available DSP functions.

Field Documentation

int(* gavl_dsp_funcs_t::sad_rgb15)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (RGB/BGR15)

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

The RGB values will be scaled to 8 bit before the differences are calculated.

int(* gavl_dsp_funcs_t::sad_rgb16)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (RGB/BGR16)

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences

The RGB values will be scaled to 8 bit before the differences are calculated.

int(* gavl_dsp_funcs_t::sad_8)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (8 bit)

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences
int(* gavl_dsp_funcs_t::sad_16)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (16 bit)

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences
float(* gavl_dsp_funcs_t::sad_f)(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)

Get the sum of absolute differences (float)

Parameters
src_1Plane 1
src_2Plane 2
stride_1Byte distance between scanlines for src_1
stride_2Byte distance between scanlines for src_2
wWidth
hHeight
Returns
The sum of absolute differences
void(* gavl_dsp_funcs_t::average_rgb15)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (RGB/BGR15)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
void(* gavl_dsp_funcs_t::average_rgb16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (RGB/BGR16)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
void(* gavl_dsp_funcs_t::average_8)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (8 bit)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of bytes
void(* gavl_dsp_funcs_t::average_16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (16 bit)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of shorts
void(* gavl_dsp_funcs_t::average_f)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)

Average 2 scanlines (float)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of floats
void(* gavl_dsp_funcs_t::interpolate_rgb15)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float)

Interpolate 2 scanlines (RGB/BGR15)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

void(* gavl_dsp_funcs_t::interpolate_rgb16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (RGB/BGR16)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of pixels
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

void(* gavl_dsp_funcs_t::interpolate_8)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (8 bit)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of bytes
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

void(* gavl_dsp_funcs_t::interpolate_16)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (16 bit)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of shorts
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

void(* gavl_dsp_funcs_t::interpolate_f)(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)

Interpolate 2 scanlines (float)

Parameters
src_1Scanline 1
src_2Scanline 2
dstDestination
numNumber of floats
facFactor for src_1 (0.0 .. 1.0)

Sets the destination to src_1 * fac + src_2 * (1.0-fac)

void(* gavl_dsp_funcs_t::bswap_16)(void *ptr, int len)

Do 16 bit endian swapping.

Parameters
ptrPointer to the data
lenLen in 16 bit words
void(* gavl_dsp_funcs_t::bswap_32)(void *ptr, int len)

Do 32 byte endian swapping.

Parameters
ptrPointer to the data
lenLen in 32 bit doublewords
void(* gavl_dsp_funcs_t::bswap_64)(void *ptr, int len)

Do 64 byte endian swapping.

Parameters
ptrPointer to the data
lenLen in 64 bit quadwords
void(* gavl_dsp_funcs_t::add_u8)(const void *src1, const void *src2, void *dst, int num)

Add 2 uint8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_u8_s)(const void *src1, const void *src2, void *dst, int num)

Add 2 uint8_t vectors (for audio stored as unsigned)

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_s8)(const void *src1, const void *src2, void *dst, int num)

Add 2 int8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_u16)(const void *src1, const void *src2, void *dst, int num)

Add 2 uint16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_u16_s)(const void *src1, const void *src2, void *dst, int num)

Add 2 uint16_t vectors (for audio stored as unsigned)

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_s16)(const void *src1, const void *src2, void *dst, int num)

Add 2 int16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_s32)(const void *src1, const void *src2, void *dst, int num)

Add 2 int32_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_float)(const void *src1, const void *src2, void *dst, int num)

Add 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::add_double)(const void *src1, const void *src2, void *dst, int num)

Add 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_u8)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_u8_s)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint8_t vectors (for audio stored as unsigned)

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_s8)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int8_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_u16)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_u16_s)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 uint16_t vectors (for audio stored as unsigned)

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_s16)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int16_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_s32)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 int32_t vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_float)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst

void(* gavl_dsp_funcs_t::sub_double)(const void *src1, const void *src2, void *dst, int num)

Subtract 2 float vectors.

Parameters
src1Source 1
src2Source 2
dstDestination
numNumber of entries

src1 and/or src2 can be identical to dst


The documentation for this struct was generated from the following file: