You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
lavfi/lut3d: move lut3d init to its definition scope.
This commit is contained in:
@@ -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[] = {
|
|||||||
|
|
||||||
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",
|
||||||
|
Reference in New Issue
Block a user