mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2026-01-23 23:21:06 +01:00
avfilter/vf_tpad: fix check for drawing initialization
The check if drawing needs to be initialized and supported formats should be drawable ones was flawed, as pad_stop/pad_start is only populated from stop_duration/start_duration after these checks. To fix that, check the _duration variants as well and for better readability and maintainability break the check out into its own helper. Fixes a regression from86b252ea9dFix #10621 Signed-off-by: Anton Khirnov <anton@khirnov.net> (cherry picked from commit6667741029) Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
3d7c02e4a2
commit
c5ee01d966
1 changed files with 9 additions and 4 deletions
|
|
@ -70,11 +70,17 @@ static const AVOption tpad_options[] = {
|
|||
|
||||
AVFILTER_DEFINE_CLASS(tpad);
|
||||
|
||||
static int needs_drawing(const TPadContext *s) {
|
||||
return (
|
||||
(s->stop_mode == MODE_ADD && (s->pad_stop != 0 || s->stop_duration != 0)) ||
|
||||
(s->start_mode == MODE_ADD && (s->pad_start != 0 || s->start_duration != 0))
|
||||
);
|
||||
}
|
||||
|
||||
static int query_formats(AVFilterContext *ctx)
|
||||
{
|
||||
TPadContext *s = ctx->priv;
|
||||
if ((s->stop_mode == MODE_ADD && s->pad_stop != 0) ||
|
||||
(s->start_mode == MODE_ADD && s->pad_start != 0))
|
||||
if (needs_drawing(s))
|
||||
return ff_set_common_formats(ctx, ff_draw_supported_pixel_formats(0));
|
||||
|
||||
return ff_set_common_formats(ctx, ff_all_formats(AVMEDIA_TYPE_VIDEO));
|
||||
|
|
@ -196,8 +202,7 @@ static int config_input(AVFilterLink *inlink)
|
|||
AVFilterContext *ctx = inlink->dst;
|
||||
TPadContext *s = ctx->priv;
|
||||
|
||||
if ((s->stop_mode == MODE_ADD && s->pad_stop != 0) ||
|
||||
(s->start_mode == MODE_ADD && s->pad_start != 0)) {
|
||||
if (needs_drawing(s)) {
|
||||
ff_draw_init(&s->draw, inlink->format, 0);
|
||||
ff_draw_color(&s->draw, &s->color, s->rgba_color);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue