void (*resample_one)(struct ResampleContext *c, int no_filter, void *dst0,
int dst_index, const void *src0, int src_size,
int index, int frac);
+ int padding_size;
};
goto error;
c->ideal_dst_incr = c->dst_incr;
+ c->padding_size = (c->filter_length - 1) / 2;
c->index = -phase_count * ((c->filter_length - 1) / 2);
c->frac = 0;
int avresample_get_delay(AVAudioResampleContext *avr)
{
+ ResampleContext *c = avr->resample;
+
if (!avr->resample_needed || !avr->resample)
return 0;
- return avr->resample->buffer->nb_samples;
+ return FFMAX(c->buffer->nb_samples - c->padding_size, 0);
}