}
if (ret < 0) {
return ret;
- } else if (dm->eof == ((1 << INPUT_MAIN) | ((dm->ppsrc << INPUT_CLEANSRC) * dm->ppsrc))) {
+ } else if (dm->eof == ((1 << INPUT_MAIN) | (dm->ppsrc << INPUT_CLEANSRC))) {
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)) {
if (status == AVERROR_EOF) { // flushing
dm->eof |= 1 << INPUT_MAIN;
- if (!dm->ppsrc)
- return filter_frame(ctx->inputs[INPUT_MAIN], NULL);
+ if (dm->ppsrc)
+ filter_frame(ctx->inputs[INPUT_CLEANSRC], NULL);
+ filter_frame(ctx->inputs[INPUT_MAIN], NULL);
+ ff_outlink_set_status(ctx->outputs[0], AVERROR_EOF, dm->last_pts);
+ return 0;
}
} 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);
+ filter_frame(ctx->inputs[INPUT_CLEANSRC], NULL);
+ ff_outlink_set_status(ctx->outputs[0], AVERROR_EOF, dm->last_pts);
+ return 0;
}
}
#define PF_ALPHA(suf) AV_PIX_FMT_YUVA420##suf, AV_PIX_FMT_YUVA422##suf, AV_PIX_FMT_YUVA444##suf
#define PF(suf) PF_NOALPHA(suf), PF_ALPHA(suf)
PF(P), PF(P9), PF(P10), PF_NOALPHA(P12), PF_NOALPHA(P14), PF(P16),
+ AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV440P12,
AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P,
- AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16,
+ AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P,
+ AV_PIX_FMT_YUVJ411P,
+ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14,
+ AV_PIX_FMT_GRAY16,
AV_PIX_FMT_NONE
};
AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts);
{ NULL }
};
-AVFilter ff_vf_decimate = {
+const AVFilter ff_vf_decimate = {
.name = "decimate",
.description = NULL_IF_CONFIG_SMALL("Decimate frames (post field matching filter)."),
.init = decimate_init,