1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2026-06-03 16:24:53 +02:00
Commit Graph

10292 Commits

Author SHA1 Message Date
Paul B Mahol 3ce4e08089 avfilter/avf_avectorscope: request new frames only when needed 2022-04-30 16:20:38 +02:00
Paul B Mahol 9aa20d28cd avfilter/af_aspectralstats: request new frames only when needed 2022-04-30 15:41:46 +02:00
Paul B Mahol a9e9020ff6 avfilter/af_surround: request new frames only when needed 2022-04-30 15:41:46 +02:00
Paul B Mahol d8e8aa944a avfilter/avf_showfreqs: add rate option
Fix possible buffer overflow.
2022-04-30 15:41:45 +02:00
Paul B Mahol fe06e70c30 avfilter/vf_estdif: set frame_rate only when needed 2022-04-30 10:09:45 +02:00
Paul B Mahol f09712d686 avfilter/vf_w3fdif: set frame_rate only when needed 2022-04-30 10:09:45 +02:00
Paul B Mahol 6018fa899f avfilter/vf_nnedi: set frame_rate only when needed 2022-04-30 10:09:45 +02:00
Paul B Mahol 55e0b041b3 avfilter/vf_mix: output same number of frames from input for tmix 2022-04-29 22:27:39 +02:00
Paul B Mahol 1148e5f1cc avfilter/vf_xmedian: fix multiple threads usage 2022-04-29 22:27:39 +02:00
Paul B Mahol 3415028d13 avfilter/vf_mix: fix multiple threads usage 2022-04-29 20:50:33 +02:00
Paul B Mahol 126d5d3b5f avfilter/vf_fftdnoiz: small improvements
Stop using log() for block size.
Fix possible buffer overflow in export path.
2022-04-29 20:22:55 +02:00
Paul B Mahol 31c714bf0b avfilter/af_adynamicequalizer: remove unused header 2022-04-29 20:22:55 +02:00
Andreas Rheinhardt 8449fbdf8e avfilter/vf_colormap: Avoid allocation of small array
The number of elements is always two or three.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-29 13:38:20 +02:00
Andreas Rheinhardt 9d2f427958 avfilter/vf_colormap: Remove unnecessary headers
In particular remove config_components.h in order to avoid unnecessary
rebuilds.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-29 13:38:14 +02:00
Andreas Rheinhardt fdc16fbb7a avfilter/vf_colormap: Fix declaration-after-statement
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-29 13:38:07 +02:00
Andreas Rheinhardt f4ace6d82d avfilter/vf_colormap: Properly uninit FFFrameSync, fix leak
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-29 13:37:51 +02:00
Andreas Rheinhardt 5f8c83e95e avfilter/Makefile: Add fflcms2.h to SKIPHEADERS- if necessary
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-04-29 01:30:14 +02:00
Paul B Mahol c27123606a avfilter/af_adynamicequalizer: set target filter type 2022-04-28 22:12:32 +02:00
Paul B Mahol 4e284837e4 avfilter/af_adynamicequalizer: improve threshold usage 2022-04-28 22:12:32 +02:00
Paul B Mahol 14b74610d7 avfilter/af_anlms: add timeline support 2022-04-27 21:30:43 +02:00
Thilo Borgmann 79286d3eb6 avfilter/vf_blurdetect: fix uninitialized variables and possible div by zero
Found-by: Coverity
2022-04-27 11:41:41 +02:00
Paul B Mahol 39f22df6cd avfilter/vsrc_testsrc: fix typo for yellow patch 2022-04-26 22:04:30 +02:00
Paul B Mahol 944e60f4ae avfilter/vf_blurdetect: remove set but not used variables 2022-04-26 20:15:26 +02:00
Paul B Mahol 452d611fc7 avfilter/vf_lut3d: allow to control when to upload CLUT for haldclut 2022-04-26 20:07:04 +02:00
Thilo Borgmann 1da3394adb avfilter/vf_blurdetect: cleanup headers, remove unused variables, fix type of variable 2022-04-26 12:39:17 +02:00
Paul B Mahol 08ac8bda38 avfilter/vf_colormap: avoid reallocating memory to build map 2022-04-26 09:21:56 +02:00
Paul B Mahol f908f365f9 avfilter/vf_colormap: change default nb_patches 2022-04-26 09:21:55 +02:00
Thilo Borgmann b23208826b lavfi: Add blurdetect filter 2022-04-25 20:52:15 +02:00
Thilo Borgmann 22df52c444 lafi/vf_edgedetect: Move some common functions into seperate file 2022-04-25 20:52:15 +02:00
Paul B Mahol fe85afbf8c avfilter/af_afftdn: use better approach for gain smoothing 2022-04-23 23:05:51 +02:00
Jan Ekström eae3b84189 libavfilter/version: bump minor version for icc{gen,detect}
Missed during that patch set's life time.
2022-04-23 23:07:26 +03:00
Niklas Haas 2cb0cebd11 lavfi: add vf_iccdetect for parsing ICC profiles
This filter is designed to parse embedded ICC profiles and attempt
extracting colorspace tags from them, updating the AVFrame metadata
accordingly.

This is intentionally made a separate filter, rather than being part of
libavcodec itself, so that it's an opt-in behavior for the time being.
This also gives the user more flexibility to e.g. first attach an ICC
profile and then also set the colorspace tags from it.

This makes #9673 possible, though not automatic.

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-04-23 21:51:55 +02:00
Niklas Haas 5cfeaeef0c lavfi: add vf_iccgen for generating ICC profiles
This filter is designed to specifically cover the task of generating ICC
profiles (and attaching them to output frames) on demand. Other tasks,
such as ICC profile loading/stripping, or ICC profile application, are
better left to separate filters (or included into e.g. vf_setparams).

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-04-23 21:51:55 +02:00
Niklas Haas b9a25963f7 lavfi: add ICC profile support via lcms2
This introduces an optional dependency on lcms2 into FFmpeg. lcms2 is a
widely used library for ICC profile handling, which apart from being
used in almost all major image processing programs and video players,
has also been deployed in browsers. As such, it's both widely available
and well-tested.

Add a few helpers to cover our major use cases. This commit merely
introduces the helpers (and configure check), even though nothing uses
them yet.

It's worth pointing out that the reason the cmsToneCurves for each
AVCOL_TRC are cached inside the context, is because constructing a
cmsToneCurve requires evaluating the curve at 4096 (by default) grid
points and constructing a LUT. So, we ideally only want to do this once
per curve. This matters for e.g. ff_icc_profile_detect_transfer, which
essentially compares a profile against all of these generated LUTs.
Re-generating the LUTs for every iteration would be unnecessarily
wasteful.

The same consideration does not apply to e.g. cmsCreate*Profile, which
is a very lightweight operation just involving struct allocation and
setting a few pointers.

The cutoff value of 0.01 was determined by experimentation. The lowest
"false positive" delta I saw in practice was 0.13, and the largest
"false negative" delta was 0.0008. So a value of 0.01 sits comfortaby
almost exactly in the middle.

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-04-23 21:51:55 +02:00
Niklas Haas 072dd047f0 lavfi: add ff_detect_color_primaries helper
Related to #9673, this helper exists to facilitate "guessing" the right
primary tags from a given set of raw primary coefficients.

The cutoff value of 0.001 was chosen by experimentation. The smallest
"false positive" delta observed in practice was 0.023329, while the
largest "false negative" delta was 0.00016. So, a value of 0.001 sits
comfortably in the middle.

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-04-23 21:51:55 +02:00
Niklas Haas 6d83036662 lavfi: generalize colorspace coefficent helpers
These are needed beyond just vf_colorspace, so give them a new home in
colorspace.h.

In addition to moving code around, also merge the white point and
primary coefficients into a single struct to slightly increase the
convenience and shrink the size of the new API by avoiding the need
to introduce an extra function just to look up the white point as well.
The only place the distinction matters is in a single enum comparison,
which can just as well be a single memcpy - the difference is
negligible.

Signed-off-by: Niklas Haas <git@haasn.dev>
2022-04-23 21:51:55 +02:00
Paul B Mahol ce23794b91 avfilter/avf_showspectrum: filter support all channel counts 2022-04-23 19:24:43 +02:00
Paul B Mahol a64e250680 avfilter/af_afftdn: add gain_smooth option 2022-04-23 16:25:45 +02:00
Paul B Mahol 16463520d9 avfilter: add colorchart video filter 2022-04-23 11:00:42 +02:00
Paul B Mahol 43ea19fef4 avfilter: add colormap video filter 2022-04-23 10:59:34 +02:00
Paul B Mahol b1b7249606 avfilter/vf_lagfun: small speed-up 2022-04-23 10:58:29 +02:00
Michael Niedermayer fbd22504c4 avfilter/vsrc_mandelbrot: Check for malloc failure
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-04-22 12:24:14 +02:00
Paul B Mahol 0b6e801d4a avfilter/avf_showfreqs: add option to draw subset of channels 2022-04-22 01:20:21 +02:00
Paul B Mahol fd834924d7 avfilter/avf_showfreqs: filter support all channel counts 2022-04-22 01:20:21 +02:00
Michael Niedermayer d353909e77 avfilter/vf_frei0r: Copy to frame allocated according to frei0r requirements
Fixes: issues with non trivial linesize

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-04-21 22:42:20 +02:00
Michael Niedermayer d740782701 avfilter/video: Add ff_default_get_video_buffer2() to set specific alignment
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-04-21 22:42:20 +02:00
Paul B Mahol b9e75c1862 avfilter/vf_ciescope: add option to disable CIE tongue filling 2022-04-19 22:08:15 +02:00
Paul B Mahol da4b7c2be4 avfilter/vf_ciescope: little optimizations 2022-04-19 20:32:23 +02:00
Paul B Mahol 8b717a4044 avfilter/avf_ahistogram: set time_base to outlink
And rescale timestamps.
2022-04-19 19:22:40 +02:00
Paul B Mahol d41f85235d avfilter/avf_avectorscope: set time_base to outlink
And rescale timestamps.
2022-04-18 20:24:54 +02:00