[FFmpeg-devel] [PATCH] lavfi/tile: make color of padding configurable

Clément Bœsch u at pkh.me
Thu Aug 15 12:48:51 CEST 2013


On Thu, Aug 15, 2013 at 10:35:13AM +0000, Paul B Mahol wrote:
> On 8/14/13, Clement Boesch <u at pkh.me> wrote:
> > On Wed, Aug 14, 2013 at 09:53:02PM +0000, Paul B Mahol wrote:
> >> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> >> ---
> >>  doc/filters.texi      | 4 ++++
> >>  libavfilter/vf_tile.c | 5 +++--
> >>  2 files changed, 7 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/doc/filters.texi b/doc/filters.texi
> >> index 9a871b9..d390ff4 100644
> >> --- a/doc/filters.texi
> >> +++ b/doc/filters.texi
> >> @@ -7102,6 +7102,10 @@ Set the inner border thickness (i.e. the number of
> >> pixels between frames). For
> >>  more advanced padding options (such as having different values for the
> >> edges),
> >>  refer to the pad video filter.
> >>
> >> + at item color
> >> +Specify the color of the padded area, it can be the name of a color
> >> +(case insensitive match) or a 0xRRGGBB[AA] sequence.
> >> +The default value of @var{color} is "black".
> >>  @end table
> >>
> >>  @subsection Examples
> >> diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c
> >> index f5eb763..9807e7e 100644
> >> --- a/libavfilter/vf_tile.c
> >> +++ b/libavfilter/vf_tile.c
> >> @@ -41,6 +41,7 @@ typedef struct {
> >>      FFDrawContext draw;
> >>      FFDrawColor blank;
> >>      AVFrame *out_ref;
> >> +    uint8_t rgba_color[4];
> >>  } TileContext;
> >>
> >>  #define REASONABLE_SIZE 1024
> >> @@ -57,6 +58,7 @@ static const AVOption tile_options[] = {
> >>          AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1024, FLAGS },
> >>      { "padding", "set inner border thickness in pixels",
> >> OFFSET(padding),
> >>          AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1024, FLAGS },
> >> +    { "color",  "set the color of the padded area", OFFSET(rgba_color),
> >> AV_OPT_TYPE_COLOR, {.str = "black"}, .flags = FLAGS },
> >>      {NULL},
> >>  };
> >>
> >> @@ -113,8 +115,7 @@ static int config_props(AVFilterLink *outlink)
> >>      outlink->frame_rate = av_mul_q(inlink->frame_rate,
> >>                                     (AVRational){ 1, tile->nb_frames });
> >>      ff_draw_init(&tile->draw, inlink->format, 0);
> >> -    /* TODO make the color an option, or find an unified way of choosing
> >> it */
> >> -    ff_draw_color(&tile->draw, &tile->blank, (uint8_t[]){ 0, 0, 0, -1
> >> });
> >> +    ff_draw_color(&tile->draw, &tile->blank, tile->rgba_color);
> >>
> >>      outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
> >>
> >
> > Won't this affect blank frame as well?
> 
> Yes, it will. Perhaps they should be separate?

I'm fine with the current situation as long as the documentation is clear
enough (I'm unsure anyone is willing to have a "fake" frame effect by
setting a padding). Changing "padded area" by "unused area" or "blank
area" in the doc should do the trick. But maybe Nicolas has a different
opinion.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130815/07ad358b/attachment.asc>


More information about the ffmpeg-devel mailing list