From f8247040e6231c4b3b5099ea3a526348b7941566 Mon Sep 17 00:00:00 2001 From: russell Date: Sat, 19 Jan 2008 00:19:29 +0000 Subject: Creating tag for the release of asterisk-1.6.0-beta1 git-svn-id: http://svn.digium.com/svn/asterisk/tags/1.6.0-beta1@99163 f38db490-d61c-443f-a65b-d21fe96a405b --- trunk/main/libresample/include/libresample.h | 120 +++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 trunk/main/libresample/include/libresample.h (limited to 'trunk/main/libresample/include/libresample.h') diff --git a/trunk/main/libresample/include/libresample.h b/trunk/main/libresample/include/libresample.h new file mode 100644 index 000000000..e5ce4851a --- /dev/null +++ b/trunk/main/libresample/include/libresample.h @@ -0,0 +1,120 @@ +/********************************************************************** + + resample.h + + Real-time library interface by Dominic Mazzoni + + Based on resample-1.7: + http://www-ccrma.stanford.edu/~jos/resample/ + + License: LGPL - see the file LICENSE.txt for more information + +**********************************************************************/ + +/*! + * \file + * \brief libresample API + * \author Dominic Mazzoni + */ + +#ifndef LIBRESAMPLE_INCLUDED +#define LIBRESAMPLE_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/*! + * \brief Create a resampler + * + * \arg highQuality Set this argument to non-zero to enable higher quality + * resampling. + * \arg minFactor This is the minimum resampling factor that will be used for + * this resampler. The resampling factor is calculated in the following + * way: ( from sample rate / to sample rate ). + * \arg maxFactor This is the maximum resampling factor that will be used for + * this resampler. + * + * Use this function to create a new resampler that will maintain state + * information about the stream of audio being resampled. + * + * \return A handle to a new resampler + */ +void *resample_open(int highQuality, + double minFactor, + double maxFactor); + +/*! + * \brief Duplicate a resampler + * + * \arg handle the resampler to duplicate + * + * \return A new handle to a resampler, initialized with the same parameters + * used to create the original resampler. + */ +void *resample_dup(const void *handle); + +/*! + * \brief Get filter width for resampler + * + * \arg handle the resampler + * + * \return the filter width. + */ +int resample_get_filter_width(const void *handle); + +/*! + * \brief Resample a chunk of audio + * + * \arg handle the resampler + * \arg factor the resampling factor. This factor should be calculated as + * ( from sample rate / to sample rate ). So, for converting from 8 kHz + * to 16 kHz, this value would be 2.0. + * \arg inBuffer the input buffer for audio to resample. + * \arg inBufferLen the number of samples in the input buffer + * \arg lastFlag Set this argument to non-zero if the data in the input buffer + * is known to be the end of a stream. This would be used if you're + * resampling a file, for example. + * \arg inBufferUsed This is an output parameter that indicates how many + * samples were consumed from the input buffer. Generally, this function + * is called in a loop until you know that the entire input buffer has + * been consumed, as it may take multiple calls to complete. + * \arg outBuffer This is the output buffer. This function will write the + * resampled audio into this buffer. + * \arg outBufferLen This parameter specifies how many samples there is room + * for in the output buffer. + * + * This is the main function used for resampling audio. It should be called + * in a loop until all of the data from the input buffer is consumed, or the + * output buffer has been filled. + * + * \return the number of samples written to the output buffer. If the return + * value is equal to the value provided in the outBufferLen parameter, + * then the output buffer has been filled. + */ +int resample_process(void *handle, + double factor, + float *inBuffer, + int inBufferLen, + int lastFlag, + int *inBufferUsed, + float *outBuffer, + int outBufferLen); + +/*! + * \brief Close a resampler + * + * \arg handle the resampler to close + * + * Use this function to release a handle to a resampler that was created using + * either resample_open() or resample_dup(). + * + * \return nothing. + */ +void resample_close(void *handle); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* LIBRESAMPLE_INCLUDED */ -- cgit v1.2.3