Files
asterisk/main/libresample/include/libresample.h
Russell Bryant 3cf77c4c7f Fix a bunch of places where \arg was used instead of \param. Using \arg
to document arguments seems logical, and does work, but is not the best
thing to use.

\arg in doxygen is simply for creating non-nested unordered lists.  \param is
the correct tag to use to document function parameters, and will come out
better in the generated documentation.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@127401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-02 14:50:45 +00:00

121 lines
3.8 KiB
C

/**********************************************************************
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
*
* \param highQuality Set this argument to non-zero to enable higher quality
* resampling.
* \param 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 ).
* \param 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
*
* \param 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
*
* \param handle the resampler
*
* \return the filter width.
*/
int resample_get_filter_width(const void *handle);
/*!
* \brief Resample a chunk of audio
*
* \param handle the resampler
* \param 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.
* \param inBuffer the input buffer for audio to resample.
* \param inBufferLen the number of samples in the input buffer
* \param 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.
* \param 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.
* \param outBuffer This is the output buffer. This function will write the
* resampled audio into this buffer.
* \param 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
*
* \param 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 */