Skip to content
Snippets Groups Projects
Commit f6b6d6ac authored by Anton Khirnov's avatar Anton Khirnov
Browse files

vf_frei0r: use the name 's' for the pointer to the private context

This is shorter and consistent across filters.
parent cbec213a
No related branches found
No related tags found
No related merge requests found
......@@ -78,8 +78,8 @@ typedef struct Frei0rContext {
static void *load_sym(AVFilterContext *ctx, const char *sym_name)
{
Frei0rContext *frei0r = ctx->priv;
void *sym = dlsym(frei0r->dl_handle, sym_name);
Frei0rContext *s = ctx->priv;
void *sym = dlsym(s->dl_handle, sym_name);
if (!sym)
av_log(ctx, AV_LOG_ERROR, "Could not find symbol '%s' in loaded module\n", sym_name);
return sym;
......@@ -87,7 +87,7 @@ static void *load_sym(AVFilterContext *ctx, const char *sym_name)
static int set_param(AVFilterContext *ctx, f0r_param_info_t info, int index, char *param)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
union {
double d;
f0r_param_color_t col;
......@@ -125,7 +125,7 @@ static int set_param(AVFilterContext *ctx, f0r_param_info_t info, int index, cha
break;
}
frei0r->set_param_value(frei0r->instance, &val, index);
s->set_param_value(s->instance, &val, index);
return 0;
fail:
......@@ -136,15 +136,15 @@ fail:
static int set_params(AVFilterContext *ctx, const char *params)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
int i;
for (i = 0; i < frei0r->plugin_info.num_params; i++) {
for (i = 0; i < s->plugin_info.num_params; i++) {
f0r_param_info_t info;
char *param;
int ret;
frei0r->get_param_info(&info, i);
s->get_param_info(&info, i);
if (*params) {
if (!(param = av_get_token(&params, "|")))
......@@ -177,27 +177,27 @@ static int set_params(AVFilterContext *ctx, const char *params)
case F0R_PARAM_BOOL:
v = &d;
frei0r->get_param_value(frei0r->instance, v, i);
s->get_param_value(s->instance, v, i);
av_log(ctx, AV_LOG_DEBUG, "%s", d >= 0.5 && d <= 1.0 ? "y" : "n");
break;
case F0R_PARAM_DOUBLE:
v = &d;
frei0r->get_param_value(frei0r->instance, v, i);
s->get_param_value(s->instance, v, i);
av_log(ctx, AV_LOG_DEBUG, "%f", d);
break;
case F0R_PARAM_COLOR:
v = &col;
frei0r->get_param_value(frei0r->instance, v, i);
s->get_param_value(s->instance, v, i);
av_log(ctx, AV_LOG_DEBUG, "%f/%f/%f", col.r, col.g, col.b);
break;
case F0R_PARAM_POSITION:
v = &pos;
frei0r->get_param_value(frei0r->instance, v, i);
s->get_param_value(s->instance, v, i);
av_log(ctx, AV_LOG_DEBUG, "%f/%f", pos.x, pos.y);
break;
default: /* F0R_PARAM_STRING */
v = s;
frei0r->get_param_value(frei0r->instance, v, i);
s->get_param_value(s->instance, v, i);
av_log(ctx, AV_LOG_DEBUG, "'%s'\n", s);
break;
}
......@@ -220,7 +220,7 @@ static void *load_path(AVFilterContext *ctx, const char *prefix, const char *nam
static av_cold int frei0r_init(AVFilterContext *ctx,
const char *dl_name, int type)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
f0r_init_f f0r_init;
f0r_get_plugin_info_f f0r_get_plugin_info;
f0r_plugin_info_t *pi;
......@@ -235,33 +235,33 @@ static av_cold int frei0r_init(AVFilterContext *ctx,
if ((path = av_strdup(getenv("FREI0R_PATH")))) {
char *p, *ptr = NULL;
for (p = path; p = strtok_r(p, ":", &ptr); p = NULL)
if (frei0r->dl_handle = load_path(ctx, p, dl_name))
if (s->dl_handle = load_path(ctx, p, dl_name))
break;
av_free(path);
}
if (!frei0r->dl_handle && (path = getenv("HOME"))) {
if (!s->dl_handle && (path = getenv("HOME"))) {
char prefix[1024];
snprintf(prefix, sizeof(prefix), "%s/.frei0r-1/lib/", path);
frei0r->dl_handle = load_path(ctx, prefix, dl_name);
s->dl_handle = load_path(ctx, prefix, dl_name);
}
if (!frei0r->dl_handle)
frei0r->dl_handle = load_path(ctx, "/usr/local/lib/frei0r-1/", dl_name);
if (!frei0r->dl_handle)
frei0r->dl_handle = load_path(ctx, "/usr/lib/frei0r-1/", dl_name);
if (!frei0r->dl_handle) {
if (!s->dl_handle)
s->dl_handle = load_path(ctx, "/usr/local/lib/frei0r-1/", dl_name);
if (!s->dl_handle)
s->dl_handle = load_path(ctx, "/usr/lib/frei0r-1/", dl_name);
if (!s->dl_handle) {
av_log(ctx, AV_LOG_ERROR, "Could not find module '%s'\n", dl_name);
return AVERROR(EINVAL);
}
if (!(f0r_init = load_sym(ctx, "f0r_init" )) ||
!(f0r_get_plugin_info = load_sym(ctx, "f0r_get_plugin_info")) ||
!(frei0r->get_param_info = load_sym(ctx, "f0r_get_param_info" )) ||
!(frei0r->get_param_value = load_sym(ctx, "f0r_get_param_value")) ||
!(frei0r->set_param_value = load_sym(ctx, "f0r_set_param_value")) ||
!(frei0r->update = load_sym(ctx, "f0r_update" )) ||
!(frei0r->construct = load_sym(ctx, "f0r_construct" )) ||
!(frei0r->destruct = load_sym(ctx, "f0r_destruct" )) ||
!(frei0r->deinit = load_sym(ctx, "f0r_deinit" )))
!(s->get_param_info = load_sym(ctx, "f0r_get_param_info" )) ||
!(s->get_param_value = load_sym(ctx, "f0r_get_param_value")) ||
!(s->set_param_value = load_sym(ctx, "f0r_set_param_value")) ||
!(s->update = load_sym(ctx, "f0r_update" )) ||
!(s->construct = load_sym(ctx, "f0r_construct" )) ||
!(s->destruct = load_sym(ctx, "f0r_destruct" )) ||
!(s->deinit = load_sym(ctx, "f0r_deinit" )))
return AVERROR(EINVAL);
if (f0r_init() < 0) {
......@@ -269,8 +269,8 @@ static av_cold int frei0r_init(AVFilterContext *ctx,
return AVERROR(EINVAL);
}
f0r_get_plugin_info(&frei0r->plugin_info);
pi = &frei0r->plugin_info;
f0r_get_plugin_info(&s->plugin_info);
pi = &s->plugin_info;
if (pi->plugin_type != type) {
av_log(ctx, AV_LOG_ERROR,
"Invalid type '%s' for the plugin\n",
......@@ -295,44 +295,44 @@ static av_cold int frei0r_init(AVFilterContext *ctx,
static av_cold int filter_init(AVFilterContext *ctx)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
return frei0r_init(ctx, frei0r->dl_name, F0R_PLUGIN_TYPE_FILTER);
return frei0r_init(ctx, s->dl_name, F0R_PLUGIN_TYPE_FILTER);
}
static av_cold void uninit(AVFilterContext *ctx)
{
Frei0rContext *frei0r = ctx->priv;
if (frei0r->destruct && frei0r->instance)
frei0r->destruct(frei0r->instance);
if (frei0r->deinit)
frei0r->deinit();
if (frei0r->dl_handle)
dlclose(frei0r->dl_handle);
Frei0rContext *s = ctx->priv;
if (s->destruct && s->instance)
s->destruct(s->instance);
if (s->deinit)
s->deinit();
if (s->dl_handle)
dlclose(s->dl_handle);
}
static int config_input_props(AVFilterLink *inlink)
{
AVFilterContext *ctx = inlink->dst;
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
if (!(frei0r->instance = frei0r->construct(inlink->w, inlink->h))) {
if (!(s->instance = s->construct(inlink->w, inlink->h))) {
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
return AVERROR(EINVAL);
}
return set_params(ctx, frei0r->params);
return set_params(ctx, s->params);
}
static int query_formats(AVFilterContext *ctx)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
AVFilterFormats *formats = NULL;
if (frei0r->plugin_info.color_model == F0R_COLOR_MODEL_BGRA8888) {
if (s->plugin_info.color_model == F0R_COLOR_MODEL_BGRA8888) {
ff_add_format(&formats, AV_PIX_FMT_BGRA);
} else if (frei0r->plugin_info.color_model == F0R_COLOR_MODEL_RGBA8888) {
} else if (s->plugin_info.color_model == F0R_COLOR_MODEL_RGBA8888) {
ff_add_format(&formats, AV_PIX_FMT_RGBA);
} else { /* F0R_COLOR_MODEL_PACKED32 */
static const enum AVPixelFormat pix_fmts[] = {
......@@ -350,7 +350,7 @@ static int query_formats(AVFilterContext *ctx)
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
{
Frei0rContext *frei0r = inlink->dst->priv;
Frei0rContext *s = inlink->dst->priv;
AVFilterLink *outlink = inlink->dst->outputs[0];
AVFrame *out;
......@@ -361,7 +361,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
}
av_frame_copy_props(out, in);
frei0r->update(frei0r->instance, in->pts * av_q2d(inlink->time_base) * 1000,
s->update(s->instance, in->pts * av_q2d(inlink->time_base) * 1000,
(const uint32_t *)in->data[0],
(uint32_t *)out->data[0]);
......@@ -421,56 +421,56 @@ AVFilter avfilter_vf_frei0r = {
static av_cold int source_init(AVFilterContext *ctx)
{
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
AVRational frame_rate_q;
if (av_parse_video_size(&frei0r->w, &frei0r->h, frei0r->size) < 0) {
av_log(ctx, AV_LOG_ERROR, "Invalid frame size: '%s'\n", frei0r->size);
if (av_parse_video_size(&s->w, &s->h, s->size) < 0) {
av_log(ctx, AV_LOG_ERROR, "Invalid frame size: '%s'\n", s->size);
return AVERROR(EINVAL);
}
if (av_parse_video_rate(&frame_rate_q, frei0r->framerate) < 0 ||
if (av_parse_video_rate(&frame_rate_q, s->framerate) < 0 ||
frame_rate_q.den <= 0 || frame_rate_q.num <= 0) {
av_log(ctx, AV_LOG_ERROR, "Invalid frame rate: '%s'\n", frei0r->framerate);
av_log(ctx, AV_LOG_ERROR, "Invalid frame rate: '%s'\n", s->framerate);
return AVERROR(EINVAL);
}
frei0r->time_base.num = frame_rate_q.den;
frei0r->time_base.den = frame_rate_q.num;
s->time_base.num = frame_rate_q.den;
s->time_base.den = frame_rate_q.num;
return frei0r_init(ctx, frei0r->dl_name, F0R_PLUGIN_TYPE_SOURCE);
return frei0r_init(ctx, s->dl_name, F0R_PLUGIN_TYPE_SOURCE);
}
static int source_config_props(AVFilterLink *outlink)
{
AVFilterContext *ctx = outlink->src;
Frei0rContext *frei0r = ctx->priv;
Frei0rContext *s = ctx->priv;
if (av_image_check_size(frei0r->w, frei0r->h, 0, ctx) < 0)
if (av_image_check_size(s->w, s->h, 0, ctx) < 0)
return AVERROR(EINVAL);
outlink->w = frei0r->w;
outlink->h = frei0r->h;
outlink->time_base = frei0r->time_base;
outlink->w = s->w;
outlink->h = s->h;
outlink->time_base = s->time_base;
if (!(frei0r->instance = frei0r->construct(outlink->w, outlink->h))) {
if (!(s->instance = s->construct(outlink->w, outlink->h))) {
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
return AVERROR(EINVAL);
}
return set_params(ctx, frei0r->params);
return set_params(ctx, s->params);
}
static int source_request_frame(AVFilterLink *outlink)
{
Frei0rContext *frei0r = outlink->src->priv;
Frei0rContext *s = outlink->src->priv;
AVFrame *frame = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!frame)
return AVERROR(ENOMEM);
frame->sample_aspect_ratio = (AVRational) {1, 1};
frame->pts = frei0r->pts++;
frame->pts = s->pts++;
frei0r->update(frei0r->instance, av_rescale_q(frame->pts, frei0r->time_base, (AVRational){1,1000}),
s->update(s->instance, av_rescale_q(frame->pts, s->time_base, (AVRational){1,1000}),
NULL, (uint32_t *)frame->data[0]);
return ff_filter_frame(outlink, frame);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment