summaryrefslogtreecommitdiff
path: root/libavfilter/vf_lensfun.c
Commit message (Collapse)AuthorAge
* avfilter/vf_lensfun: display list of possible values if user supplied nonePaul B Mahol2021-02-05
|
* avfilter/vf_lensfun: replace deprecated callsPaul B Mahol2021-02-05
|
* lavfi/lensfun: Use ff_filter_get_nb_threads() get number of threadsJun Zhao2019-05-22
| | | | | | | | | | ff_filter_get_nb_threads() respect AVFilterContext.nb_threads and graph->nb_threads both, in most case, we perfer this API than using ctx->graph->nb_threads directly. Reviewed-by: Steven Liu <lq@onvideo.cn> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avfilter/vf_lensfun: add scale parameterDaniel Playfair Cal2019-03-25
| | | | | | | | | | | | | | | | | | | The lensfun filter wraps the lensfun library which performs transformations on videos to correct for lens distortion. Often this results in areas in the input being mapped to areas that fall outside the boundaries of the output. The library has a parameter called scale which is a scale factor applied to the output video. By decreasing it it is possible to regain the areas of the video which would otherwise have been lost. There is a special value of 0 which indicates that the library should automatically determine a scale factor that results in the output frame being filled (i.e. little or no black/unmapped areas). This patch adds a corresponding scale option to the lensfun filter which is passed through to the library. The existing behaviour of using the automatic value of 0 is retained as the default behaviour, while other values will be passed through to the library. Signed-off-by: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>
* avfilter/vf_lensfun: use av_malloc_array()Paul B Mahol2018-10-18
|
* avfilter/vf_lensfun: use av_freepPaul B Mahol2018-10-18
|
* Add lensfun filterStephen Seo2018-07-15
Lensfun is a library that applies lens correction to an image using a database of cameras/lenses (you provide the camera and lens models, and it uses the corresponding database entry's parameters to apply lens correction). It is licensed under LGPL3. The lensfun filter utilizes the lensfun library to apply lens correction to videos as well as images. This filter was created out of necessity since I wanted to apply lens correction to a video and the lenscorrection filter did not work for me. While this filter requires little info from the user to apply lens correction, the flaw is that lensfun is intended to be used on indvidual images. When used on a video, the parameters such as focal length is constant, so lens correction may fail on videos where the camera's focal length changes (zooming in or out via zoom lens). To use this filter correctly on videos where such parameters change, timeline editing may be used since this filter supports it. Note that valgrind shows a small memory leak which is not from this filter but from the lensfun library (memory is allocated when loading the lensfun database but it somehow isn't deallocated even during cleanup; it is briefly created in the init function of the filter, and destroyed before the init function returns). This may have been fixed by the latest commit in the lensfun repository; the current latest release of lensfun is almost 3 years ago. Bi-Linear interpolation is used by default as lanczos interpolation shows more artifacts in the corrected image in my tests. The lanczos interpolation is derived from lenstool's implementation of lanczos interpolation. Lenstool is an app within the lensfun repository which is licensed under GPL3. v2 of this patch fixes license notice in libavfilter/vf_lensfun.c v3 of this patch fixes code style and dependency to gplv3 (thanks to Paul B Mahol for pointing out the mentioned issues). v4 of this patch fixes more code style issues that were missed in v3. v5 of this patch adds line breaks to some of the documentation in doc/filters.texi (thanks to Gyan Doshi for pointing out the issue). v6 of this patch fixes more problems (thanks to Moritz Barsnick for pointing them out). v7 of this patch fixes use of sqrt() (changed to sqrtf(); thanks to Moritz Barsnick for pointing this out). Also should be rebased off of latest master branch commits at this point. Signed-off-by: Stephen Seo <seo.disparate@gmail.com>