1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

8209 Commits

Author SHA1 Message Date
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
Paul B Mahol
3972ec28e7 avfilter/vf_v360: fix some small nits 2020-01-18 11:34:10 +01:00
Paul B Mahol
aa42a1e6d7 avfilter/vf_v360: add spline16 interpolation 2020-01-18 10:27:11 +01:00
Gyan Doshi
c95dfe5cce avfilter/f_metadata: correct check for existing metadata
When adding metadata, existing dictionary need not be present.
2020-01-17 17:35:31 +05:30
Paul B Mahol
7fc28465df avfilter/vf_v360: add cylindrical output projection 2020-01-17 10:46:31 +01:00
Paul B Mahol
330b157c9e avfilter/vf_v360: add pannini output projection 2020-01-16 20:06:28 +01:00
Paul B Mahol
6e082f9f04 avfilter/vf_v360: add fisheye output projection 2020-01-16 18:22:28 +01:00
Gyan Doshi
0777b197c5 avfilter/swaprect: correct assignment of VAR_POS
Revert regression introduced in 6af050d7d0
2020-01-15 14:27:51 +05:30
Gyan Doshi
0dc0837960 avfilter/scale: add animation support
Width and height expressions in scale and scale2ref filters can now
reference frame index, timestamp and packet position.
2020-01-15 12:03:47 +05:30
Gyan Doshi
ce2cfa67aa avfilter/scale: add function to check expressions
Allows finer identification and logging of invalid expressions and use
of a single list for symbols and their index for both scale and
scale2ref.
2020-01-15 11:26:49 +05:30
Gyan Doshi
6310fbd543 avfilter/scale: separate exprs parse and eval
Retains parsed expressions which allows for better
error-checking and adding animation support.
2020-01-15 11:26:46 +05:30
Gyan Doshi
cc9a7cae76 avfilter/scale2ref: update links and re-eval expr upon ref frame change
Needed when filtergraph reinit is disabled for the ref input.
2020-01-15 11:26:38 +05:30
Gyan Doshi
c21462d42e avfilter/scale: store frame change eval
Better readability and allows reuse
2020-01-15 11:26:32 +05:30
Limin Wang
72a08af8ba avfilter/vf_eq: cosmetics
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-14 19:19:30 +01:00
Paul B Mahol
7e4b0d377f avfilter/avf_showspectrum: check if frame clone is set 2020-01-14 16:52:08 +01:00
Paul B Mahol
cc752233fb avfilter/f_ebur128: check if frame clone is set 2020-01-14 16:52:08 +01:00
Paul B Mahol
c43f8baa41 avfilter/avf_aphasemeter: check if clone frame is set 2020-01-14 16:52:07 +01:00
Paul B Mahol
d580c7a797 avfilter/avf_ahistogram: check if frame clone is set 2020-01-14 16:52:07 +01:00
Paul B Mahol
928020b9d0 avfilter/asr_anullsrc: remove pointless frame cloning 2020-01-14 16:52:07 +01:00
Paul B Mahol
f6f6857c2a avfilter/af_anequalizer: check if frame clone is set 2020-01-14 16:52:07 +01:00
Paul B Mahol
80c4c336f9 avfilter/af_aiir: check if frame clone is set 2020-01-14 16:52:07 +01:00
Paul B Mahol
2a9a52b913 avfilter/af_afir: check if frame clone is set 2020-01-14 16:52:07 +01:00
Paul B Mahol
f9897eda43 avfilter/avf_avectorscope: check if clone frame is set 2020-01-14 16:52:07 +01:00
Guo, Yejun
4e1ae43b17 lavfi/dnn_processing: refine code to use function av_image_copy_plane for data copy
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2020-01-14 11:29:43 -03:00
Paul B Mahol
d9a52b0bbf avfilter/f_drawgraph: add rate/r option 2020-01-14 09:54:53 +01:00
Jun Zhao
722547996c lavfi/volume: enable runtime change flag
enable runtime change flag.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
b5cea39190 lavfi/zscale: enable runtime change flag
enable runtime change flag

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
a2619a473e lavfi/firequalizer: enable runtime change flag
enable runtime change flag

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
b7bf55550c lavfi/eq: enable runtime change flag
enable runtime change flag

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
419e47788a lavfi/rotate: enable runtime change flag
enable runtime change flag

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
f2a095ac2a lavfi/streamselect: enable runtime change flag
enable runtime change flag.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
d9e78a723a lavfi/scale: enable runtime change flag
enable runtime change flag.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
8cebc8e479 lavfi/hue: enable runtime change flag
enable runtime change flag.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
31b24588c5 lavfi/crop: enable runtime change flag
enable runtime change flag.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
94004a8b65 lavfi/spp: enable runtime change flag
enable runtime change flag.

Reviewe-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Jun Zhao
692f0519bb lavfi/spp: add "quality" option in runtime change path
it's stranage to use option "level" in runtime change path but used
"quality" in option, add "quality" in runtime change path, it's more
intuitive and keep the "level" for compatibility.

Reviewe-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-13 09:25:18 +08:00
Paul B Mahol
1a7f4a122e avfilter: add freezeframes video filter 2020-01-11 19:05:17 +01:00
Paul B Mahol
b650046860 avfilter/af_dynaudnorm: use better limits for maximal amplification
Fixes regression in smoothness of amplification.
2020-01-11 14:08:52 +01:00
Limin Wang
dd39dbf983 avfilter/af_amix: change the max range of the number of inputs
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-01-11 11:35:51 +01:00
Limin Wang
a144cd6a51 avfilter/vf_mix: change the max range of the number of inputs
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-01-11 11:35:39 +01:00
Limin Wang
9519c8dbb7 avfilter/vf_showinfo: fix the integer handling issues
Fixes CID 1457606 and 1457607

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-10 17:52:14 +01:00
Gyan Doshi
22a06a539d avfilter/f_metadata: allow direct flushing when printing to file
Useful for monitoring sparse data in realtime
2020-01-10 21:44:26 +05:30
Paul B Mahol
52bf43eb49 avfilter/af_afir: add support for switching impulse response streams at runtime
Currently, switching is not free of artifacts, to be resolved later.
2020-01-10 13:14:54 +01:00
Paul B Mahol
03a7240a73 avfilter/af_afir: add support for even smaller partition sizes 2020-01-10 13:05:21 +01:00
Paul B Mahol
e364fe4cca avfilter/af_afir: split input frames from impulse response frames 2020-01-10 12:43:18 +01:00
Gyan Doshi
5bd001043d avfilter/aformat: add shorthand names for options 2020-01-08 11:15:13 +05:30
Guo, Yejun
37d24a6c8f vf_dnn_processing: add support for more formats gray8 and grayf32
The following is a python script to halve the value of the gray
image. 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
from skimage import color
from skimage import io
in_img = io.imread('input.jpg')
in_img = color.rgb2gray(in_img)
io.imsave('ori_gray.jpg', np.squeeze(in_img))
in_data = np.expand_dims(in_img, axis=0)
in_data = np.expand_dims(in_data, axis=3)
filter_data = np.array([0.5]).reshape(1,1,1,1).astype(np.float32)
filter = tf.Variable(filter_data)
x = tf.placeholder(tf.float32, shape=[1, None, None, 1], 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())
graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
tf.train.write_graph(graph_def, '.', 'halve_gray_float.pb', as_text=False)
print("halve_gray_float.pb generated, please use \
path_to_ffmpeg/tools/python/convert.py to generate halve_gray_float.model\n")
output = sess.run(y, feed_dict={x: in_data})
output = output * 255.0
output = output.astype(np.uint8)
io.imsave("out.jpg", np.squeeze(output))

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

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2020-01-07 10:51:38 -03:00
Guo, Yejun
04e6f8a143 vf_dnn_processing: remove parameter 'fmt'
do not request AVFrame's format in vf_ddn_processing with 'fmt',
but to add another filter for the format.

command examples:
./ffmpeg -i input.jpg -vf format=bgr24,dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
./ffmpeg -i input.jpg -vf format=rgb24,dnn_processing=model=halve_first_channel.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2020-01-07 10:35:59 -03:00
Limin Wang
d31a1266a7 avfilter/vf_showinfo: Fix erroneous results for mean and stdev with pixel bits >8
Have tested with be and le pixel format on be and le system for >8bit.
System:
lmwang@ubuntu:~/ffmpeg.git.mips$ grep HAVE_BIGENDIAN config.h
ffmpeg.git git:(showinfo) ✗ grep HAVE_BIGENDIAN config.h

Test result:
1, yuv420p
./ffmpeg -f lavfi  -i color=black:duration=1:r=1:size=1280x720,format=yuv420p,showinfo
Master:
mean:[16 128 128] stdev:[0.0 0.0 0.0]
After applied the patch:
 mean:[16 128 128] stdev:[0.0 0.0 0.0]

2, yuv420p10le
./ffmpeg -f lavfi  -i color=black:duration=1:r=1:size=1280x720,format=yuv420p10le,showinfo
Master:
mean:[32 1 1] stdev:[32.0 1.0 1.0]
After applied the patch:
mean:[64 512 512] stdev:[0.0 0.0 0.0]

3, yuv420p10be
./ffmpeg -f lavfi  -i color=black:duration=1:r=1:size=1280x720,format=yuv420p10be,showinfo
Master:
mean:[32 1 1] stdev:[32.0 1.0 1.0]
After applied the patch:
mean:[64 512 512] stdev:[0.0 0.0 0.0]

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-01-07 02:49:44 +01:00
Mark Thompson
f907eea863 vf_tonemap_vaapi: Fix memory leak in error case
Fixes CID 1457236.
2020-01-07 00:04:50 +00:00
Carl Eugen Hoyos
96fab29e96 Silence "string-plus-int" warning shown by clang.
libswscale/utils.c:89:42: warning: adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]
2020-01-06 22:38:56 +01:00
Paul B Mahol
e21ba176c9 avfilter/af_sidechaincompress: add support for commands 2020-01-06 19:40:07 +01:00
Paul B Mahol
27ec72db06 avfilter/af_dynaudnorm: add support for commands 2020-01-06 14:23:53 +01:00
Paul B Mahol
e26d66daaa avfilter/af_dynaudnorm: use already available pointer
Instead of dereferencing same thing again.
2020-01-05 10:22:57 +01:00
Paul B Mahol
1187dbb7e9 avfilter/af_dynaudnorm: move channels variable setup first 2020-01-05 10:20:27 +01:00
Jun Zhao
304eaa63a9 lavfi/buffersrc: Remove redundant free after ff_filter_frame() failure
ff_filter_frame() always frees the frame in case of error, so we don't
need to free the frame after ff_filter_frame() fails.

Fix CID 1457230.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-04 19:37:39 +01:00
Paul B Mahol
389865352d avfilter/af_dynaudnorm: fix another clipping with custom peak value
This always happened at start with alternative boundary mode disabled.
The clipping only occurred if starting samples where high enough.
2020-01-04 19:34:50 +01:00
Paul B Mahol
c8253cb332 avfilter/af_dynaudnorm: implement threshold option 2020-01-04 18:17:32 +01:00
Paul B Mahol
6a1305e8b7 avfilter/af_dynaudnorm: do not clip audio
Clipping can happen when smoothed gain is higher than maximum
allowed gain factor for current frame and peak value option is
set to enough low value.
2020-01-04 10:27:46 +01:00
Jun Zhao
c8e72a6494 lavfi/coreimage: fix memory leak after av_dict_parse_string fail
In case of failure, all the successfully set entries are stored in
*pm. We need to manually free the created dictionary to avoid
memory leak.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-01-04 09:05:09 +08:00
Paul B Mahol
81172b5e3a avfilter/af_dynaudnorm: fix previous commit
We still need to analyze frame for amplification at EOF.
2020-01-02 17:24:01 +01:00
Paul B Mahol
ed02563ce0 avfilter/af_dynaudnorm: do not enqueue flush buffers 2020-01-02 16:28:38 +01:00
Paul B Mahol
d4d6280ab2 avfilter/af_dynaudnorm: do not hang forever if only EOF is received 2020-01-01 13:44:22 +01:00
Paul B Mahol
7bb09e57e0 avfilter/af_dynaudnorm: do not error out if even filter size was given
Instead issue a warning and make filter size odd number.
2020-01-01 13:44:22 +01:00
Paul B Mahol
f651b18c19 avfilter/vf_histogram: add envelope to thistogram filter 2019-12-30 17:21:35 +01:00
Zhao Zhili
b2491566a6 avfilter/buffersrc: deprecate sws_param option 2019-12-30 10:41:07 +01:00
Paul B Mahol
e20c6d95b2 avfilter/af_crystalizer: add support for commands 2019-12-29 15:33:55 +01:00
Paul B Mahol
22d3552f44 avfilter/af_crystalizer: add timeline support 2019-12-29 15:33:55 +01:00
Paul B Mahol
26eba8ca61 avfilter/vf_waveform: add support for 12bit yuva formats 2019-12-29 15:33:55 +01:00
Paul B Mahol
11f6657e92 avfilter/vf_vectorscope: add support for 12bit yuva formats 2019-12-29 15:33:55 +01:00
Paul B Mahol
612b5791b8 avfilter/vf_histogram: add support for 12bit yuva formats 2019-12-29 15:33:55 +01:00
Paul B Mahol
d3d6f5a76e avfilter/vf_histogram: reindent after previous commit 2019-12-29 15:33:55 +01:00
Paul B Mahol
cc43c2f29a avfilter: add thistogram video filter 2019-12-29 15:33:55 +01:00
James Almer
eb17a7906b avfilter/vf_vectorscope: use av_clip_uint8()
Fixes fate-source

Signed-off-by: James Almer <jamrial@gmail.com>
2019-12-28 22:38:58 -03:00
Paul B Mahol
6399eed48a avfilter/vf_waveform: implement tint options 2019-12-28 21:51:40 +01:00
Paul B Mahol
b3216f13ce avfilter/vf_vectorscope: improve tint output for gbrp formats 2019-12-28 21:51:40 +01:00
Paul B Mahol
2736dc0564 avfilter/vf_vectorscope: rename gray mode to tint mode 2019-12-28 14:01:15 +01:00
Paul B Mahol
29b765d657 avfilter/vf_vectorscope: add invert graticule 2019-12-28 12:32:43 +01:00
Paul B Mahol
1669c970b1 avfilter/vf_vectorscope: use enum for graticule items 2019-12-28 12:32:43 +01:00
Michael Niedermayer
5c0d1f7896 avfilter/vf_geq: Add support for reading sample sums and means of rectangles
This allows integrating box blur style filters in geq.

Without this computing the mean of an area in geq would have been excessivly slow

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-28 11:20:48 +01:00
Michael Niedermayer
47fd73ace2 avfilter/vf_geq: Add NB_PLANES
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-28 11:20:48 +01:00
Michael Niedermayer
d5e7f01090 avfilter/vf_geq: Relicense to LGPL
All authors who have code in this under GPL agreed.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-28 11:20:48 +01:00
Paul B Mahol
6c883e214a avfilter/vf_vibrance: add support for commands 2019-12-27 21:31:04 +01:00
Paul B Mahol
50cfe9662d avfilter/vf_il: add support for commands 2019-12-27 21:17:00 +01:00
Paul B Mahol
5fb37598ad avfilter/af_stereowiden: add support for commands 2019-12-27 21:03:29 +01:00
Paul B Mahol
954637805d avfilter/af_extrastereo: add support for commands 2019-12-27 20:57:06 +01:00
Paul B Mahol
fad62eebee avfilter/vf_neighbor: add support for commands 2019-12-27 20:21:20 +01:00
Paul B Mahol
b5f0cea16c avfilter/vf_histogram: use the name 's' for the pointer to the private context
This is consistent across filters.
2019-12-26 20:45:20 +01:00
Andreas Rheinhardt
398a5f5d8f avfilter/buffersrc: Remove unused variables
Unused since f09ae730.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-26 16:06:25 +01:00