| @@ -116,6 +116,12 @@ static int config_props(AVFilterLink *link) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| /* get amount of data currently buffered, in samples */ | |||||
| static int64_t get_delay(ASyncContext *s) | |||||
| { | |||||
| return avresample_available(s->avr) + avresample_get_delay(s->avr); | |||||
| } | |||||
| static int request_frame(AVFilterLink *link) | static int request_frame(AVFilterLink *link) | ||||
| { | { | ||||
| AVFilterContext *ctx = link->src; | AVFilterContext *ctx = link->src; | ||||
| @@ -128,7 +134,7 @@ static int request_frame(AVFilterLink *link) | |||||
| ret = ff_request_frame(ctx->inputs[0]); | ret = ff_request_frame(ctx->inputs[0]); | ||||
| /* flush the fifo */ | /* flush the fifo */ | ||||
| if (ret == AVERROR_EOF && (nb_samples = avresample_get_delay(s->avr))) { | |||||
| if (ret == AVERROR_EOF && (nb_samples = get_delay(s))) { | |||||
| AVFilterBufferRef *buf = ff_get_audio_buffer(link, AV_PERM_WRITE, | AVFilterBufferRef *buf = ff_get_audio_buffer(link, AV_PERM_WRITE, | ||||
| nb_samples); | nb_samples); | ||||
| if (!buf) | if (!buf) | ||||
| @@ -155,12 +161,6 @@ static int write_to_fifo(ASyncContext *s, AVFilterBufferRef *buf) | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| /* get amount of data currently buffered, in samples */ | |||||
| static int64_t get_delay(ASyncContext *s) | |||||
| { | |||||
| return avresample_available(s->avr) + avresample_get_delay(s->avr); | |||||
| } | |||||
| static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf) | static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf) | ||||
| { | { | ||||
| AVFilterContext *ctx = inlink->dst; | AVFilterContext *ctx = inlink->dst; | ||||