X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ffmtconvert.h;h=7de890bd6ab646a5c6cdcbc8e25fd6809cf65cdf;hb=3b8e895237592fdaffe87cdcd204104200b9ccf9;hp=93c3401f57c1aa563abd0dfc5571292178c87734;hpb=38282149b6ce8f4b8361e3b84542ba9aa8a1f32f;p=ffmpeg diff --git a/libavcodec/fmtconvert.h b/libavcodec/fmtconvert.h index 93c3401f57c..7de890bd6ab 100644 --- a/libavcodec/fmtconvert.h +++ b/libavcodec/fmtconvert.h @@ -35,58 +35,27 @@ typedef struct FmtConvertContext { * @param len number of elements to convert. * constraints: multiple of 8 */ - void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len); + void (*int32_to_float_fmul_scalar)(float *dst, const int32_t *src, + float mul, int len); /** - * Convert an array of float to an array of int16_t. - * - * Convert floats from in the range [-32768.0,32767.0] to ints - * without rescaling - * - * @param dst destination array of int16_t. - * constraints: 16-byte aligned - * @param src source array of float. - * constraints: 16-byte aligned - * @param len number of elements to convert. - * constraints: multiple of 8 - */ - void (*float_to_int16)(int16_t *dst, const float *src, long len); - - /** - * Convert multiple arrays of float to an interleaved array of int16_t. - * - * Convert floats from in the range [-32768.0,32767.0] to ints - * without rescaling - * - * @param dst destination array of interleaved int16_t. + * Convert an array of int32_t to float and multiply by a float value from another array, + * stepping along the float array once for each 8 integers. + * @param c pointer to FmtConvertContext. + * @param dst destination array of float. * constraints: 16-byte aligned - * @param src source array of float arrays, one for each channel. + * @param src source array of int32_t. * constraints: 16-byte aligned + * @param mul source array of float multipliers. * @param len number of elements to convert. * constraints: multiple of 8 - * @param channels number of channels */ - void (*float_to_int16_interleave)(int16_t *dst, const float **src, - long len, int channels); + void (*int32_to_float_fmul_array8)(struct FmtConvertContext *c, + float *dst, const int32_t *src, + const float *mul, int len); - /** - * Convert multiple arrays of float to an array of interleaved float. - * - * @param dst destination array of interleaved float. - * constraints: 16-byte aligned - * @param src source array of float arrays, one for each channel. - * constraints: 16-byte aligned - * @param len number of elements to convert. - * constraints: multiple of 8 - * @param channels number of channels - */ - void (*float_interleave)(float *dst, const float **src, unsigned int len, - int channels); } FmtConvertContext; -void ff_float_interleave_c(float *dst, const float **src, unsigned int len, - int channels); - void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx); void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);