1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

8497 Commits

Author SHA1 Message Date
Michael Niedermayer
dde86d0ddf avfilter/vf_spp: Remove unused AVCodecContext
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-05-12 01:00:28 +02:00
Lynne
70d396c8af Revert "hwcontext_vulkan: only use one semaphore per image"
This reverts commit 97b526c192.
It broke the API, and assumed no other APIs used multiple semaphores.
This also disallowed certain optimizations to happen.

Dealing with APIs that give or expect single semaphores is easier when
we use per-image semaphores.
2020-05-11 23:48:26 +01:00
Limin Wang
a058d81570 avfilter/vf_signalstats: reindent after last commit
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-10 22:32:34 +08:00
Limin Wang
25bb72af62 avfilter/vf_signalstats: make the alloc array used for any bit depth
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-10 22:32:34 +08:00
Limin Wang
764efda192 avfilter/vf_signalstats: add SignalstatsContext.maxsize variable
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-10 22:32:34 +08:00
Limin Wang
a8c762a17d avfilter/vf_signalstats: rename config_props -> config_output
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-10 22:32:34 +08:00
Guo, Yejun
71e28c5422 dnn/native: add native support for minimum
it can be tested with model file generated with below python script:
import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
x1 = tf.minimum(0.7, x)
x2 = tf.maximum(x1, 0.4)
y = tf.identity(x2, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-05-08 15:22:27 +08:00
Sebastian Dröge
ed3da72583 s->target_i and global are in dB but s->target_tp and true_peak are
linear. Instead of mixing these in the calculations, convert the former
first to have all following calculations in the same unit.

Signed-off-by: Kyle Swanson <k@ylo.ph>
2020-05-01 21:36:07 -07:00
Limin Wang
f441fadbcf avfilter/af_adelay: Check sscanf() return value
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-01 06:36:36 +08:00
Limin Wang
ee5d6d2ef8 avfilter/vf_mix: Check sscanf() return value
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-05-01 06:36:36 +08:00
Paul B Mahol
0a181c2cb1 avfilter/af_crossfeed: make options runtime configurable 2020-04-30 12:18:36 +02:00
Paul B Mahol
35d6001815 avfilter/af_crossfeed: make slope configurable 2020-04-30 12:18:36 +02:00
Paul B Mahol
0ec61fcff7 avfilter/af_crossfeed: fix calculation of alpha parameter
Use A in calculation.
2020-04-30 12:18:36 +02:00
Paul B Mahol
c7d8082357 avfilter: add asubboost filter 2020-04-30 12:18:36 +02:00
Paul B Mahol
2970846fc1 avfilter/vf_v360: make FOV adjusted for dual fisheye too
Remove any usage of padding for this format.
2020-04-29 19:18:25 +02:00
Paul B Mahol
d8147c4e2d avfilter/af_amix: make weights option runtime configured 2020-04-29 19:18:25 +02:00
Steven Liu
d813e43b3d avfilter/vf_v360: adjustment out_pad and in_pad maximum value to 1/10
Because not every user know about in_pad and out_pad reasonable value range
so maybe try to set 1.0, but setting 1.0 is so hugh to get an fatal error.

Suggested-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2020-04-29 13:48:02 +01:00
Paul B Mahol
f53fc935b8 avfilter/vf_pixscope: also show standard deviation of zoomed area 2020-04-26 12:27:36 +02:00
Paul B Mahol
35bcbfd6da avfilter/f_interleave: no need to check for inlink eof if non-empty queue
Also set state to ready if there is any inlink with queued frame.
2020-04-25 13:35:22 +02:00
Paul B Mahol
ec3b5deab4 avfilter/f_interleave: make sure that all frames in inlink queue are used 2020-04-25 13:07:13 +02:00
Paul B Mahol
b29b934e4f avfilter/f_interleave: add duration option 2020-04-25 12:35:22 +02:00
Lynne
b136a98303 scale_vulkan: take frame cropping parameters in account when scaling
Then sample_aspect_ratio line at the bottom was cargo-culted from the vaapi
scaling filter, but its unnecesary.
2020-04-23 18:23:45 +01:00
Lynne
f66ac83c22 overlay_vulkan: add support for overlaying images with an alpha channel 2020-04-23 18:23:45 +01:00
Guo, Yejun
8ce9d88f93 dnn/native: add native support for divide
it can be tested with model file generated with below python script:
import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 2 / x
z2 = 1 / z1
z3 = z2 / 0.25 + 0.3
z4 = z3 - x * 1.5 - 0.3
y = tf.identity(z4, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-04-22 13:15:00 +08:00
Guo, Yejun
ef79408e97 dnn/native: add native support for 'mul'
it can be tested with model file generated from above python script:

import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 0.5 + 0.3 * x
z2 = z1 * 4
z3 = z2 - x - 2.0
y = tf.identity(z3, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-04-22 13:14:47 +08:00
Guo, Yejun
6aa7e07e7c dnn/native: add native support for 'add'
It can be tested with the model file generated with below python script:

import tensorflow as tf
import numpy as np
import imageio

in_img = imageio.imread('input.jpg')
in_img = in_img.astype(np.float32)/255.0
in_data = in_img[np.newaxis, :]

x = tf.placeholder(tf.float32, shape=[1, None, None, 3], name='dnn_in')
z1 = 0.039 + x
z2 = x + 0.042
z3 = z1 + z2
z4 = z3 - 0.381
z5 = z4 - x
y = tf.math.maximum(z5, 0.0, name='dnn_out')

sess=tf.Session()
sess.run(tf.global_variables_initializer())

graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'image_process.pb', as_text=False)

print("image_process.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate image_process.model\n")

output = sess.run(y, feed_dict={x: in_data})
imageio.imsave("out.jpg", np.squeeze(output))

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-04-22 13:14:30 +08:00
Paul B Mahol
4457f75c65 avfilter: add maskedthreshold filter 2020-04-18 12:34:49 +02:00
Paul B Mahol
9987f6d01e avfilter: add tmedian filter 2020-04-18 12:34:49 +02:00
Limin Wang
403bee30a5 avfilter/af_acrossover: Check sscanf() return value
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-04-17 16:56:13 +02:00
Paul B Mahol
24db9372eb avfilter/af_astats: add noise floor count stat 2020-04-17 13:28:01 +02:00
Paul B Mahol
715da29501 avfilter/af_astats: add slice threading support 2020-04-17 13:26:44 +02:00
Paul B Mahol
87b4fb65a8 avfilter/af_astats: measure noise floor 2020-04-17 13:26:30 +02:00
Paul B Mahol
0607f1bcb0 avfilter/af_amix: unbreak FATE, increase iterator when breaking from loop 2020-04-14 19:21:23 +02:00
Paul B Mahol
10a68ccd58 avfilter/af_amix: use av_strtod() for weights 2020-04-14 12:38:47 +02:00
Paul B Mahol
ce24b1def0 avfilter/vf_telecine: avoid possible null-pointer dereference 2020-04-14 12:12:42 +02:00
Paul B Mahol
70f866ad1b avfilter/vf_mix: check if array is available 2020-04-13 16:44:01 +02:00
Gyan Doshi
2e2fa2d6e6 doc/filters: clarify metadata and logging for blackdetect 2020-04-13 11:23:24 +05:30
Carl Eugen Hoyos
dbc5c0c1c8 lavfi/telecine: Mark telecined frames as interlaced. 2020-04-11 13:48:52 +02:00
Gyan Doshi
49a32fa45c avfilter/delogo: correct indentation for option show. 2020-04-11 11:46:48 +05:30
Gyan Doshi
74fe697f96 avfilter/delogo: remove deprecated options
Deprecated in 2015 in 8bc708fcee
2020-04-11 11:46:43 +05:30
Limin Wang
46d2b2071b avfilter/ebur128: prefer to use variable instead of type for sizeof
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-04-09 15:03:36 +02:00
Rosen Penev
8beb9e571c avfilter/vf_drawtext: only test available exceptions
soft float systems do not define these macros under musl.

Fixes: Ticket7102

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-04-09 00:59:21 +02:00
Lynne
97b526c192 hwcontext_vulkan: only use one semaphore per image
The idea was to allow separate planes to be filtered independently, however,
in hindsight, literaly nothing uses separate per-plane semaphores and it
would only work when each plane is backed by separate device memory.
2020-04-07 12:52:56 +01:00
Paul B Mahol
3f9fd9dcfd avfilter/vf_xfade: add slice transitions 2020-04-07 13:51:25 +02:00
Guo, Yejun
7e4527e8fa avfilter/vf_derain.c: put all the calculation in model file.
currently, the model outputs the rain, and so need a subtraction
in filter c code to get the final derain result.

I've sent a PR to update the model file and accepted, see at
https://github.com/XueweiMeng/derain_filter/pull/3

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2020-04-07 11:04:47 +08:00
Guo, Yejun
ffa1561608 dnn_backend_native_layer_mathbinary: add sub support
more math binary operations will be added here

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-04-07 11:04:34 +08:00
Guo, Yejun
2114c42418 avfilter/vf_dnn_processing.c: fix typo for the linesize of dnn data
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-04-07 11:03:25 +08:00
Lynne
ca76a5ba1a scale_vulkan: correctly copy the colormatrix 2020-04-06 19:16:35 +01:00
Carl Eugen Hoyos
61dcaf5fb7 lavf, lavfi: Remove uses of sizeof(char).
The C standard requires sizeof(char) == 1.
2020-04-04 23:21:14 +02:00
Carl Eugen Hoyos
e61767c40a lavfi/scale_qsv: Fix a format specifier for a variable of type int. 2020-04-04 23:18:18 +02:00
Paul B Mahol
ec7fb45240 avfilter/vf_v360: add pannini input support 2020-04-04 14:16:28 +02:00
Paul B Mahol
dc67c0f180 avfilter/vf_v360: improve description of output fov options 2020-04-03 17:14:58 +02:00
Paul B Mahol
8e1354c95d avfilter/x86/vf_v360_init: add missing cases 2020-04-02 12:25:37 +02:00
Paul B Mahol
e4809e12ea avfilter/vf_v360: add SIMD for lagrange9 interpolation 2020-04-02 12:25:37 +02:00
Paul B Mahol
b00b935d99 avfilter/vf_v360: add lagrange9 interpolation 2020-04-02 12:25:37 +02:00
Carl Eugen Hoyos
00ce1ec6a5 lavfi/deshake_opencl: Do not use bool, powerpc does not like it.
Fixes ticket #8591.
2020-04-01 15:48:19 +02:00
Paul B Mahol
72be5d4661 avfilter/vf_v360: fix swapped variables 2020-03-29 13:27:49 +02:00
Paul B Mahol
85025162da avfilter/vf_v360: speedup fisheye output 2020-03-29 13:27:49 +02:00
Paul B Mahol
460001981f avfilter/vf_v360: reduce unnecessary negations 2020-03-29 13:27:49 +02:00
Limin Wang
585ac1ff5b avfilter/vf_showinfo: limit the max number of timecode
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-28 19:21:11 +01:00
Yaroslav Pogrebnyak
4976b102d8 avfilter: add vf_overlay_cuda
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2020-03-28 18:39:40 +01:00
Paul B Mahol
ddbd77da90 avfilter/af_acrossover: revert 270068b5a
Actually it did not work well.
2020-03-27 10:13:20 +01:00
Limin Wang
aa822007a4 avfilter/vf_showinfo: check if the s12m data size is valid
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-03-27 01:42:16 +01:00
Paul B Mahol
840e92da17 avfilter/vf_v360: improve sg input format
Specifically unbreak yaw functionality.
2020-03-26 13:53:22 +01:00
Paul B Mahol
7931e766ad avfilter/vf_v360: improve sg output format 2020-03-26 13:37:13 +01:00
Paul B Mahol
0b43897530 avfilter/vf_v360: fix hfov/vfov calculation from dfov for sg projection 2020-03-25 13:38:41 +01:00
Andreas Rheinhardt
65e8f6dd9b avfilter/vf_paletteuse: Forward error codes
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-03-24 20:14:08 +01:00
Gyan Doshi
7239254b1d avfilter/hue: fix range in comment
Found-by: Michael Koch
Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
2020-03-24 15:04:52 +05:30
Linjie Fu
acc6f632b4 lavfi/vf_dnn_processing: Fix compile warning of mixed declarations and code
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Reviewed-by: Guo, Yejun <yejun.guo@intel.com>
2020-03-19 14:27:23 +08:00
Lynne
1a5e9ae4d8 scale_vulkan: add support for RGB->YUV conversions
Only top-left chroma position supported for now.
2020-03-17 22:52:00 +00:00
Paul B Mahol
d64cbd4fda remove CHAR_MIN/CHAR_MAX usage
It is not needed at all.
2020-03-17 22:46:36 +01:00
Paul B Mahol
6fbc7f092e avfilter/af_anequalizer: fix off by one in reallocation 2020-03-14 19:39:04 +01:00
Paul B Mahol
8f222573e9 avfilter/f_sendcmd: add more useful variables 2020-03-13 17:19:33 +01:00
Guo, Yejun
e35f966853 avfilter/vf_dnn_processing.c: add frame size change support for planar yuv format
The Y channel is handled by dnn, and also resized by dnn. The UV channels
are resized with swscale.

The command to use espcn.pb (see vf_sr) looks like:
./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y -y tmp.espcn.jpg

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Reviewed-by: Pedro Arthur <bygrandao@gmail.com>
2020-03-12 18:22:51 +08:00
Guo, Yejun
bd50453894 avfilter/vf_dnn_processing.c: add planar yuv format support
Only the Y channel is handled by dnn, the UV channels are copied
without changes.

The command to use srcnn.pb (see vf_sr) looks like:
./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Reviewed-by: Pedro Arthur <bygrandao@gmail.com>
2020-03-12 18:22:39 +08:00
Guo, Yejun
d86a8c056b avfilter/vf_dnn_processing.c: use swscale for uint8<->float32 convert
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Reviewed-by: Pedro Arthur <bygrandao@gmail.com>
2020-03-12 18:22:18 +08:00
James Almer
36aaee2a65 avfilter/Makefile: remove dnn files when calling make clean
Also remove the ancient reference to libmpcodecs while at it.

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2020-03-11 14:11:37 +08:00
Paul B Mahol
70209000fd avfilter/f_sendcmd: implement expr flag
Make possible to parse expressions and store results as arguments
for target filters.
2020-03-03 20:38:56 +01:00
Paul B Mahol
5c7b6aadb5 avfilter/vf_v360: simplify some unnecessary indirections 2020-03-03 12:41:30 +01:00
Paul B Mahol
580d68f90e avfilter/vf_v360: add half equirectangular input format 2020-03-03 12:21:16 +01:00
Paul B Mahol
ca04231983 avfilter/vf_v360: add half equirectangular output format 2020-03-03 12:03:42 +01:00
Guo, Yejun
f9cb7cf424 avfilter/vf_sr.c: refine code to use AVPixFmtDescriptor.log2_chroma_h/w
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Reviewed-by: Pedro Arthur <bygrandao@gmail.com>
2020-03-03 15:28:59 +08:00
Paul B Mahol
6e1913a02e avfilter/vf_v360: add truncated square pyramid input format 2020-03-02 19:05:13 +01:00
Paul B Mahol
3dd81be866 avfilter/vf_v360: add truncated square pyramid output format 2020-03-02 17:43:25 +01:00
Paul B Mahol
1281399135 avfilter/vf_v360: fix cylindrical input format 2020-03-01 11:24:31 +01:00
Paul B Mahol
db8146f4dd avfilter/vf_v360: cleanup some code 2020-03-01 10:33:36 +01:00
Paul B Mahol
8f3df1dd4d avfilter/vf_v360: improve interpolation for equirect input at poles 2020-02-29 22:35:02 +01:00
Andreas Rheinhardt
be82dc175b avfilter/vf_cas: Remove superfluous ;
The second ; in a double ;; is actually a null statement. It triggers
the typical declaration-after-statement compiler-warnings if it occurs
in the middle of several declarations (like here).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-02-29 22:31:01 +01:00
Paul B Mahol
f707c84b8b avfilter/vf_v360: add partial size setup for flat
Other part of size is calculated from both available horizontal
and vertical FOV and given one size component.
2020-02-29 20:22:37 +01:00
Paul B Mahol
3733a6bc20 avfilter/vf_v360: speed up fisheye input calculation 2020-02-29 16:39:35 +01:00
Paul B Mahol
2dfd9445ff avfilter/vf_v360: improve tetrahedron input format at frame borders 2020-02-29 14:24:35 +01:00
Paul B Mahol
50a13b987b avfilter/vf_v360: simplify tetrahedron input calculation 2020-02-29 14:24:35 +01:00
Paul B Mahol
fc7d4d08fb avfilter/vf_v360: improve precision of some output formats 2020-02-29 14:24:35 +01:00
Paul B Mahol
31ecfa95fb avfilter/vf_v360: simplify code which handles interpolation points 2020-02-28 16:53:19 +01:00
Paul B Mahol
9b22254331 avfilter/vf_v360: add initial barrel split format input support 2020-02-27 23:37:23 +01:00
Paul B Mahol
b0a9960a77 avfilter/vf_v360: add barrel split format output support 2020-02-26 14:52:25 +01:00
Jacob Ruiz
ba2581adb2 avfilter/vf_zscale: fix crash on unaligned input 2020-02-25 19:52:26 +01:00
Paul B Mahol
7e08a92370 avfilter/vf_convolve: reset fft/ifft pointers after free 2020-02-25 17:35:09 +01:00
Paul B Mahol
b484eb2556 avfilter/vf_v360: add basic commands support 2020-02-25 11:33:06 +01:00
Paul B Mahol
08a21c1fd8 avfilter/vf_v360: handle gracefully invalid values for rorder option 2020-02-25 11:12:02 +01:00
Paul B Mahol
72b6c8c99f avfilter: add Contrast Adaptive Sharpen video filter 2020-02-24 11:57:25 +01:00
Paul B Mahol
90913abc2e avfilter/vf_v360: improve dfisheye_to_xyz() output 2020-02-23 22:00:32 +01:00
Paul B Mahol
e6ea0e7429 avfilter/vf_v360: improve fisheye_to_xyz() output 2020-02-23 21:55:35 +01:00
Paul B Mahol
ebc8806b9f avfilter/vf_v360: improve equirect_to_xyz() quality 2020-02-23 18:15:06 +01:00
Linjie Fu
edf2c7be5c lavfi/vf_scale_qsv: fix the class_name in help for scale_qsv
Class name is used in show_help_children(avfilter_get_class(),...)
to prompt the available filters.

$ ffmpeg -h full

Before:
qsvscale AVOptions:

After:
scale_qsv AVOptions:

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhongli_dev@126.com>
2020-02-18 10:27:02 +08:00
Michael Niedermayer
0c0ca0f244 avfilter/vf_aspect: Fix integer overflow in compute_dar()
Fixes: signed integer overflow: 1562273630 * 17 cannot be represented in type 'int'
Fixes: Ticket8323

Found-by: Suhwan
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-02-16 15:13:10 +01:00
Paul B Mahol
314a783bb8 avfilter/vf_phase: add >8 bit support 2020-02-15 12:18:51 +01:00
Paul B Mahol
55755b4ab2 avfilter/opencl: use av_fopen_utf8() 2020-02-14 21:49:47 +01:00
Paul B Mahol
5452d0372c avfilter/vf_fieldhint: use av_fopen_utf8() 2020-02-14 21:47:55 +01:00
Paul B Mahol
a2c0746344 avfilter/vf_lut3d: use av_fopen_utf8() 2020-02-14 21:44:38 +01:00
Paul B Mahol
5fe6c6b8f4 avfilter/vf_remap: add fill color option 2020-02-14 13:19:05 +01:00
Paul B Mahol
1c6a91990d avfilter: add pad opencl filter 2020-02-14 09:59:27 +01:00
Paul B Mahol
47773f7979 avfilter/vf_xmedian: implement percentile option 2020-02-12 14:59:32 +01:00
Paul B Mahol
28743f1803 avfilter/vf_median: implement percentile option 2020-02-12 11:27:28 +01:00
Paul B Mahol
cf92f42672 avfilter/vf_colorlevels: add support for commands 2020-02-11 14:19:56 +01:00
Paul B Mahol
52cd7a6337 avfilter/vf_colorkey: add support for commands 2020-02-11 14:00:21 +01:00
Andreas Rheinhardt
212077eda4 avfilter/vf_dedot: Fix leak of AVFrame if making it writable fails
Even in this scenario, the frame still contains references to data that
won't be freed if the frame isn't unreferenced. And the AVFrame itself
will leak, too.

Fixes Coverity issue #1441422.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-02-11 00:03:44 +01:00
Paul B Mahol
e63a66416f avfilter/vf_thumbnail: fix possible crash on error 2020-02-10 15:46:42 +01:00
Paul B Mahol
32bc0e0444 avfilter/vf_thumbnail: add timeline support 2020-02-10 15:46:42 +01:00
Paul B Mahol
1e6cef6861 avfilter/vf_fade: fix color fading for planar rgb 2020-02-09 22:50:07 +01:00
Paul B Mahol
06db1bef4c avfilter/vf_fade: add >8 bit support for black and alpha fade 2020-02-09 22:28:59 +01:00
Mark Thompson
593106ff47 lavfi/vf_*_vaapi: Fix error case
Fixes CID 1452400, 1452416, 1452550, 1452590, 1452760.
2020-02-09 20:36:45 +00:00
Mark Thompson
f130b22119 lavfi/vf_deshake_opencl: Avoid propagating uninitialised data
Fixes CID 1452753.
2020-02-09 20:36:45 +00:00
Paul B Mahol
53a485cd37 avfilter/af_afftfilt: fix memory leaks on error 2020-02-09 15:49:09 +01:00
Paul B Mahol
2174a315b4 avfilter/af_afffilt: fix crash on error 2020-02-09 15:42:48 +01:00
Paul B Mahol
283e755734 avfilter/vf_xfade: add diagonal smooth transitions 2020-02-09 12:59:56 +01:00
Paul B Mahol
3f24e744ad avfilter/af_asoftclip: add support for commands 2020-02-09 10:59:20 +01:00
Paul B Mahol
d842998183 avfilter/af_asoftclip: add slice threading support 2020-02-09 10:47:43 +01:00
Paul B Mahol
3750e36aa8 avfilter/vf_alphamerge: add AVClass to private context 2020-02-08 21:54:45 +01:00
Andreas Rheinhardt
adea33f465 avfilter/vf_paletteuse: Fix potential double-free of AVFrame
apply_palette() would free an AVFrame given to it only via an AVFrame *
(and not via AVFrame **) in three of its four exists (namely in the
normal path and in two error paths). So upon error the caller has no way
to know whether the frame has already been freed or not;
load_apply_palette(), the only caller, opted to free the frame in this
scenario.

This commit changes this by making apply_palette not freeing the frame
at all, which is left to load_apply_palette().

Fixes Coverity issue #1452434.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-02-08 18:20:43 +01:00
Paul B Mahol
cbd5a4536c avfilter/vf_alphamerge: add timeline support 2020-02-08 14:28:01 +01:00
Paul B Mahol
a8d82cc2b8 avfilter/vf_fade: improve type option description 2020-02-08 12:40:23 +01:00
Paul B Mahol
8cab0ce5dc avfilter/vf_fade: add missing .flags for type option 2020-02-08 12:36:59 +01:00
Paul B Mahol
68416e4ba7 avfilter/vf_maskedclamp: make C version consistent with ASM one
In case of undefined behaviour.
2020-02-08 10:46:37 +01:00
Paul B Mahol
3720153ffc aviflter/vf_xfade: add pixelize transition 2020-02-07 22:35:16 +01:00
Paul B Mahol
e3e5598290 avfilter/vf_xfade: add dissolve transition 2020-02-07 22:00:14 +01:00
Paul B Mahol
bfdd6304fb avfilter/af_crystalizer: add slice threading support 2020-02-07 19:26:39 +01:00
Paul B Mahol
ae5a435300 avfilter: add afirsrc filter 2020-02-07 17:07:30 +01:00
Paul B Mahol
7e8721e98e avfilter/af_acrossover: free all output frames on error 2020-02-07 12:13:06 +01:00
Paul B Mahol
cd671ea083 avfilter/af_acrossover: add slice threading support 2020-02-07 12:13:06 +01:00
Paul B Mahol
270068b5af avfilter/af_acrossover: improve filter output
Makes sum always flat. Also faster.
2020-02-06 15:45:19 +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
Paul B Mahol
2d58fa6d9e avfilter/vf_xfade: add horzopen/close transition 2020-02-05 16:53:06 +01:00
Paul B Mahol
10f4441acb avfilter/vf_xfade: add vertopen/close transition 2020-02-05 16:44:50 +01:00
Martin Storsjö
0815a22dcc vf_ssim: Fix loading doubles to float registers on i386
This fixes the tests filter-refcmp-ssim-yuv and filter-refcmp-ssim-rgb
on i386 after breaking in fcc0424c93.

Signed-off-by: Martin Storsjö <martin@martin.st>
2020-02-05 14:38:26 +02:00
Lynne
a71a5d9214 lavfi: bump minor version for the Vulkan filters 2020-02-04 23:52:29 +00: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
Philip Langdale
88d2ccbe93 lavfi/vf_hwupload: Add support for HW -> HW transfers
As we find ourselves wanting a way to transfer frames between
HW devices (or more realistically, between APIs on the same device),
it's desirable to have a way to describe the relationship. While
we could imagine introducing a `hwtransfer` filter, there is
almost no difference from `hwupload`. The main new feature we need
is a way to specify the target device. Having a single device
for the filter chain is obviously insufficient if we're dealing
with two devices.

So let's add a way to specify the upload target device, and if none
is specified, continue with the existing behaviour.

We must also correctly preserve the sw_format on such a transfer.
2020-02-04 23:19:48 +00:00
Paul B Mahol
fcc0424c93 avfilter/vf_ssim: improve precision
Use doubles for accumulating floats.
2020-02-04 18:28:04 +01:00
Paul B Mahol
efee86fafa avfilter/vf_xfade: add circleopen & circleclose transition 2020-02-04 10:39:02 +01:00
Paul B Mahol
c4e29d0ba3 avfilter/vf_xfade_opencl: move passthrough code before eof check 2020-02-03 09:40:46 +01:00
Paul B Mahol
6d5e9ed67c avfilter/vf_xfade: move passthrough code before eof check 2020-02-03 09:36:52 +01:00
Paul B Mahol
cd823dadf9 avfilter: add xfade opencl filter 2020-02-02 14:08:56 +01:00
Paul B Mahol
e5e7289ea8 avfilter/vf_xfade: remove unused header 2020-02-01 22:06:11 +01:00
Paul B Mahol
5c9a4ff8c1 avfilter/vf_psnr: fix logic failure when comparing time bases 2020-02-01 21:10:25 +01:00
Paul B Mahol
89eee09739 avfilter/vf_ssim: fix logic failure when comparing time bases 2020-02-01 21:09:32 +01:00
Marton Balint
c044ac2071 avfilter/vf_geq: use per-thread AVExpr for expression evaluation
There was no consensus about separating AVExprState from AVExpr so here is a
minimal patch using the existing AVExpr to fix ticket #7528.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-31 22:47:49 +01:00
Paul B Mahol
53b4128ea0 avfilter/vf_xfade: add smooth transitions 2020-01-31 13:14:13 +01:00
Marton Balint
62d92a878d avfilter/vf_drawtext: do not overread text if the last UTF8 sequence is invalid
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-31 00:15:13 +01:00
Marton Balint
5ac8389cfa avfilter/vf_drawtext: use replacement chars for invalid UTF8 sequences
continue is explicitly disallowed for GET_UTF8, so let's fix that as well.
Fixes crash with invalid UTF8 sequences.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-31 00:15:13 +01:00
Paul B Mahol
0a275fec62 avfilter/vf_xfade: add radial transition 2020-01-30 17:29:31 +01:00
Paul B Mahol
863accbefa avfilter: add xfade filter 2020-01-30 16:35:33 +01:00
Marton Balint
47d5d0cc74 avfilter/vf_geq: fix multiple assignments of ptr in slice_geq_filter
Fixes Coverity CID 1427183.

Signed-off-by: Marton Balint <cus@passwd.hu>
2020-01-29 19:53:43 +01:00
Andreas Rheinhardt
ab39f0d841 avfilter/asrc_sinc: Don't allocate arrays separately
Besides the obvious advantages this also fixes a potential memleak:
If only one of the arrays had been successfully allocated, the other
would leak. This also fixes Coverity issues #1440386 and #1440387.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-28 17:18:27 +01:00
Paul B Mahol
32ea6ffb16 avfilter/vf_colorconstancy: fix memory leak on error
Also remove unneeded log message while here.
2020-01-27 16:58:50 +01:00
Michael Niedermayer
dfc4714886 avfilter/vf_find_rect: Remove assert
A score of 0 is possible
Fixes: Ticket8500

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-27 12:01:42 +01:00
Michael Niedermayer
6ff2474e02 avfilter/vf_find_rect: Increase worst case score
score could be 1.0 which lead to uninitialized values

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-27 12:01:42 +01:00
Gyan Doshi
6e6b34917e avfilter/scale: don't fail for circular expressions
Due to conditional expressions, it is possible for them to be resolved
successfully. A warning is still printed.
2020-01-26 21:06:53 +05:30
Paul B Mahol
ecd95858d4 avfilter/vf_tonemap_opencl: fix long filter description 2020-01-26 14:51:52 +01:00
Paul B Mahol
4b4bcb126c avfilter/vf_v360: do not remap alpha plane if that will be overwritten later 2020-01-25 20:00:53 +01:00
Paul B Mahol
9990cb16d3 avfilter/vf_v360: mark another hemisphere not visible for flat input format 2020-01-25 14:34:05 +01:00
Paul B Mahol
8d861cd850 avfilter/vf_v360: add mask option, unset pixels are marked as transparent 2020-01-25 14:34:05 +01:00
Paul B Mahol
31350de997 avfilter/vf_deshake_opencl: silence warning about usage of uninitialized value 2020-01-25 11:42:32 +01:00
Paul B Mahol
a4f2fc9341 avfilter/vf_v360: fix fov calculation from dfov for fisheye input/output 2020-01-24 23:22:38 +01:00
Paul B Mahol
d033f403d6 avfilter/vf_v360: support input flips for tetrahedron format 2020-01-23 11:20:18 +01:00
Paul B Mahol
05d3d09cf5 avfilter/vf_v360: fix small artifacts with tetrahedron inputs 2020-01-23 11:20:18 +01:00
Paul B Mahol
ec4f764249 avfilter/vf_v360: add tetrahedron format 2020-01-22 23:49:32 +01:00
Paul B Mahol
a3e67c2d2f avfilter/vf_stack: add fill option for xstack 2020-01-22 19:13:51 +01:00
Paul B Mahol
a00fa73f47 avfilter/vf_v360: improve fisheye input format 2020-01-22 12:59:35 +01:00
Paul B Mahol
103a29b89d avfilter/vf_v360: add support for fisheye input format 2020-01-21 20:12:54 +01:00
Paul B Mahol
fc2523c792 avfilter/vf_v360: add support for input fov to input sg format 2020-01-21 12:02:27 +01:00
Paul B Mahol
19f75e7787 avfilter/vf_v360: add support for cylindrical input format 2020-01-21 00:21:56 +01:00
Paul B Mahol
e57b9aa8b1 avfilter/vf_v360: add support for flat input format 2020-01-20 21:10:37 +01:00
Paul B Mahol
091695f8e8 avfilter/vf_v360: rewrite fov_from_dfov() 2020-01-20 21:10:37 +01:00
Paul B Mahol
15133c6ab2 avfilter/vf_v360: replace rest of roundf() with lrintf() 2020-01-19 19:54:29 +01:00
Paul B Mahol
3bf28d40e5 avfilter/vf_v360: change remaps to int16_t type 2020-01-19 19:54:29 +01:00
Paul B Mahol
ff5e241bca avfilter/vf_v360: move map variable up 2020-01-19 19:54:29 +01:00
Paul B Mahol
fdc61267b4 avfilter/vf_v360: make more stuff const 2020-01-19 19:54:29 +01:00
Gyan Doshi
4de2106fbf avfilter/pad: improve error check for w and h
Target dimensions have to cover entire input.
2020-01-19 11:17:53 +05:30
Paul B Mahol
feeef2f80c avfilter/vf_normalize: add support for >8 depth 2020-01-18 17:28:23 +01:00
Paul B Mahol
ac51173024 avfilter/vf_normalize: add support for planar rgb 2020-01-18 17:28:23 +01:00
Paul B Mahol
4545699625 avfilter/vf_normalize: factor code dealing with AVFrame pixels out 2020-01-18 17:28:23 +01:00
Paul B Mahol
1908818e7b avfilter/vf_normalize: move luts into private context 2020-01-18 17:28:23 +01:00
Paul B Mahol
273886fa60 avfilter/asrc_anoisesrc: add velvet noise 2020-01-18 17:27:10 +01:00
Paul B Mahol
fdddc0d678 avfilter/vf_v360: add perspective output projection 2020-01-18 17:25:48 +01:00
Paul B Mahol
62a0d22621 avfilter/vf_v360: add gaussian interpolation 2020-01-18 13:43:33 +01:00