summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavresample/audio_convert.c3
-rw-r--r--libavresample/audio_convert.h7
-rw-r--r--libavresample/utils.c9
3 files changed, 11 insertions, 8 deletions
diff --git a/libavresample/audio_convert.c b/libavresample/audio_convert.c
index e9835c8e8b..dcf8a39b06 100644
--- a/libavresample/audio_convert.c
+++ b/libavresample/audio_convert.c
@@ -284,9 +284,10 @@ AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr,
return ac;
}
-int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in, int len)
+int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in)
{
int use_generic = 1;
+ int len = in->nb_samples;
/* determine whether to use the optimized function based on pointer and
samples alignment in both the input and output */
diff --git a/libavresample/audio_convert.h b/libavresample/audio_convert.h
index 2b8bface7d..bc27223140 100644
--- a/libavresample/audio_convert.h
+++ b/libavresample/audio_convert.h
@@ -72,13 +72,16 @@ AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr,
* examined to determine whether to use the generic or optimized conversion
* function (when available).
*
+ * The number of samples to convert is determined by in->nb_samples. The output
+ * buffer must be large enough to handle this many samples. out->nb_samples is
+ * set by this function before a successful return.
+ *
* @param ac AudioConvert context
* @param out output audio data
* @param in input audio data
- * @param len number of samples to convert
* @return 0 on success, negative AVERROR code on failure
*/
-int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in, int len);
+int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in);
/* arch-specific initialization functions */
diff --git a/libavresample/utils.c b/libavresample/utils.c
index 2d15e37c4b..20b5fb1eea 100644
--- a/libavresample/utils.c
+++ b/libavresample/utils.c
@@ -313,8 +313,8 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
if (ret < 0)
return ret;
av_dlog(avr, "[convert] %s to in_buffer\n", current_buffer->name);
- ret = ff_audio_convert(avr->ac_in, avr->in_buffer, current_buffer,
- current_buffer->nb_samples);
+ ret = ff_audio_convert(avr->ac_in, avr->in_buffer,
+ current_buffer);
if (ret < 0)
return ret;
} else {
@@ -381,8 +381,7 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
if (direct_output && out_samples >= current_buffer->nb_samples) {
/* convert directly to output */
av_dlog(avr, "[convert] %s to output\n", current_buffer->name);
- ret = ff_audio_convert(avr->ac_out, &output_buffer, current_buffer,
- current_buffer->nb_samples);
+ ret = ff_audio_convert(avr->ac_out, &output_buffer, current_buffer);
if (ret < 0)
return ret;
@@ -395,7 +394,7 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
return ret;
av_dlog(avr, "[convert] %s to out_buffer\n", current_buffer->name);
ret = ff_audio_convert(avr->ac_out, avr->out_buffer,
- current_buffer, current_buffer->nb_samples);
+ current_buffer);
if (ret < 0)
return ret;
current_buffer = avr->out_buffer;