summaryrefslogtreecommitdiff
path: root/libavfilter/vf_decimate.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-12-27 21:59:10 +0100
committerPaul B Mahol <onemda@gmail.com>2020-12-27 22:01:23 +0100
commit4b4282bc57b63de2780333d37487a38f88fb48c7 (patch)
tree63fcb18597b3c663b2379b36fde62329a354089c /libavfilter/vf_decimate.c
parent89dcef90af5b444b446ed888486ea9326e9a1141 (diff)
avfilter/vf_decimate: stop dropping last frames with ppsrc
Diffstat (limited to 'libavfilter/vf_decimate.c')
-rw-r--r--libavfilter/vf_decimate.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavfilter/vf_decimate.c b/libavfilter/vf_decimate.c
index 93509d6ab3..32a4cdc535 100644
--- a/libavfilter/vf_decimate.c
+++ b/libavfilter/vf_decimate.c
@@ -267,7 +267,7 @@ static int activate(AVFilterContext *ctx)
}
if (ret < 0) {
return ret;
- } else if (dm->eof & ((1 << INPUT_MAIN) | (dm->ppsrc << INPUT_CLEANSRC))) {
+ } else if (dm->eof == ((1 << INPUT_MAIN) | ((dm->ppsrc << INPUT_CLEANSRC) * dm->ppsrc))) {
ff_outlink_set_status(ctx->outputs[0], AVERROR_EOF, dm->last_pts);
return 0;
} else if (!(dm->eof & (1 << INPUT_MAIN)) && ff_inlink_acknowledge_status(ctx->inputs[INPUT_MAIN], &status, &pts)) {
@@ -279,6 +279,7 @@ static int activate(AVFilterContext *ctx)
} else if (dm->ppsrc && !(dm->eof & (1 << INPUT_CLEANSRC)) && ff_inlink_acknowledge_status(ctx->inputs[INPUT_CLEANSRC], &status, &pts)) {
if (status == AVERROR_EOF) { // flushing
dm->eof |= 1 << INPUT_CLEANSRC;
+ filter_frame(ctx->inputs[INPUT_MAIN], NULL);
return filter_frame(ctx->inputs[INPUT_CLEANSRC], NULL);
}
}