1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

lavr: do not pass consumed samples as a parameter to ff_audio_resample()

Since the resampler handles buffering of unconsumed samples internally, the
caller does not need this information.
This commit is contained in:
Justin Ruggles 2012-11-01 11:08:08 -04:00
parent d2f9f8e094
commit 1d86aa8b0f
3 changed files with 6 additions and 10 deletions

View File

@ -394,10 +394,9 @@ static int resample(ResampleContext *c, void *dst, const void *src,
return dst_index; return dst_index;
} }
int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src, int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src)
int *consumed)
{ {
int ch, in_samples, in_leftover, out_samples = 0; int ch, in_samples, in_leftover, consumed = 0, out_samples = 0;
int ret = AVERROR(EINVAL); int ret = AVERROR(EINVAL);
in_samples = src ? src->nb_samples : 0; in_samples = src ? src->nb_samples : 0;
@ -430,7 +429,7 @@ int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src,
/* resample each channel plane */ /* resample each channel plane */
for (ch = 0; ch < c->buffer->channels; ch++) { for (ch = 0; ch < c->buffer->channels; ch++) {
out_samples = resample(c, (void *)dst->data[ch], out_samples = resample(c, (void *)dst->data[ch],
(const void *)c->buffer->data[ch], consumed, (const void *)c->buffer->data[ch], &consumed,
c->buffer->nb_samples, dst->allocated_samples, c->buffer->nb_samples, dst->allocated_samples,
ch + 1 == c->buffer->channels); ch + 1 == c->buffer->channels);
} }
@ -440,7 +439,7 @@ int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src,
} }
/* drain consumed samples from the internal buffer */ /* drain consumed samples from the internal buffer */
ff_audio_data_drain(c->buffer, *consumed); ff_audio_data_drain(c->buffer, consumed);
av_dlog(c->avr, "resampled %d in + %d leftover to %d out + %d leftover\n", av_dlog(c->avr, "resampled %d in + %d leftover to %d out + %d leftover\n",
in_samples, in_leftover, out_samples, c->buffer->nb_samples); in_samples, in_leftover, out_samples, c->buffer->nb_samples);

View File

@ -61,10 +61,8 @@ void ff_audio_resample_free(ResampleContext **c);
* @param c ResampleContext * @param c ResampleContext
* @param dst destination audio data * @param dst destination audio data
* @param src source audio data * @param src source audio data
* @param consumed number of samples consumed from the source
* @return 0 on success, negative AVERROR code on failure * @return 0 on success, negative AVERROR code on failure
*/ */
int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src, int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src);
int *consumed);
#endif /* AVRESAMPLE_RESAMPLE_H */ #endif /* AVRESAMPLE_RESAMPLE_H */

View File

@ -342,7 +342,6 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
if (avr->resample_needed) { if (avr->resample_needed) {
AudioData *resample_out; AudioData *resample_out;
int consumed = 0;
if (!avr->out_convert_needed && direct_output && out_samples > 0) if (!avr->out_convert_needed && direct_output && out_samples > 0)
resample_out = &output_buffer; resample_out = &output_buffer;
@ -351,7 +350,7 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
av_dlog(avr, "[resample] %s to %s\n", current_buffer->name, av_dlog(avr, "[resample] %s to %s\n", current_buffer->name,
resample_out->name); resample_out->name);
ret = ff_audio_resample(avr->resample, resample_out, ret = ff_audio_resample(avr->resample, resample_out,
current_buffer, &consumed); current_buffer);
if (ret < 0) if (ret < 0)
return ret; return ret;