Commit Graph

758 Commits

Author SHA1 Message Date
Paul B Mahol ae5a435300 avfilter: add afirsrc filter 2020-02-07 17:07:30 +01:00
James Almer 616e9b5cff avfilter/Makefile: add vulkan.h to the list of skipped headers
Should fix make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
2020-02-06 10:26:31 -03:00
Lynne 907ae87d6e lavfi: add an chromaber_vulkan filter
This commit adds a chromatic aberration filter for Vulkan that attempts to
emulate a lens chromatic aberration effect.
For a YUV frame it will instead shift the chroma channels, providing a
simple approximation.
2020-02-04 23:19:48 +00:00
Lynne a2db7343e0 lavfi: add an avgblur_vulkan filter
This commit adds a fast avgblur Vulkan filter.
This will reset Intel GPUs on Linux due to a known, two-year-old driver bug
(!834 on mesa's gitlab).
2020-02-04 23:19:48 +00:00
Lynne 7bb443137c lavfi: add an overlay_vulkan filter
This commit adds a basic, non-converting overlay filter for Vulkan.
2020-02-04 23:19:48 +00:00
Lynne d95c509cc6 lavfi: add an scale_vulkan filter
This commit adds a basic, non-converting Vulkan scaling filter.
2020-02-04 23:19:48 +00:00
Lynne 6fca61bbc9 lavfi: add Vulkan filtering framework
This commit adds a Vulkan filtering infrastructure for libavfilter.
It attempts to abstract as much as possible of the Vulkan API from filters.

The way the hwcontext and the framework are designed permits for parallel,
non-CPU-blocking filtering throughout, with the exception of up/downloading
and mapping.
2020-02-04 23:19:48 +00:00
Paul B Mahol cd823dadf9 avfilter: add xfade opencl filter 2020-02-02 14:08:56 +01:00
Paul B Mahol 863accbefa avfilter: add xfade filter 2020-01-30 16:35:33 +01:00
Paul B Mahol 1a7f4a122e avfilter: add freezeframes video filter 2020-01-11 19:05:17 +01:00
Paul B Mahol cc43c2f29a avfilter: add thistogram video filter 2019-12-29 15:33:55 +01:00
Xinpeng Sun 2e2dfe6673 avfilter: Add tonemap vaapi filter for H2S
It performs HDR(High Dynamic Range) to SDR(Standard Dynamic Range) conversion
with tone-mapping. It only supports HDR10 as input temporarily.

An example command to use this filter with vaapi codecs:
FFMPEG -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
-i INPUT -vf 'tonemap_vaapi=format=p010' -c:v hevc_vaapi -profile 2 OUTPUT

Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-12-17 07:49:49 +08:00
Gyan Doshi e73688eff4 avfilter: rename scale.c,h to scale_eval
scale.c is too generic; scale_eval is more representative
2019-12-10 12:55:48 +05:30
leozhang 0c7f9f714d avfilter/vf_yaepblur: add yaepblur filter
Signed-off-by: leozhang <leozhang@qiyi.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-06 11:25:29 +01:00
Paul B Mahol 93414ce831 avfilter: add axcorrelate filter 2019-11-23 11:54:20 +01:00
Paul B Mahol c8f269f24f avfilter/vf_chromashift: remove unused header
Reverts ef479ee660.
2019-11-19 10:37:12 +01:00
Gyan Doshi 0cfda90b34 avfilter/Makefile: add missing dependency for lut3d
lut3d requires framesync
2019-11-19 14:11:20 +05:30
Gyan Doshi ef479ee660 avfilter/Makefile: add missing dependency for chromashift
chromashift requires framesync
2019-11-19 14:10:42 +05:30
Gyan Doshi 2ff444bd3a avfilter/Makefile: add missing dependency for scale_cuda
scale_cuda includes scale.h
2019-11-19 12:07:03 +05:30
Lou Logan 007e03348d avfilter/Makefile: add missing framesync dependency to bm3d & mix filters
Signed-off-by: Lou Logan <lou@lrcd.com>
2019-11-08 09:37:31 -09:00
Guo, Yejun 4d980a8ceb avfilter/vf_dnn_processing: add a generic filter for image proccessing with dnn networks
This filter accepts all the dnn networks which do image processing.
Currently, frame with formats rgb24 and bgr24 are supported. Other
formats such as gray and YUV will be supported next. The dnn network
can accept data in float32 or uint8 format. And the dnn network can
change frame size.

The following is a python script to halve the value of the first
channel of the pixel. It demos how to setup and execute dnn model
with python+tensorflow. It also generates .pb file which will be
used by ffmpeg.

import tensorflow as tf
import numpy as np
import imageio
in_img = imageio.imread('in.bmp')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]
filter_data = np.array([0.5, 0, 0, 0, 1., 0, 0, 0, 1.]).reshape(1,1,3,3).astype(np.float32)
filter = tf.Variable(filter_data)
x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
y = tf.nn.conv2d(x, filter, strides=[1, 1, 1, 1], padding='VALID', name='dnn_out')
sess=tf.Session()
sess.run(tf.global_variables_initializer())
output = sess.run(y, feed_dict={x: in_data})
graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'halve_first_channel.pb', as_text=False)
output = output * 255.0
output = output.astype(np.uint8)
imageio.imsave("out.bmp", np.squeeze(output))

To do the same thing with ffmpeg:
- generate halve_first_channel.pb with the above script
- generate halve_first_channel.model with tools/python/convert.py
- try with following commands
  ./ffmpeg -i input.jpg -vf dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:fmt=rgb24:dnn_backend=native -y out.native.png
  ./ffmpeg -i input.jpg -vf dnn_processing=model=halve_first_channel.pb:input=dnn_in:output=dnn_out:fmt=rgb24:dnn_backend=tensorflow -y out.tf.png

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-11-07 15:46:00 -03:00
Paul B Mahol 1c3b70e2e0 avfilter: add median filter 2019-10-29 10:56:04 +01:00
Paul B Mahol f166951d6e avfilter: add maskedmin/maskedmax filters 2019-10-24 20:54:33 +02:00
Paul B Mahol c6e01ebe41 avfilter: add bilateral filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2019-10-21 11:48:24 +02:00
Paul B Mahol b0bfa3699c avfilter: add arnndn filter 2019-10-16 15:13:59 +02:00
Paul B Mahol e37edc70bd avfilter: add anlms filter 2019-10-06 15:09:38 +02:00
Vladimir Panteleev c888adf590 libavfilter: add photosensitivity filter 2019-09-30 20:21:27 +02:00
Paul B Mahol a746359ede avfilter: add scroll video filter 2019-09-30 19:37:37 +02:00
Paul B Mahol 402dbd4633 avfilter/Makefile: fix case for sierpinski 2019-09-25 14:15:55 +02:00
Paul B Mahol 9c3e1c1937 avfilter: add sierpinski video source 2019-09-25 14:06:26 +02:00
Jarek Samic b29c7bcbf6 lavfi: add deshake_opencl filter 2019-08-23 00:56:13 +01:00
Eugene Lyapustin b26094e217 avfilter: add v360 filter
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
2019-08-19 09:06:07 +01:00
Mark Thompson 20fed2f0ab lavfi: addroi filter
This can be used to add region of interest side data to video frames.
2019-07-28 22:34:33 +01:00
Guo, Yejun 1b9064e3f4 libavfilter/dnn: move dnn files from libavfilter to libavfilter/dnn
it is expected that there will be more files to support native mode,
so put all the dnn codes under libavfilter/dnn

The main change of this patch is to move the file location, see below:
modified:   libavfilter/Makefile
new file:   libavfilter/dnn/Makefile
renamed:    libavfilter/dnn_backend_native.c -> libavfilter/dnn/dnn_backend_native.c
renamed:    libavfilter/dnn_backend_native.h -> libavfilter/dnn/dnn_backend_native.h
renamed:    libavfilter/dnn_backend_tf.c -> libavfilter/dnn/dnn_backend_tf.c
renamed:    libavfilter/dnn_backend_tf.h -> libavfilter/dnn/dnn_backend_tf.h
renamed:    libavfilter/dnn_interface.c -> libavfilter/dnn/dnn_interface.c

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-07-26 13:07:43 -03:00
Paul B Mahol bd5e92ef8a avfilter: add deesser audio filter 2019-07-02 19:02:54 +02:00
Xuewei Meng 78e1d7f421 libavfilter: Add derain filter
Remove the rain in the input image/video by applying the derain
methods based on convolutional neural networks. Training scripts
as well as scripts for model generation are provided in the
repository at https://github.com/XueweiMeng/derain_filter.git.

Signed-off-by: Xuewei Meng <xwmeng96@gmail.com>
2019-06-06 13:59:43 +08:00
Paul B Mahol b19550367f avfilter: add showspatial multimedia filter 2019-05-31 12:53:20 +02:00
Ruiling Song 1d74150a7d lavfi/opencl: add nlmeans_opencl filter
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-05-24 15:09:22 +08:00
Paul B Mahol f49cec2ba8 avfilter: add asr filter 2019-05-14 15:17:14 +02:00
Paul B Mahol 8ef163ba9e avfilter: add xmedian filter 2019-05-14 14:43:56 +02:00
Paul B Mahol 59fb8cae5e avfilter: add colorhold filter
Fixes #7671.
2019-05-11 20:16:45 +02:00
Paul B Mahol c2f305ca17 avfilter: add audio soft clip filter 2019-04-27 00:21:38 +02:00
Jarek Samic 1c46ab4815 lavfi: add colorkey_opencl filter
This is a direct port of the CPU filter.

Signed-off-by: Jarek Samic <cldfire3@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2019-04-20 16:32:34 +01:00
Paul B Mahol 782ae68a11 avfilter: add lagfun filter 2019-04-20 14:20:07 +02:00
Timo Rothenpieler 9e1e521393 avutil/cuda_check: fix usage of removed .c file
Why did this not break compilation?
2019-02-15 00:44:12 +01:00
Zachary Zhou b8ebce4f84 libavfilter: add transpose_vaapi filter
Swap width and height when do clock/cclock rotation
Add reversal/hflip/vflip options

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
-hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
-c:v h264_vaapi output.h264

Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2019-01-23 23:29:40 +00:00
Paul B Mahol 1ea5529dd2 avfilter: add maskfun filter 2019-01-12 19:49:15 +01:00
Carl Eugen Hoyos e52140ba37 lavfi/Makefile: Fix bwdif filter standalone compilation. 2019-01-10 20:02:26 +01:00
Paul B Mahol 8a1fc95840 avfilter: add anlmdn audio filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2019-01-08 22:00:51 +01:00
Ruiling Song 416dc9a5e8 lavf: add transpose_opencl filter
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-12-02 23:39:37 +00:00