|
|
|
@ -76,9 +76,8 @@ |
|
|
|
|
* while (get_input(&input, &in_linesize, &in_samples)) { |
|
|
|
|
* uint8_t *output |
|
|
|
|
* int out_linesize; |
|
|
|
|
* int out_samples = avresample_available(avr) + |
|
|
|
|
* av_rescale_rnd(avresample_get_delay(avr) + |
|
|
|
|
* in_samples, 44100, 48000, AV_ROUND_UP); |
|
|
|
|
* int out_samples = avresample_get_out_samples(avr, in_samples); |
|
|
|
|
* |
|
|
|
|
* av_samples_alloc(&output, &out_linesize, 2, out_samples, |
|
|
|
|
* AV_SAMPLE_FMT_S16, 0); |
|
|
|
|
* out_samples = avresample_convert(avr, &output, out_linesize, out_samples, |
|
|
|
@ -97,6 +96,7 @@ |
|
|
|
|
#include "libavutil/channel_layout.h" |
|
|
|
|
#include "libavutil/dict.h" |
|
|
|
|
#include "libavutil/log.h" |
|
|
|
|
#include "libavutil/mathematics.h" |
|
|
|
|
|
|
|
|
|
#include "libavresample/version.h" |
|
|
|
|
|
|
|
|
@ -312,12 +312,24 @@ int avresample_set_channel_mapping(AVAudioResampleContext *avr, |
|
|
|
|
int avresample_set_compensation(AVAudioResampleContext *avr, int sample_delta, |
|
|
|
|
int compensation_distance); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Provide the upper bound on the number of samples the configured |
|
|
|
|
* conversion would output. |
|
|
|
|
* |
|
|
|
|
* @param avr audio resample context |
|
|
|
|
* @param in_nb_samples number of input samples |
|
|
|
|
* |
|
|
|
|
* @return number of samples or AVERROR(EINVAL) if the value |
|
|
|
|
* would exceed INT_MAX |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
int avresample_get_out_samples(AVAudioResampleContext *avr, int in_nb_samples); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Convert input samples and write them to the output FIFO. |
|
|
|
|
* |
|
|
|
|
* The upper bound on the number of output samples is given by |
|
|
|
|
* avresample_available() + (avresample_get_delay() + number of input samples) * |
|
|
|
|
* output sample rate / input sample rate. |
|
|
|
|
* The upper bound on the number of output samples can be obtained through |
|
|
|
|
* avresample_get_out_samples(). |
|
|
|
|
* |
|
|
|
|
* The output data can be NULL or have fewer allocated samples than required. |
|
|
|
|
* In this case, any remaining samples not written to the output will be added |
|
|
|
@ -334,7 +346,7 @@ int avresample_set_compensation(AVAudioResampleContext *avr, int sample_delta, |
|
|
|
|
* samples. To get this data as output, either call avresample_convert() with |
|
|
|
|
* NULL input or call avresample_read(). |
|
|
|
|
* |
|
|
|
|
* @see avresample_available() |
|
|
|
|
* @see avresample_get_out_samples() |
|
|
|
|
* @see avresample_read() |
|
|
|
|
* @see avresample_get_delay() |
|
|
|
|
* |
|
|
|
|