X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_lensfun.c;h=430daa941beab16b5e127d11561fe00e62d5ce05;hb=a240097ecd4fb1639db99e7becb888ae478405cd;hp=95f00e8c107fc33d024051edc977c0b220dbe613;hpb=8b78eb312de948c408c2437674e6ebf8971857c4;p=ffmpeg diff --git a/libavfilter/vf_lensfun.c b/libavfilter/vf_lensfun.c index 95f00e8c107..430daa941be 100644 --- a/libavfilter/vf_lensfun.c +++ b/libavfilter/vf_lensfun.c @@ -136,27 +136,36 @@ static av_cold int init(AVFilterContext *ctx) const lfCamera **cameras; const lfLens **lenses; - if (!lensfun->make) { - av_log(ctx, AV_LOG_FATAL, "Option \"make\" not specified\n"); - return AVERROR(EINVAL); - } else if (!lensfun->model) { - av_log(ctx, AV_LOG_FATAL, "Option \"model\" not specified\n"); + db = lf_db_create(); + if (lf_db_load(db) != LF_NO_ERROR) { + lf_db_destroy(db); + av_log(ctx, AV_LOG_FATAL, "Failed to load lensfun database\n"); + return AVERROR_INVALIDDATA; + } + + if (!lensfun->make || !lensfun->model) { + const lfCamera *const *cameras = lf_db_get_cameras(db); + + av_log(ctx, AV_LOG_FATAL, "Option \"make\" or option \"model\" not specified\n"); + av_log(ctx, AV_LOG_INFO, "Available values for \"make\" and \"model\":\n"); + for (int i = 0; cameras && cameras[i]; i++) + av_log(ctx, AV_LOG_INFO, "\t%s\t%s\n", cameras[i]->Maker, cameras[i]->Model); + lf_db_destroy(db); return AVERROR(EINVAL); } else if (!lensfun->lens_model) { + const lfLens *const *lenses = lf_db_get_lenses(db); + av_log(ctx, AV_LOG_FATAL, "Option \"lens_model\" not specified\n"); + av_log(ctx, AV_LOG_INFO, "Available values for \"lens_model\":\n"); + for (int i = 0; lenses && lenses[i]; i++) + av_log(ctx, AV_LOG_INFO, "\t%s\t(make %s)\n", lenses[i]->Model, lenses[i]->Maker); + lf_db_destroy(db); return AVERROR(EINVAL); } lensfun->lens = lf_lens_create(); lensfun->camera = lf_camera_create(); - db = lf_db_create(); - if (lf_db_load(db) != LF_NO_ERROR) { - lf_db_destroy(db); - av_log(ctx, AV_LOG_FATAL, "Failed to load lensfun database\n"); - return AVERROR_INVALIDDATA; - } - cameras = lf_db_find_cameras(db, lensfun->make, lensfun->model); if (cameras && *cameras) { lf_camera_copy(lensfun->camera, *cameras);