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
00075 void (*float_interleave)(float *dst, const float **src, unsigned int len,
00076 int channels);
00077 } FmtConvertContext;
00078
00079 void ff_float_interleave_c(float *dst, const float **src, unsigned int len,
00080 int channels);
00081
00082 void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx);
00083
00084 void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);
00085 void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx);
00086 void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx);
00087
00088
00089 void float_interleave(float *dst, const float **src, long len, int channels);
00090 void float_interleave_noscale(float *dst, const float **src, long len, int channels);
00091
00092 #endif