FFmpeg
Public Attributes | List of all members
AVFloatDSPContext Struct Reference

Public Attributes

void(* vector_fmul )(float *dst, const float *src0, const float *src1, int len)
 Calculate the entry wise product of two vectors of floats and store the result in a vector of floats. More...
 
void(* vector_fmac_scalar )(float *dst, const float *src, float mul, int len)
 Multiply a vector of floats by a scalar float and add to destination vector. More...
 
void(* vector_dmac_scalar )(double *dst, const double *src, double mul, int len)
 Multiply a vector of doubles by a scalar double and add to destination vector. More...
 
void(* vector_fmul_scalar )(float *dst, const float *src, float mul, int len)
 Multiply a vector of floats by a scalar float. More...
 
void(* vector_dmul_scalar )(double *dst, const double *src, double mul, int len)
 Multiply a vector of double by a scalar double. More...
 
void(* vector_fmul_window )(float *dst, const float *src0, const float *src1, const float *win, int len)
 Overlap/add with window function. More...
 
void(* vector_fmul_add )(float *dst, const float *src0, const float *src1, const float *src2, int len)
 Calculate the entry wise product of two vectors of floats, add a third vector of floats and store the result in a vector of floats. More...
 
void(* vector_fmul_reverse )(float *dst, const float *src0, const float *src1, int len)
 Calculate the entry wise product of two vectors of floats, and store the result in a vector of floats. More...
 
void(* butterflies_float )(float *av_restrict v1, float *av_restrict v2, int len)
 Calculate the sum and difference of two vectors of floats. More...
 
float(* scalarproduct_float )(const float *v1, const float *v2, int len)
 Calculate the scalar product of two vectors of floats. More...
 

Member Data Documentation

§ butterflies_float

void(* AVFloatDSPContext::butterflies_float) (float *av_restrict v1, float *av_restrict v2, int len)

Calculate the sum and difference of two vectors of floats.

Parameters
v1first input vector, sum output, 16-byte aligned
v2second input vector, difference output, 16-byte aligned
lenlength of vectors, multiple of 4

§ scalarproduct_float

float(* AVFloatDSPContext::scalarproduct_float) (const float *v1, const float *v2, int len)

Calculate the scalar product of two vectors of floats.

Parameters
v1first vector, 16-byte aligned
v2second vector, 16-byte aligned
lenlength of vectors, multiple of 4
Returns
sum of elementwise products

§ vector_dmac_scalar

void(* AVFloatDSPContext::vector_dmac_scalar) (double *dst, const double *src, double mul, int len)

Multiply a vector of doubles by a scalar double and add to destination vector.

Source and destination vectors must overlap exactly or not at all.

Parameters
dstresult vector constraints: 32-byte aligned
srcinput vector constraints: 32-byte aligned
mulscalar value
lenlength of vector constraints: multiple of 16

§ vector_dmul_scalar

void(* AVFloatDSPContext::vector_dmul_scalar) (double *dst, const double *src, double mul, int len)

Multiply a vector of double by a scalar double.

Source and destination vectors must overlap exactly or not at all.

Parameters
dstresult vector constraints: 32-byte aligned
srcinput vector constraints: 32-byte aligned
mulscalar value
lenlength of vector constraints: multiple of 8

§ vector_fmac_scalar

void(* AVFloatDSPContext::vector_fmac_scalar) (float *dst, const float *src, float mul, int len)

Multiply a vector of floats by a scalar float and add to destination vector.

Source and destination vectors must overlap exactly or not at all.

Parameters
dstresult vector constraints: 32-byte aligned
srcinput vector constraints: 32-byte aligned
mulscalar value
lenlength of vector constraints: multiple of 16

§ vector_fmul

void(* AVFloatDSPContext::vector_fmul) (float *dst, const float *src0, const float *src1, int len)

Calculate the entry wise product of two vectors of floats and store the result in a vector of floats.

Parameters
dstoutput vector constraints: 32-byte aligned
src0first input vector constraints: 32-byte aligned
src1second input vector constraints: 32-byte aligned
lennumber of elements in the input constraints: multiple of 16

§ vector_fmul_add

void(* AVFloatDSPContext::vector_fmul_add) (float *dst, const float *src0, const float *src1, const float *src2, int len)

Calculate the entry wise product of two vectors of floats, add a third vector of floats and store the result in a vector of floats.

Parameters
dstoutput vector constraints: 32-byte aligned
src0first input vector constraints: 32-byte aligned
src1second input vector constraints: 32-byte aligned
src2third input vector constraints: 32-byte aligned
lennumber of elements in the input constraints: multiple of 16

§ vector_fmul_reverse

void(* AVFloatDSPContext::vector_fmul_reverse) (float *dst, const float *src0, const float *src1, int len)

Calculate the entry wise product of two vectors of floats, and store the result in a vector of floats.

The second vector of floats is iterated over in reverse order.

Parameters
dstoutput vector constraints: 32-byte aligned
src0first input vector constraints: 32-byte aligned
src1second input vector constraints: 32-byte aligned
lennumber of elements in the input constraints: multiple of 16

§ vector_fmul_scalar

void(* AVFloatDSPContext::vector_fmul_scalar) (float *dst, const float *src, float mul, int len)

Multiply a vector of floats by a scalar float.

Source and destination vectors must overlap exactly or not at all.

Parameters
dstresult vector constraints: 16-byte aligned
srcinput vector constraints: 16-byte aligned
mulscalar value
lenlength of vector constraints: multiple of 4

§ vector_fmul_window

void(* AVFloatDSPContext::vector_fmul_window) (float *dst, const float *src0, const float *src1, const float *win, int len)

Overlap/add with window function.

Used primarily by MDCT-based audio codecs. Source and destination vectors must overlap exactly or not at all.

Parameters
dstresult vector constraints: 16-byte aligned
src0first source vector constraints: 16-byte aligned
src1second source vector constraints: 16-byte aligned
winhalf-window vector constraints: 16-byte aligned
lenlength of vector constraints: multiple of 4

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