Commit ae573824 authored by Clément Bœsch's avatar Clément Bœsch

lavfi/lut3d: move lut3d init to its definition scope.

parent 158d96e3
...@@ -410,60 +410,6 @@ static void set_identity_matrix(LUT3DContext *lut3d, int size) ...@@ -410,60 +410,6 @@ static void set_identity_matrix(LUT3DContext *lut3d, int size)
} }
} }
#if CONFIG_LUT3D_FILTER
/* TODO: move to the CONFIG_LUT3D_FILTER definition scope at the bottom */
static av_cold int lut3d_init(AVFilterContext *ctx)
{
int ret;
FILE *f;
const char *ext;
LUT3DContext *lut3d = ctx->priv;
if (!lut3d->file) {
set_identity_matrix(lut3d, 32);
return 0;
}
f = fopen(lut3d->file, "r");
if (!f) {
ret = AVERROR(errno);
av_log(ctx, AV_LOG_ERROR, "%s: %s\n", lut3d->file, av_err2str(ret));
return ret;
}
ext = strrchr(lut3d->file, '.');
if (!ext) {
av_log(ctx, AV_LOG_ERROR, "Unable to guess the format from the extension\n");
ret = AVERROR_INVALIDDATA;
goto end;
}
ext++;
if (!av_strcasecmp(ext, "dat")) {
lut3d->lutsize = 33;
ret = parse_dat(ctx, f);
} else if (!av_strcasecmp(ext, "3dl")) {
ret = parse_3dl(ctx, f);
} else if (!av_strcasecmp(ext, "cube")) {
ret = parse_cube(ctx, f);
} else if (!av_strcasecmp(ext, "m3d")) {
ret = parse_m3d(ctx, f);
} else {
av_log(ctx, AV_LOG_ERROR, "Unrecognized '.%s' file type\n", ext);
ret = AVERROR(EINVAL);
}
if (!ret && !lut3d->lutsize) {
av_log(ctx, AV_LOG_ERROR, "3D LUT is empty\n");
ret = AVERROR_INVALIDDATA;
}
end:
fclose(f);
return ret;
}
#endif
static int query_formats(AVFilterContext *ctx) static int query_formats(AVFilterContext *ctx)
{ {
static const enum AVPixelFormat pix_fmts[] = { static const enum AVPixelFormat pix_fmts[] = {
...@@ -583,6 +529,57 @@ static const AVOption lut3d_options[] = { ...@@ -583,6 +529,57 @@ static const AVOption lut3d_options[] = {
AVFILTER_DEFINE_CLASS(lut3d); AVFILTER_DEFINE_CLASS(lut3d);
static av_cold int lut3d_init(AVFilterContext *ctx)
{
int ret;
FILE *f;
const char *ext;
LUT3DContext *lut3d = ctx->priv;
if (!lut3d->file) {
set_identity_matrix(lut3d, 32);
return 0;
}
f = fopen(lut3d->file, "r");
if (!f) {
ret = AVERROR(errno);
av_log(ctx, AV_LOG_ERROR, "%s: %s\n", lut3d->file, av_err2str(ret));
return ret;
}
ext = strrchr(lut3d->file, '.');
if (!ext) {
av_log(ctx, AV_LOG_ERROR, "Unable to guess the format from the extension\n");
ret = AVERROR_INVALIDDATA;
goto end;
}
ext++;
if (!av_strcasecmp(ext, "dat")) {
lut3d->lutsize = 33;
ret = parse_dat(ctx, f);
} else if (!av_strcasecmp(ext, "3dl")) {
ret = parse_3dl(ctx, f);
} else if (!av_strcasecmp(ext, "cube")) {
ret = parse_cube(ctx, f);
} else if (!av_strcasecmp(ext, "m3d")) {
ret = parse_m3d(ctx, f);
} else {
av_log(ctx, AV_LOG_ERROR, "Unrecognized '.%s' file type\n", ext);
ret = AVERROR(EINVAL);
}
if (!ret && !lut3d->lutsize) {
av_log(ctx, AV_LOG_ERROR, "3D LUT is empty\n");
ret = AVERROR_INVALIDDATA;
}
end:
fclose(f);
return ret;
}
static const AVFilterPad lut3d_inputs[] = { static const AVFilterPad lut3d_inputs[] = {
{ {
.name = "default", .name = "default",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment