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

7946 Commits

Author SHA1 Message Date
Paul B Mahol
315a4496ea avfilter/f_loop: switch aloop to activate 2019-11-17 16:20:58 +01:00
Paul B Mahol
2e7ccd493a avfilter/f_loop: fix pts handling when timebase and 1/samplerate differ 2019-11-17 16:19:07 +01:00
Paul B Mahol
f7ad9a6c16 avfilter/af_sidechaincompress: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:30:10 +01:00
Paul B Mahol
b66acf4a34 avfilter/af_anlmdn: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:25:54 +01:00
Paul B Mahol
0a17a30150 avfilter/af_agate: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:23:48 +01:00
Paul B Mahol
115537f487 avfilter/af_afftdn: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:21:10 +01:00
Paul B Mahol
c588a0f528 avfilter/af_afftfilt: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:19:39 +01:00
Paul B Mahol
7db61bf0e3 avfilter/af_adeclick: fix pts handling when timebase and 1/samplerate differ 2019-11-17 12:17:51 +01:00
Paul B Mahol
90622f9e8f avfilter/af_aecho: switch to activate 2019-11-17 11:57:52 +01:00
Paul B Mahol
9498ce0c23 avfilter/vf_framepack: really fix ef466a8b29 2019-11-17 00:23:03 +01:00
Paul B Mahol
9db24ee26d avfilter/vf_framepack: switch to activate 2019-11-17 00:23:03 +01:00
Paul B Mahol
ef466a8b29 avfilter/vf_framepack: fix timestamps for frameseq format 2019-11-16 23:33:02 +01:00
Paul B Mahol
d52342a563 avfilter/vf_framepack: add missing filtering flag 2019-11-16 23:33:02 +01:00
Paul B Mahol
45f03cdd20 avfilter/vf_colorbalance: add support for commands 2019-11-13 13:07:42 +01:00
Paul B Mahol
bffd0f7b69 avfilter/vf_colorbalance: switch to floats 2019-11-13 13:07:42 +01:00
Paul B Mahol
d19fdc83b3 avfilter/vf_colorbalance: add option to preserve lightness 2019-11-13 13:07:42 +01:00
Paul B Mahol
08c46e40fb avfilter/vF_colorbalance: rewrite, fixes filtering 2019-11-13 00:22:13 +01:00
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
leozhang
c79307b7de avfilter/vf_dnn_processing: correct duplicate statement
Signed-off-by: leozhang <leozhang@qiyi.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-11-08 14:57:01 +01:00
Guo, Yejun
f6e942251c avfilter/vf_dnn_processing: fix fate-source
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-11-08 14:56:38 +01:00
Limin Wang
81271b3cce avfilter/f_metadata: remove unneeded code
Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2019-11-08 22:25:10 +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
Limin Wang
99fc5059fb avfilter/vf_lut3d: simplify code
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-11-01 14:43:16 +01:00
Paul B Mahol
b414cff630 avfilter/vf_median: add radiusV option 2019-10-31 10:32:43 +01:00
Paul B Mahol
86a42e954e avfilter/af_afade: start crossfading only when first stream reached end 2019-10-31 10:23:59 +01:00
Paul B Mahol
89389b7ed4 avfilter/af_afade: check for eof after crossfade later
Fixes memleaks and #8346
2019-10-30 19:07:19 +01:00
Zhao Zhili
af70c94c63 avfilter/f_sidedata: fix Wtautological-constant-out-of-range-compare
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-30 18:09:00 +01:00
Guo, Yejun
912ab246f1 avfilter/vf_sr: correct flags since the filter changes frame w/h
If filter changes frame w/h, AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
cannot be supported.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-10-30 12:01:52 -03:00
Guo, Yejun
f4b3c0e55c avfilter/dnn: add a new interface to query dnn model's input info
to support dnn networks more general, we need to know the input info
of the dnn model.

background:
The data type of dnn model's input could be float32, uint8 or fp16, etc.
And the w/h of input image could be fixed or variable.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-10-30 11:07:06 -03:00
Guo, Yejun
e1b45b8596 avfilter/dnn: get the data type of network output from dnn execution result
so,  we can make a filter more general to accept different network
models, by adding a data type convertion after getting data from network.

After we add dt field into struct DNNData, it becomes the same as
DNNInputData, so merge them with one struct: DNNData.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-10-30 11:00:41 -03:00
Guo, Yejun
dff39ea9f0 dnn: add tf.nn.conv2d support for native model
Unlike other tf.*.conv2d layers, tf.nn.conv2d does not create many
nodes (within a scope) in the graph, it just acts like other layers.
tf.nn.conv2d only creates one node in the graph, and no internal
nodes such as 'kernel' are created.

The format of native model file is also changed, a flag named
has_bias is added, so change the version number.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-10-30 10:31:55 -03:00
Limin Wang
e1c4ce4761 avfilter/asrc_anoisesrc: change color variable to int
Or it'll cause invalid color and s->filter is NULL.
Please reproduce it with below command on big endian system:
$ ./ffmpeg -f lavfi -i "anoisesrc=d=60:c=1:r=48000" -f s16le -c:a pcm_s16le  -f
null  -
Segmentation fault (core dumped)

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-29 16:20:33 +01:00
Paul B Mahol
3420e56d9a avfilter/vf_vfrdet: also report average delta 2019-10-29 13:07:08 +01:00
Paul B Mahol
4ce263a7fd avfilter/vf_vfrdet: fix reporting max delta
If only first delta was big it was previously discarded.
2019-10-29 12:57:58 +01:00
Paul B Mahol
1c3b70e2e0 avfilter: add median filter 2019-10-29 10:56:04 +01:00
James Almer
1aa4fc1ec2 avfilter/avf_showfreqs: free input frame after using it
Fixes ticket #8336.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-10-26 10:16:02 -03:00
Paul B Mahol
4447aeaac2 avfilter/vsrc_testsrc: increase max level of haldclutsrc
So it matches lut3d and haldclut filter.
2019-10-26 10:32:20 +02:00
Paul B Mahol
a2210f10d3 avfilter/vf_lut3d: increase max level to upper limit defined by cube format specification 2019-10-26 10:32:20 +02:00
Paul B Mahol
9130028d87 avfilter/vf_lut3d: allocate 3d lut dynamically 2019-10-26 10:32:20 +02:00
Paul B Mahol
9e283aa24e avfilter/vf_psnr,vf_ssim: add warning if different timebases are encountered 2019-10-25 22:02:41 +02:00
Paul B Mahol
f166951d6e avfilter: add maskedmin/maskedmax filters 2019-10-24 20:54:33 +02:00
Paul B Mahol
ac0f5f4c17 avfilter/vf_maskedclamp: add x86 SIMD 2019-10-23 16:20:21 +02:00
Paul B Mahol
7df808ea84 avfilter/settb: switch to activate
Now correctly updates EOF timestamp.
2019-10-23 12:37:46 +02:00
Paul B Mahol
8732eb124e avfilter/vf_floodfill: better fix for crash 2019-10-23 10:20:57 +02:00
Paul B Mahol
1cdc805228 avfilter/vf_floodfill: add more gray formats 2019-10-23 10:04:15 +02:00
Paul B Mahol
ba7d55d3fc avfilter/vf_deband: add more gray formats 2019-10-23 09:54:36 +02:00
Jun Zhao
0e3d5bdc08 lavfi/bilateral: Clean the option description and unused code
Clean the option description and unused code.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-23 15:47:27 +08:00
Paul B Mahol
7832e05c35 avfilter/vf_lut2: fix typo, correctly support gray14 2019-10-23 09:44:08 +02:00
Paul B Mahol
1f327f5d27 avfilter/vf_bm3d: add gray14 format 2019-10-23 09:37:18 +02:00
Paul B Mahol
dd239bdb65 avfilter/vf_vaguedenoiser: add more gray formats 2019-10-23 09:31:09 +02:00