diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-02-05 15:26:10 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-02-05 15:27:50 +0100 |
commit | d16293e76cf8b53b8bef589e69823f7864ee14f4 (patch) | |
tree | 9c26a45a239c02e54d0fcdce42981b665f72a2d9 | |
parent | 8b78eb312de948c408c2437674e6ebf8971857c4 (diff) | |
download | ffmpeg-d16293e76cf8b53b8bef589e69823f7864ee14f4.tar.gz |
avfilter/vf_lensfun: display list of possible values if user supplied none
-rw-r--r-- | libavfilter/vf_lensfun.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/libavfilter/vf_lensfun.c b/libavfilter/vf_lensfun.c index 95f00e8c10..430daa941b 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); |