mirror of https://git.ffmpeg.org/ffmpeg.git
lavfi/asetnsamples: raise filter_frame() error.
This commit is contained in:
parent
c82bb2815b
commit
dda59d9adc
|
@ -94,7 +94,7 @@ static int push_samples(AVFilterLink *outlink)
|
||||||
{
|
{
|
||||||
ASNSContext *asns = outlink->src->priv;
|
ASNSContext *asns = outlink->src->priv;
|
||||||
AVFrame *outsamples = NULL;
|
AVFrame *outsamples = NULL;
|
||||||
int nb_out_samples, nb_pad_samples;
|
int ret, nb_out_samples, nb_pad_samples;
|
||||||
|
|
||||||
if (asns->pad) {
|
if (asns->pad) {
|
||||||
nb_out_samples = av_audio_fifo_size(asns->fifo) ? asns->nb_out_samples : 0;
|
nb_out_samples = av_audio_fifo_size(asns->fifo) ? asns->nb_out_samples : 0;
|
||||||
|
@ -125,7 +125,9 @@ static int push_samples(AVFilterLink *outlink)
|
||||||
if (asns->next_out_pts != AV_NOPTS_VALUE)
|
if (asns->next_out_pts != AV_NOPTS_VALUE)
|
||||||
asns->next_out_pts += nb_out_samples;
|
asns->next_out_pts += nb_out_samples;
|
||||||
|
|
||||||
ff_filter_frame(outlink, outsamples);
|
ret = ff_filter_frame(outlink, outsamples);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
asns->req_fullfilled = 1;
|
asns->req_fullfilled = 1;
|
||||||
return nb_out_samples;
|
return nb_out_samples;
|
||||||
}
|
}
|
||||||
|
@ -168,9 +170,11 @@ static int request_frame(AVFilterLink *outlink)
|
||||||
ret = ff_request_frame(inlink);
|
ret = ff_request_frame(inlink);
|
||||||
} while (!asns->req_fullfilled && ret >= 0);
|
} while (!asns->req_fullfilled && ret >= 0);
|
||||||
|
|
||||||
if (ret == AVERROR_EOF)
|
if (ret == AVERROR_EOF) {
|
||||||
while (push_samples(outlink))
|
do {
|
||||||
;
|
ret = push_samples(outlink);
|
||||||
|
} while (ret > 0);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue