00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AVRESAMPLE_AVRESAMPLE_H
00022 #define AVRESAMPLE_AVRESAMPLE_H
00023
00096 #include "libavutil/avutil.h"
00097 #include "libavutil/channel_layout.h"
00098 #include "libavutil/dict.h"
00099 #include "libavutil/log.h"
00100
00101 #include "libavresample/version.h"
00102
00103 #define AVRESAMPLE_MAX_CHANNELS 32
00104
00105 typedef struct AVAudioResampleContext AVAudioResampleContext;
00106
00108 enum AVMixCoeffType {
00109 AV_MIX_COEFF_TYPE_Q8,
00110 AV_MIX_COEFF_TYPE_Q15,
00111 AV_MIX_COEFF_TYPE_FLT,
00112 AV_MIX_COEFF_TYPE_NB,
00113 };
00114
00116 enum AVResampleFilterType {
00117 AV_RESAMPLE_FILTER_TYPE_CUBIC,
00118 AV_RESAMPLE_FILTER_TYPE_BLACKMAN_NUTTALL,
00119 AV_RESAMPLE_FILTER_TYPE_KAISER,
00120 };
00121
00125 unsigned avresample_version(void);
00126
00131 const char *avresample_configuration(void);
00132
00136 const char *avresample_license(void);
00137
00148 const AVClass *avresample_get_class(void);
00149
00155 AVAudioResampleContext *avresample_alloc_context(void);
00156
00163 int avresample_open(AVAudioResampleContext *avr);
00164
00178 void avresample_close(AVAudioResampleContext *avr);
00179
00187 void avresample_free(AVAudioResampleContext **avr);
00188
00211 int avresample_build_matrix(uint64_t in_layout, uint64_t out_layout,
00212 double center_mix_level, double surround_mix_level,
00213 double lfe_mix_level, int normalize, double *matrix,
00214 int stride, enum AVMatrixEncoding matrix_encoding);
00215
00228 int avresample_get_matrix(AVAudioResampleContext *avr, double *matrix,
00229 int stride);
00230
00249 int avresample_set_matrix(AVAudioResampleContext *avr, const double *matrix,
00250 int stride);
00251
00266 int avresample_set_compensation(AVAudioResampleContext *avr, int sample_delta,
00267 int compensation_distance);
00268
00312 int avresample_convert(AVAudioResampleContext *avr, uint8_t **output,
00313 int out_plane_size, int out_samples, uint8_t **input,
00314 int in_plane_size, int in_samples);
00315
00329 int avresample_get_delay(AVAudioResampleContext *avr);
00330
00346 int avresample_available(AVAudioResampleContext *avr);
00347
00365 int avresample_read(AVAudioResampleContext *avr, uint8_t **output, int nb_samples);
00366
00371 #endif