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
00035
00036 typedef void (conv_func_type)(uint8_t *po, const uint8_t *pi, int is, int os, uint8_t *end);
00037 typedef void (simd_func_type)(uint8_t **dst, const uint8_t **src, int len);
00038
00039 typedef struct AudioConvert {
00040 int channels;
00041 int in_simd_align_mask;
00042 int out_simd_align_mask;
00043 conv_func_type *conv_f;
00044 simd_func_type *simd_f;
00045 const int *ch_map;
00046 uint8_t silence[8];
00047 }AudioConvert;
00048
00059 AudioConvert *swri_audio_convert_alloc(enum AVSampleFormat out_fmt,
00060 enum AVSampleFormat in_fmt,
00061 int channels, const int *ch_map,
00062 int flags);
00063
00068 void swri_audio_convert_free(AudioConvert **ctx);
00069
00076 int swri_audio_convert(AudioConvert *ctx, AudioData *out, AudioData *in, int len);
00077
00078 #endif