ffmpeg/doc
Stephen Seo 0ea20124b7 Add lensfun filter
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>
2018-07-15 10:07:54 +02:00
..
doxy
examples doc/examples: add missing ignore files 2018-05-16 00:39:52 +02:00
.gitignore
APIchanges doc: remove AVStream private fields from APIchanges 2018-05-21 12:13:14 -07:00
Doxyfile
Makefile doc: Add mailing list FAQ 2017-10-03 15:25:07 -08:00
authors.texi
bitstream_filters.texi lavc: Add VP9 metadata bitstream filter 2018-05-02 01:21:40 +01:00
bootstrap.min.css
build_system.txt
codecs.texi doc/codecs: Remove option sc_factor. 2018-05-24 18:23:53 +02:00
decoders.texi avcodec/libzvbi-teletextdec: add support for selecting subtitle pages only 2018-06-10 23:48:23 +02:00
default.css
demuxers.texi avformat/mpegts: add merge_pmt_versions option 2018-05-18 19:00:29 -07:00
developer.texi doc/developer: update style guidelines to include for loops with declarations 2018-05-18 02:24:28 +01:00
devices.texi
doxy-wrapper.sh
encoders.texi doc/encoders: list missing options for x265 2018-03-30 14:03:03 -08:00
errno.txt
faq.texi doc: Add FAQs about running in background (rev 2) 2017-11-22 18:13:49 +01:00
fate.texi fate: allow temp files for passed test to be kept 2018-07-10 10:12:38 +05:30
fate_config.sh.template
ffmpeg-bitstream-filters.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-codecs.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-devices.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-filters.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-formats.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-protocols.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-resampler.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-scaler.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-utils.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg.texi ffmpeg: mark sseof as an input-only option 2018-06-09 00:37:03 +05:30
ffmpeg.txt
ffplay.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffprobe.texi doc: fix incorrect reference to xsd_compliant option 2018-05-12 12:09:20 -07:00
ffprobe.xsd ffprobe: Print color properties from show_frames 2017-07-21 20:19:07 +02:00
fftools-common-opts.texi avformat/utils: Stream specifier enhancement 2. 2018-04-13 21:44:28 +02:00
filter_design.txt doc: update filter_design.txt. 2017-09-12 11:03:51 +02:00
filters.texi Add lensfun filter 2018-07-15 10:07:54 +02:00
formats.texi doc/formats: get fflags values up-to-date 2018-06-14 17:28:45 +05:30
general.texi doc/general.texi: clarify FDK-AAC licensing & usability 2018-06-07 17:04:56 +05:30
git-howto.texi
indevs.texi doc/devices: order alphabetically and add missing v4l2 outdev 2018-06-13 11:21:12 -08:00
issue_tracker.txt Remove the ffserver program 2018-01-06 18:31:37 +00:00
lexicon
libav-merge.txt doc/libav-merge: remove resolved item 2018-04-28 14:15:41 +02:00
libavcodec.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavdevice.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavfilter.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavformat.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavutil.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libswresample.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libswscale.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
mailing-list-faq.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
metadata.texi
mips.txt
multithreading.txt
muxers.texi avformat/movenc: creating producer reference time (PRFT) box 2018-05-29 09:32:11 +05:30
nut.texi
optimization.txt
outdevs.texi doc/devices: order alphabetically and add missing v4l2 outdev 2018-06-13 11:21:12 -08:00
patchwork
platform.texi configure: error out on unsupported MSVC versions 2018-05-18 02:22:57 +01:00
print_options.c
protocols.texi Merge commit 'a2fc8dbae85339d1b418d296f2982b6c04c53c57' 2018-03-29 21:56:19 -03:00
rate_distortion.txt
resampler.texi
scaler.texi
snow.txt
style.min.css
swresample.txt
swscale.txt
t2h.init
t2h.pm
tablegen.txt
texi2pod.pl
texidep.pl
undefined.txt doc: Add initial documentation explaining undefined behavior and SUINT 2017-07-21 17:37:05 +02:00
utils.texi lavu,lavfi,ffmpeg: Remove experimental OpenCL API 2017-11-22 23:20:39 +00:00
writing_filters.txt lavfi: add new iteration API 2018-03-31 23:26:30 +01:00