| gavl
    | 
Audio format converter. More...
| Typedefs | |
| typedef struct gavl_audio_converter_s | gavl_audio_converter_t | 
| Opaque audio converter structure. | |
| Functions | |
| GAVL_PUBLIC gavl_audio_converter_t * | gavl_audio_converter_create () | 
| Creates an audio converter. | |
| GAVL_PUBLIC void | gavl_audio_converter_destroy (gavl_audio_converter_t *cnv) | 
| Destroys an audio converter and frees all associated memory. | |
| GAVL_PUBLIC gavl_audio_options_t * | gavl_audio_converter_get_options (gavl_audio_converter_t *cnv) | 
| gets options of an audio converter | |
| GAVL_PUBLIC int | gavl_audio_converter_init (gavl_audio_converter_t *cnv, const gavl_audio_format_t *input_format, const gavl_audio_format_t *output_format) | 
| Initialize an audio converter. | |
| GAVL_PUBLIC int | gavl_audio_converter_init_resample (gavl_audio_converter_t *cnv, const gavl_audio_format_t *format) | 
| Initialize an audio converter just for resampling. | |
| GAVL_PUBLIC int | gavl_audio_converter_reinit (gavl_audio_converter_t *cnv) | 
| Reinitialize an audio converter. | |
| GAVL_PUBLIC void | gavl_audio_convert (gavl_audio_converter_t *cnv, const gavl_audio_frame_t *input_frame, gavl_audio_frame_t *output_frame) | 
| Convert audio. | |
| GAVL_PUBLIC int | gavl_audio_converter_set_resample_ratio (gavl_audio_converter_t *cnv, double ratio) | 
| Set samplerate converstion ratio. | |
| GAVL_PUBLIC void | gavl_audio_converter_resample (gavl_audio_converter_t *cnv, gavl_audio_frame_t *input_frame, gavl_audio_frame_t *output_frame, double ratio) | 
| Convert audio. | |
Audio format converter.
This is a generic converter, which converts audio frames from one arbitrary format to another. It does:
Quality levels below 3 mainly result if poor but fast resampling methods. Quality levels above 3 will enable high quality resampling methods, dithering and floating point mixing.
Create an audio converter with gavl_audio_converter_create. If you want to configure it, get the options pointer with gavl_audio_converter_get_options and change the options (See Audio conversion options). Call gavl_audio_converter_init to initialize the converter for the input and output formats. Audio frames are then converted with gavl_audio_convert.
When you are done, you can either reinitialize the converter or destroy it with gavl_audio_converter_destroy.
| typedef struct gavl_audio_converter_s gavl_audio_converter_t | 
Opaque audio converter structure.
You don't want to know what's inside.
| GAVL_PUBLIC gavl_audio_converter_t * gavl_audio_converter_create | ( | ) | 
Creates an audio converter.
| GAVL_PUBLIC void gavl_audio_converter_destroy | ( | gavl_audio_converter_t * | cnv | ) | 
Destroys an audio converter and frees all associated memory.
| cnv | An audio converter | 
| GAVL_PUBLIC gavl_audio_options_t * gavl_audio_converter_get_options | ( | gavl_audio_converter_t * | cnv | ) | 
gets options of an audio converter
| cnv | An audio converter | 
After you called this, you can use the gavl_audio_options_set_*() functions to change the options. Options will become valid with the next call to gavl_audio_converter_init or gavl_audio_converter_reinit
| GAVL_PUBLIC int gavl_audio_converter_init | ( | gavl_audio_converter_t * | cnv, | 
| const gavl_audio_format_t * | input_format, | ||
| const gavl_audio_format_t * | output_format ) | 
Initialize an audio converter.
| cnv | An audio converter | 
| input_format | Input format | 
| output_format | Output format | 
This function can be called multiple times with one instance
| GAVL_PUBLIC int gavl_audio_converter_init_resample | ( | gavl_audio_converter_t * | cnv, | 
| const gavl_audio_format_t * | format ) | 
Initialize an audio converter just for resampling.
| cnv | An audio converter | 
| format | Input and output format. (They are the same except for output samplerate ratio will vary) | 
This function can be called multiple times with one instance
Since 1.1.0.
| GAVL_PUBLIC int gavl_audio_converter_reinit | ( | gavl_audio_converter_t * | cnv | ) | 
Reinitialize an audio converter.
| cnv | An audio converter | 
This function can be called if the input and output formats didn't change but the options did.
| GAVL_PUBLIC void gavl_audio_convert | ( | gavl_audio_converter_t * | cnv, | 
| const gavl_audio_frame_t * | input_frame, | ||
| gavl_audio_frame_t * | output_frame ) | 
Convert audio.
| cnv | An audio converter | 
| input_frame | Input frame | 
| output_frame | Output frame | 
Be careful when resampling: gavl will assume, that your output frame is big enough. Minimum size is input_frame_size * output_samplerate / input_samplerate + 10
| GAVL_PUBLIC int gavl_audio_converter_set_resample_ratio | ( | gavl_audio_converter_t * | cnv, | 
| double | ratio ) | 
Set samplerate converstion ratio.
| cnv | An resample only audio converter created with gavl_audio_converter_init_resample | 
| ratio | desired src_ratio Max ratio = 256, Min ratio = 1/256 as defined by libsamplerate You should set this function before you call gavl_audio_converter_resample for the very first time. If you call this function continually before subsequent calls to gavl_audio_converter_resample, the internal libsamplrate will step sample rate conversion up to the new ratio on your output audio frame in gavl_audio_converter_resample. If you do NOT call this function before gavl_audio_converter_resample libsamplerate will linearly ramp the previous src_ratio to the new ratio for the given output audio frame in gavl_audio_converter_resample.Since 1.1.0. | 
| GAVL_PUBLIC void gavl_audio_converter_resample | ( | gavl_audio_converter_t * | cnv, | 
| gavl_audio_frame_t * | input_frame, | ||
| gavl_audio_frame_t * | output_frame, | ||
| double | ratio ) | 
Convert audio.
| cnv | An audio converter | 
| input_frame | Input frame | 
| output_frame | Output frame | 
| ratio | src_ratio (output_frame.samplerate = ratio * input_frame.samplerate) | 
Be careful when resampling: gavl will assume, that your output frame is big enough. Minimum size for output_frame_size = input_frame_size * ratio (where ratio can be max 256.0 as defined by libsamplerate)
Since 1.1.0.