mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge commit 'b9dea23766f52b8e059e72d34980bb7b456efe8f'
* commit 'b9dea23766f52b8e059e72d34980bb7b456efe8f': resample: fix avresample_get_delay() return value Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
c04961fa0f
@ -47,6 +47,7 @@ struct ResampleContext {
|
|||||||
void (*resample_one)(struct ResampleContext *c, int no_filter, void *dst0,
|
void (*resample_one)(struct ResampleContext *c, int no_filter, void *dst0,
|
||||||
int dst_index, const void *src0, int src_size,
|
int dst_index, const void *src0, int src_size,
|
||||||
int index, int frac);
|
int index, int frac);
|
||||||
|
int padding_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -212,6 +213,7 @@ ResampleContext *ff_audio_resample_init(AVAudioResampleContext *avr)
|
|||||||
goto error;
|
goto error;
|
||||||
c->ideal_dst_incr = c->dst_incr;
|
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->index = -phase_count * ((c->filter_length - 1) / 2);
|
||||||
c->frac = 0;
|
c->frac = 0;
|
||||||
|
|
||||||
@ -462,8 +464,10 @@ int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src)
|
|||||||
|
|
||||||
int avresample_get_delay(AVAudioResampleContext *avr)
|
int avresample_get_delay(AVAudioResampleContext *avr)
|
||||||
{
|
{
|
||||||
|
ResampleContext *c = avr->resample;
|
||||||
|
|
||||||
if (!avr->resample_needed || !avr->resample)
|
if (!avr->resample_needed || !avr->resample)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return avr->resample->buffer->nb_samples;
|
return FFMAX(c->buffer->nb_samples - c->padding_size, 0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user