diff options
author | Peter Ross <pross@xvid.org> | 2008-08-01 13:53:18 +0000 |
---|---|---|
committer | Peter Ross <pross@xvid.org> | 2008-08-01 13:53:18 +0000 |
commit | 82cee279a5e654258ecc11b6cff801bc4c15538d (patch) | |
tree | 53c49a3b2560f55c50531eeb0807bf8950a780ac /libavcodec/audioconvert.h | |
parent | 8a464e75802a3a022d9d466a5e331fc519cc34ad (diff) | |
download | ffmpeg-82cee279a5e654258ecc11b6cff801bc4c15538d.tar.gz |
Modify av_audio_convert() to use AVAudioConvert context struct; add av_audio_convert_alloc() and av_audio_convert_free() support functions.
Originally committed as revision 14496 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/audioconvert.h')
-rw-r--r-- | libavcodec/audioconvert.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libavcodec/audioconvert.h b/libavcodec/audioconvert.h index 210cc87716..e10849bd3a 100644 --- a/libavcodec/audioconvert.h +++ b/libavcodec/audioconvert.h @@ -54,4 +54,38 @@ const char *avcodec_get_sample_fmt_name(int sample_fmt); */ enum SampleFormat avcodec_get_sample_fmt(const char* name); +struct AVAudioConvert; +typedef struct AVAudioConvert AVAudioConvert; + +/** + * Create an audio sample format converter context + * @param out_fmt Output sample format + * @param out_channels Number of output channels + * @param in_fmt Input sample format + * @param in_channels Number of input channels + * @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore. + * @param flags See FF_MM_xx + * @return NULL on error + */ +AVAudioConvert *av_audio_convert_alloc(enum SampleFormat out_fmt, int out_channels, + enum SampleFormat in_fmt, int in_channels, + const float *matrix, int flags); + +/** + * Free audio sample format converter context + */ +void av_audio_convert_free(AVAudioConvert *ctx); + +/** + * Convert between audio sample formats + * @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel. + * @param[in] out_stride distance between consecutive input samples (measured in bytes) + * @param[in] in array of input buffers for each channel + * @param[in] in_stride distance between consecutive output samples (measured in bytes) + * @param len length of audio frame size (measured in samples) + */ +int av_audio_convert(AVAudioConvert *ctx, + void * const out[6], const int out_stride[6], + const void * const in[6], const int in_stride[6], int len); + #endif /* FFMPEG_AUDIOCONVERT_H */ |