Paul B Mahol (2017-11-29): > Signed-off-by: Paul B Mahol <one...@gmail.com> > --- > doc/filters.texi | 4 ++++ > libavfilter/vf_tile.c | 12 +++++++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/doc/filters.texi b/doc/filters.texi > index 4a4efc70c8..4eb302448b 100644 > --- a/doc/filters.texi > +++ b/doc/filters.texi > @@ -14637,6 +14637,10 @@ is "black". > @item overlap > Set the number of frames to overlap when tiling several successive frames > together. > The value must be between @code{0} and @var{nb_frames - 1}. > + > +@item init_padding
> +Set the number of input frames to initially pad before displaying first > output frame. Even knowing what it is supposed to mean I cannot parse this sentence. > +The value must be between @code{0} and @var{nb_frames - 1}. > @end table > > @subsection Examples > diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c > index 7717ce12e7..c347939cce 100644 > --- a/libavfilter/vf_tile.c > +++ b/libavfilter/vf_tile.c > @@ -38,6 +38,7 @@ typedef struct TileContext { > unsigned margin; > unsigned padding; > unsigned overlap; > + unsigned init_padding; > unsigned current; > unsigned nb_frames; > FFDrawContext draw; > @@ -62,6 +63,8 @@ static const AVOption tile_options[] = { > { "color", "set the color of the unused area", OFFSET(rgba_color), > AV_OPT_TYPE_COLOR, {.str = "black"}, .flags = FLAGS }, > { "overlap", "set how many frames to overlap for each render", > OFFSET(overlap), > AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, > + { "init_padding", " set how many frames to initially pad", > OFFSET(init_padding), > + AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, > { NULL } > }; > > @@ -99,6 +102,12 @@ static av_cold int init(AVFilterContext *ctx) > tile->overlap = tile->nb_frames - 1; > } > > + if (tile->init_padding >= tile->nb_frames) { > + av_log(ctx, AV_LOG_WARNING, "init_padding must be less than %d\n", > tile->nb_frames); > + } else { > + tile->current = tile->init_padding; > + } > + > return 0; > } > > @@ -201,7 +210,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame > *picref) > tile->out_ref->height = outlink->h; > > /* fill surface once for margin/padding */ > - if (tile->margin || tile->padding) > + if (tile->margin || tile->padding || > + (tile->init_padding != 0 && !tile->prev_out_ref)) Incorrect, prev_out_ref is only set if overlap is non-zero. > ff_fill_rectangle(&tile->draw, &tile->blank, > tile->out_ref->data, > tile->out_ref->linesize, Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel