00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SWR_AUDIOCONVERT_H
00024 #define SWR_AUDIOCONVERT_H
00025
00032 #include "swresample_internal.h"
00033 #include "libavutil/cpu.h"
00034 #include "libavutil/audioconvert.h"
00035
00036
00037 typedef void (conv_func_type)(uint8_t *po, const uint8_t *pi, int is, int os, uint8_t *end);
00038 typedef void (simd_func_type)(uint8_t **dst, const uint8_t **src, int len);
00039
00040 typedef struct AudioConvert {
00041 int channels;
00042 conv_func_type *conv_f;
00043 simd_func_type *simd_f;
00044 const int *ch_map;
00045 uint8_t silence[8];
00046 }AudioConvert;
00047
00058 AudioConvert *swri_audio_convert_alloc(enum AVSampleFormat out_fmt,
00059 enum AVSampleFormat in_fmt,
00060 int channels, const int *ch_map,
00061 int flags);
00062
00067 void swri_audio_convert_free(AudioConvert **ctx);
00068
00075 int swri_audio_convert(AudioConvert *ctx, AudioData *out, AudioData *in, int len);
00076
00077 #endif