00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef AVCODEC_FMTCONVERT_H
00024 #define AVCODEC_FMTCONVERT_H
00025
00026 #include "avcodec.h"
00027
00028 typedef struct FmtConvertContext {
00038 void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len);
00039
00053 void (*float_to_int16)(int16_t *dst, const float *src, long len);
00054
00069 void (*float_to_int16_interleave)(int16_t *dst, const float **src,
00070 long len, int channels);
00071
00083 void (*float_interleave)(float *dst, const float **src, unsigned int len,
00084 int channels);
00085 } FmtConvertContext;
00086
00087 void ff_float_interleave_c(float *dst, const float **src, unsigned int len,
00088 int channels);
00089
00090 void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx);
00091
00092 void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);
00093 void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx);
00094 void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx);
00095
00096
00097 void float_interleave(float *dst, const float **src, long len, int channels);
00098 void float_interleave_noscale(float *dst, const float **src, long len, int channels);
00099
00100 #endif