00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AVRESAMPLE_AUDIO_MIX_H
00022 #define AVRESAMPLE_AUDIO_MIX_H
00023
00024 #include <stdint.h>
00025
00026 #include "libavutil/samplefmt.h"
00027 #include "avresample.h"
00028 #include "audio_data.h"
00029
00030 typedef void (mix_func)(uint8_t **src, void **matrix, int len, int out_ch,
00031 int in_ch);
00032
00033 typedef struct AudioMix AudioMix;
00034
00055 void ff_audio_mix_set_func(AudioMix *am, enum AVSampleFormat fmt,
00056 enum AVMixCoeffType coeff_type, int in_channels,
00057 int out_channels, int ptr_align, int samples_align,
00058 const char *descr, void *mix_func);
00059
00069 AudioMix *ff_audio_mix_alloc(AVAudioResampleContext *avr);
00070
00074 void ff_audio_mix_free(AudioMix **am);
00075
00079 int ff_audio_mix(AudioMix *am, AudioData *src);
00080
00084 int ff_audio_mix_get_matrix(AudioMix *am, double *matrix, int stride);
00085
00089 int ff_audio_mix_set_matrix(AudioMix *am, const double *matrix, int stride);
00090
00091
00092
00093 void ff_audio_mix_init_x86(AudioMix *am);
00094
00095 #endif