mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-01 20:42:19 +00:00
lavfi/color: switch to AV_OPT_TYPE_COLOR
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
3a751eab78
commit
05b7560d39
@ -63,7 +63,6 @@ typedef struct {
|
|||||||
void (* fill_picture_fn)(AVFilterContext *ctx, AVFrame *frame);
|
void (* fill_picture_fn)(AVFilterContext *ctx, AVFrame *frame);
|
||||||
|
|
||||||
/* only used by color */
|
/* only used by color */
|
||||||
char *color_str;
|
|
||||||
FFDrawContext draw;
|
FFDrawContext draw;
|
||||||
FFDrawColor color;
|
FFDrawColor color;
|
||||||
uint8_t color_rgba[4];
|
uint8_t color_rgba[4];
|
||||||
@ -87,8 +86,8 @@ typedef struct {
|
|||||||
|
|
||||||
static const AVOption color_options[] = {
|
static const AVOption color_options[] = {
|
||||||
/* only used by color */
|
/* only used by color */
|
||||||
{ "color", "set color", OFFSET(color_str), AV_OPT_TYPE_STRING, {.str = "black"}, CHAR_MIN, CHAR_MAX, FLAGS },
|
{ "color", "set color", OFFSET(color_rgba), AV_OPT_TYPE_COLOR, {.str = "black"}, CHAR_MIN, CHAR_MAX, FLAGS },
|
||||||
{ "c", "set color", OFFSET(color_str), AV_OPT_TYPE_STRING, {.str = "black"}, CHAR_MIN, CHAR_MAX, FLAGS },
|
{ "c", "set color", OFFSET(color_rgba), AV_OPT_TYPE_COLOR, {.str = "black"}, CHAR_MIN, CHAR_MAX, FLAGS },
|
||||||
|
|
||||||
COMMON_OPTIONS
|
COMMON_OPTIONS
|
||||||
{ NULL },
|
{ NULL },
|
||||||
@ -106,7 +105,6 @@ static const AVOption options[] = {
|
|||||||
static av_cold int init(AVFilterContext *ctx)
|
static av_cold int init(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
TestSourceContext *test = ctx->priv;
|
TestSourceContext *test = ctx->priv;
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
if (test->nb_decimals && strcmp(ctx->filter->name, "testsrc")) {
|
if (test->nb_decimals && strcmp(ctx->filter->name, "testsrc")) {
|
||||||
av_log(ctx, AV_LOG_WARNING,
|
av_log(ctx, AV_LOG_WARNING,
|
||||||
@ -114,18 +112,6 @@ static av_cold int init(AVFilterContext *ctx)
|
|||||||
ctx->filter->name);
|
ctx->filter->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test->color_str) {
|
|
||||||
if (!strcmp(ctx->filter->name, "color")) {
|
|
||||||
ret = av_parse_color(test->color_rgba, test->color_str, -1, ctx);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
} else {
|
|
||||||
av_log(ctx, AV_LOG_WARNING,
|
|
||||||
"Option 'color' is ignored with source '%s'\n",
|
|
||||||
ctx->filter->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test->time_base = av_inv_q(test->frame_rate);
|
test->time_base = av_inv_q(test->frame_rate);
|
||||||
test->nb_frame = 0;
|
test->nb_frame = 0;
|
||||||
test->pts = 0;
|
test->pts = 0;
|
||||||
@ -241,8 +227,6 @@ static int color_config_props(AVFilterLink *inlink)
|
|||||||
if ((ret = config_props(inlink)) < 0)
|
if ((ret = config_props(inlink)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
av_log(ctx, AV_LOG_VERBOSE, "color:0x%02x%02x%02x%02x\n",
|
|
||||||
test->color_rgba[0], test->color_rgba[1], test->color_rgba[2], test->color_rgba[3]);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,17 +237,11 @@ static int color_process_command(AVFilterContext *ctx, const char *cmd, const ch
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!strcmp(cmd, "color") || !strcmp(cmd, "c")) {
|
if (!strcmp(cmd, "color") || !strcmp(cmd, "c")) {
|
||||||
char *color_str;
|
|
||||||
uint8_t color_rgba[4];
|
uint8_t color_rgba[4];
|
||||||
|
|
||||||
ret = av_parse_color(color_rgba, args, -1, ctx);
|
ret = av_parse_color(color_rgba, args, -1, ctx);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
color_str = av_strdup(args);
|
|
||||||
if (!color_str)
|
|
||||||
return AVERROR(ENOMEM);
|
|
||||||
av_free(test->color_str);
|
|
||||||
test->color_str = color_str;
|
|
||||||
|
|
||||||
memcpy(test->color_rgba, color_rgba, sizeof(color_rgba));
|
memcpy(test->color_rgba, color_rgba, sizeof(color_rgba));
|
||||||
ff_draw_color(&test->draw, &test->color, test->color_rgba);
|
ff_draw_color(&test->draw, &test->color, test->color_rgba);
|
||||||
|
Loading…
Reference in New Issue
Block a user