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

Paul B Mahol onemda at gmail.com
Thu Aug 15 12:35:13 CEST 2013


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?


More information about the ffmpeg-devel mailing list