Sam.Richards@taurich.org
677cf95ea4
Initial checkin of OCIO filter.
...
Initial checkin of OCIO filter.
Initial checkin of OCIO filter.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Change for the right C++ library, should work on linux too.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Adding inverse when using display/view.
Removed comments.
Removed code that was setting the CICP values. Hopefully this can be done through OCIO at some point.
Config cleanup - need a modified require_cpp to handle namespacing.
Switch to using require_cpp so that namespace can be used.
Adding documentation.
Sadly a bit of linting went in here, but more importantly added a threads option to split the image into horizontal tiles, since OCIO was running rather slow.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Adding context parameters.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Add the OCIO config parameter.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Make the min threads 1 for now, reserve 0 for later if we can automatically pick something.
Also added a few comments.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
This is using ffmpeg-slicing.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Adding OCIO filetransform.
Making sure everything is using av_log rather than std::cerr.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Updating the tests so they would work without additional files.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Adding the file-transform documentation.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Adding copyright/license info.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Removing tests, since this is optional code.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Code cleanup.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Typo.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
I went the wrong way, av_log is expecting \n
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Fix indenting to 4 spaces.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Fixing lint issues and a spelling mistake.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Code formatting cleanup to match conventions.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
Whitespace removal.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org >
2026-02-14 12:21:10 +00:00
stevxiao
451ff239e6
avfilter: d3d12 motion estimation filter support
...
This commit introduces a video filter `mestimate_d3d12` that provides hardware-accelerated motion estimation using DirectX 12 Video Encoding APIs. The filter leverages GPU hardware motion estimation capabilities to achieve significant performance improvements over the existing software-based mestimate filter.
Sample Command Line:
1. Basic mestimate_d3d12 functionality
```
ffmpeg_g.exe -hwaccel d3d12va -i test.mp4 -vf mestimate_d3d12=mb_size=16 -f null -
```
2. Motion vector visualization
```
ffmpeg -hwaccel d3d12va -i input.mp4 -vf "mestimate_d3d12,hwdownload,format=nv12,codecview=mv=pf" -c:v libx264 output.mp4
```
2026-01-26 11:31:48 +00:00
Dmitrii Ovchinnikov
6972b127de
avfilter: Add vsrc_amf - AMF based screen capture
...
This patch adds screen capture support via AMF vsrc_amf:
ffmpeg -y \
-filter_complex "vsrc_amf=framerate=120:capture_mode=keep_framerate" \
-c:v hevc_amf \
-frames:v 300 \
output_grab.mp4
If the HW frames pool is insufficient,
increase extra_hw_frames in filter_complex.
2026-01-19 10:16:37 +00:00
Lynne
f2affdfafb
configure/make: support compile-time SPIR-V generation
2026-01-12 17:28:40 +01:00
Araz Iusubov
c4d22f2d2c
avfilter: D3D12 scale video filter support
...
This filter allows scaling of video frames using Direct3D 12 acceleration.
Example:
ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 \
-i input.mp4 -vf scale_d3d12=1920:1280 \
-c:v hevc_d3d12va -y output_1920x1280.mp4
2025-12-07 21:22:23 +00:00
Diego de Souza
75b8567591
avfilter/scale_cuda: Add support for 4:2:2 chroma subsampling
...
The supported YUV pixel formats were separated between planar
and semiplanar. This approach reduces the number of CUDA kernels
for all pixel formats.
This patch:
1. Adds support for YUV 4:2:2 planar and semi-planar formats:
yuv422p, yuv422p10, nv16, p210, p216
2. Implements new conversion structures and kernel definitions
for planar and semi-planar formats
Signed-off-by: Diego de Souza <ddesouza@nvidia.com >
2025-11-27 22:11:57 +01:00
Andreas Rheinhardt
9b34088c4d
avfilter/vf_fspp: Add DSPCtx, move DSP functions to file of their own
...
This is in preparation for adding checkasm tests; without it,
checkasm would pull all of libavfilter in.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-11-17 11:28:04 +01:00
James Almer
d9853e66d3
avfilter/Makefile: fix dependency for drawvg test
...
Signed-off-by: James Almer <jamrial@gmail.com >
2025-10-25 10:57:56 -03:00
Ayose
016d767c8e
lavfi: add drawvg video filter.
...
The drawvg filter can draw vector graphics on top of a video, using libcairo. It
is enabled if FFmpeg is configured with `--enable-cairo`.
The language for drawvg scripts is documented in `doc/drawvg-reference.texi`.
There are two new tests:
- `fate-filter-drawvg-interpreter` launch a script with most commands, and
verify which libcairo functions are executed.
- `fate-filter-drawvg-video` render a very simple image, just to verify that
libcairo is working as expected.
Signed-off-by: Ayose <ayosec@gmail.com >
2025-10-25 13:21:50 +00:00
Niklas Haas
5830743363
avfilter/vf_idet: separate DSP parts
...
To avoid pulling in the entire libavfilter when using the DSP functions
from checkasm.
The rest of the struct is not needed outside vf_idet.c and was moved there.
2025-09-21 11:02:41 +00:00
Timo Rothenpieler
36e374efb0
avfilter: add gfxcapture, Windows.Graphics.Capture based window/monitor capture
2025-09-14 11:45:11 +00:00
Andreas Rheinhardt
893250a734
avfilter/Makefile: Add dependencies for premultiply_dynamic filter
...
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-09-06 16:06:31 +02:00
Vittorio Palmisano
13ce36fef9
libavfilter: Whisper audio filter
...
It adds a new audio filter for running audio transcriptions with the whisper model.
Documentation and examples are included into the patch.
2025-08-08 21:59:56 +02:00
Dash Santosh
96821211c2
avfilter: add scale_d3d11 filter
...
This commit introduces a new hardware-accelerated video filter, scale_d3d11,
which performs scaling and format conversion using Direct3D 11. The filter enables
efficient GPU-based scaling and pixel format conversion (p010 to nv12), reducing
CPU overhead and latency in video pipelines.
2025-07-31 21:07:51 +00:00
Niklas Haas
545f721b44
avfilter/vf_colordetect: add new color range detection filter
...
This filter can detect various properties about the image, including
whether or not there are out-of-range values, or whether the input appears
to use straight or premultiplied alpha.
Of course, these can only be heuristics, with "undetermined" as the base
case. While we can definitely prove the existence of full range or
straight alpha colors, we can never infer the opposite.
2025-07-21 18:10:25 +02:00
Jorge Estrada
ad0a44028d
avfilter: add pad_cuda filter
...
This patch adds the pad_cuda video filter. A filter similar to the existing pad filter but accelerated by CUDA.
The filter shares the same options as the software pad filter.
Example usage:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf "pad_cuda=w=iw+100:h=ih+100:x=-1:y=-1:color=red" out.mp4
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org >
2025-07-04 01:32:27 +02:00
Niklas Haas
9568e40aeb
avutil/vf_scdet_vulkan: add new filter
...
Carbon copy of vf_scdet.
Signed-off-by: Niklas Haas <git@haasn.dev >
Sponsored-by: nxtedition
2025-05-28 12:21:27 +02:00
Niklas Haas
0894cfb168
avfilter/blackdetect_vulkan: add hw accelerated blackdetect filter
...
Like vf_blackdetect but better, faster, stronger, harder.
Signed-off-by: Niklas Haas <git@haasn.dev >
Sponsored-by: nxtedition
2025-05-28 12:21:27 +02:00
Michael Niedermayer
8c920c4c39
Remove libpostproc
...
Libpostproc will be available as source plugin at
https://github.com/michaelni/FFmpeg/tree/sourceplugin-libpostproc
OR
https://github.com/michaelni/libpostproc
whatever turns out more convenient to maintain
For the upcoming 8.0 release, libpostproc will be included, so as not to
cause delays or inconveniences
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-07 15:35:47 +02:00
Niklas Haas
4dc2ae69e7
avfilter/interlace_vulkan: add interlace_vulkan filter
...
This is a Vulkan-accelerated version of the existing interlace filter.
2025-02-17 17:16:25 +01:00
James Almer
a750bcb237
avfilter/Makefile: add missing SKIPHEADERS for AMF
...
Signed-off-by: James Almer <jamrial@gmail.com >
2025-02-04 16:35:06 -03:00
Evgeny Pavlov
4b77a0a681
avfilter/scale_amf: Add AMF VPP & super resolution filters
...
This commit adds two AMF filters: vpp_amf & sr_amf.
Both filters are using AMF hardware acceleration.
vpp_amf supports simple scaling algorithms & color conversion.
sr_amf supports advanced scaling algorithms such as FSR & can
be used for upscaling only.
2025-02-04 00:14:14 +01:00
Lynne
4d19be287f
libavfilter/Makefile: add a makefile for Vulkan shaders
2024-10-15 17:45:20 +02:00
James Almer
362586fcad
avfilter/vf_xpsnr: remove duplicated DSP infranstructure
...
Fully reuse the existing one from vf_psnr, instead of halfways.
Signed-off-by: James Almer <jamrial@gmail.com >
2024-10-07 09:33:52 -03:00
Lynne
e3d3ee516a
bwdif_vulkan: split off main shader code as a separate file
...
The code to support this was still there, may as well use it.
2024-10-06 01:32:46 +02:00
Lynne
6756136c92
libavfilter/Makefile: fix tag for Vulkan .comp files
2024-10-06 01:32:46 +02:00
Lynne
0a1f8107bb
vulkan: move SPIR-V compilation code to libavutil
...
The code is not currently used by libavutil, its just where our
common Vulkan code is.
Since SPIR-V compilation will be needed by lavc, move it, rather
than having lavc including lavfi.
2024-10-06 01:21:44 +02:00
Lynne
4c88186d5d
lavfi/vulkan: remove redundant header
2024-10-06 01:21:41 +02:00
James Almer
358fdf3083
avfilter: add missing build deps to msad filter
...
Signed-off-by: James Almer <jamrial@gmail.com >
2024-10-02 12:44:49 -03:00
James Almer
dc11c12b64
avfilter: add an LCEVC decoding filter
...
Signed-off-by: James Almer <jamrial@gmail.com >
2024-09-19 10:06:05 -03:00
Christian Helmrich
865cd3c056
avfilter: add XPSNR filter
...
Add XPSNR video filter
Register new filter xpsnr.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2024-09-08 17:51:37 +02:00
Stefano Sabatini
3764b8ecdb
lavfi: add Perlin noise generator
2024-07-01 22:31:02 +02:00
Andreas Rheinhardt
894879a1df
avfilter/Makefile: Add missing morpho->framesync dependency
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
b5cf359c97
avfilter/Makefile: Add missing identity->framesync dependency
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
afda5ee7b9
avfilter/Makefile: Add missing multiply->framesync dependency
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
dd246bdc0f
avfilter/Makefile: Add missing guided->framesync dependency
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
03618ee8a8
avfilter/Makefile: Add scale(2ref)->framesync dependency
...
Forgotten in e82a3997cd .
Reviewed-by: Frank Plowman <post@frankplowman.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
db53ee915d
avfilter/Makefile: Add missing colormap->framesync dependency
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Andreas Rheinhardt
609d2c01ea
avfilter/Makefile: Add missing tiltshelf entry
...
Forgotten in 525f83becd .
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-05-07 23:53:26 +02:00
Haihao Xiang
5c55e4e297
lavfi: Add drawbox_vaapi filter
...
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com >
2024-04-18 14:43:07 +08:00
Haihao Xiang
42eb10ecc6
lavfi: Add pad_vaapi filter
...
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com >
2024-04-18 14:43:07 +08:00
Martin Storsjö
cd420c2949
makefile: Clean up missed object files with "make clean"
...
In some builds, the following object files could be left behind
after make clean:
./libavfilter/metal/utils.o
./libavfilter/metal/vf_yadif_videotoolbox.metallib.o
./libavcodec/x86/h26x/h2656dsp.o
./libavcodec/neon/mpegvideo.o
./ffbuild/bin2c_host.o
Fixes: http://trac.ffmpeg.org/ticket/10895
Signed-off-by: Martin Storsjö <martin@martin.st >
2024-03-10 23:45:51 +02:00
Andreas Rheinhardt
f6ec01147f
avfilter/fifo: Remove (a)fifo filters
...
Obsolete since 4ca1fb9d2a .
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-02-08 14:02:55 +01:00
Thilo Borgmann
7ec4835386
avfilter: Add fsync filter
2024-01-05 09:29:05 +01:00
Stefano Sabatini
030e140145
lavfi: add quirc filter
2024-01-01 20:12:52 +01:00
Stefano Sabatini
899302bb5f
lavfi: add qrencode source and filter
2024-01-01 20:12:52 +01:00
Stefano Sabatini
732fb122e6
lavfi: introduce textutils
...
Generalize drawtext utilities to make them usable in other filters.
This will be needed to introduce the QR code source and filter without
duplicating functionality.
2024-01-01 20:12:52 +01:00
Vittorio Giovara
05bfc03752
Add new vf_tiltandshift filter
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2023-12-21 17:16:16 -05:00
Paul B Mahol
f66536cc58
avfilter: add Affine Projection adaptive audio filter
2023-11-28 15:40:34 +01:00
Jun Zhao
2d4aef8982
lavfi/Makefile: fix vf_cropdetect missed edge_common
...
vf_cropdetect depends on edge_common, it's missing in Makefile.
Fix trac issue:
http://trac.ffmpeg.org/ticket/10664
Signed-off-by: Jun Zhao <barryjzhao@tencent.com >
2023-11-18 20:19:39 +01:00