1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-03 05:10:03 +02:00
Commit Graph

9651 Commits

Author SHA1 Message Date
Andreas Rheinhardt
c87d7c8a81 avfilter/vf_vif: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:30 +02:00
Andreas Rheinhardt
2a18ee752d avfilter/vf_threshold: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:27 +02:00
Andreas Rheinhardt
d1a92cd06f avfilter/vf_ssim: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:23 +02:00
Andreas Rheinhardt
63cc7077c1 avfilter/vf_psnr: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:20 +02:00
Andreas Rheinhardt
b6de483cb4 avfilter/vf_premultiply: Remove always-false format check
These filters use ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:17 +02:00
Andreas Rheinhardt
71285daba9 avfilter/vf_midequalizer: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:14 +02:00
Andreas Rheinhardt
0fc1abe031 avfilter/vf_maskedthreshold: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:09 +02:00
Andreas Rheinhardt
e2cd1b3c06 avfilter/vf_maskedminmax: Remove always-false format check
These filters use ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:05 +02:00
Andreas Rheinhardt
406552155a avfilter/vf_maskedmerge: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:57:02 +02:00
Andreas Rheinhardt
15778ccce6 avfilter/vf_maskedclamp: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:58 +02:00
Andreas Rheinhardt
095d88d7ca avfilter/vf_libvmaf: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:55 +02:00
Andreas Rheinhardt
14488c26bb avfilter/vf_identity: Remove always-false format check
These filters use ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:52 +02:00
Andreas Rheinhardt
0d3841b59b avfilter/vf_hysteresis: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:49 +02:00
Andreas Rheinhardt
bd98d125c8 avfilter/vf_guided: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:46 +02:00
Andreas Rheinhardt
caef1172ea avfilter/vf_displace: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:43 +02:00
Andreas Rheinhardt
97454352cd avfilter/vf_convolve: Remove always-false format check
These filters use ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:40 +02:00
Andreas Rheinhardt
9cffffd795 avfilter/vf_bm3d: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:37 +02:00
Andreas Rheinhardt
ef09bd65e2 avfilter/vf_blend: Remove always-false format check
This filter uses ff_set_common_formats_from_list().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:33 +02:00
Andreas Rheinhardt
910215b4db avfilter/af_sidechaincompress: Remove always-false samplerate check
This filter uses ff_set_common_all_samplerates().
Also don't overwrite outlink->sample_rate in config_output;
it is harmless, because it is overwritten with the value it already
had, but it is an API violation.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:30 +02:00
Andreas Rheinhardt
e1487deb19 avfilter/af_amerge: Remove always-false samplerate check
This filter uses ff_set_common_all_samplerates().
Also don't overwrite outlink->sample_rate in config_output;
it is harmless, because it is overwritten with the value it already
had, but it is an API violation.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:25 +02:00
Andreas Rheinhardt
789de76e21 avfilter/af_agate: Remove always-false samplerate check
This filter uses ff_set_common_all_samplerates().
Also don't overwrite outlink->sample_rate in config_output;
it is harmless, because it is overwritten with the value it already
had, but it is an API violation.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:21 +02:00
Andreas Rheinhardt
7d99507838 avfilter/af_sidechaincompress: Honour query_formats API, fix segfault
Just like the sidechaingate filter, the sidechaincompress filter
overwrote the channel layout and channel count of its output in
its config_output callback to match the channel layout of its main
input instead of linking the main input and its output together
in its query_formats callback.

This is an API violation that can lead to segfaults, as in the
following filtergraph, where stereotools rightly expects stereo,
yet receives only mono:
[in]aformat=channel_layouts=mono,aformat=channel_layouts=stereo|mono[out];\
[out][in2]sidechaincompress,stereotools

Fix this by linking the channel layouts of the main input and the output
in query_formats and remove the code overwriting it in config_output.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:17 +02:00
Andreas Rheinhardt
80d32e0f7e avfilter/af_agate: Honour query_formats API, fix segfault
The sidechaingate filter wants its main input and its (only) output
to have the same channel layout and number of channels; yet it does
not link them in its query_formats callback. Instead it sets the
outlink to only accept the first offered choice for the main input's
channel layout and then sets both inputs to independently accept
any channel counts. The config_output callback then overwrote the
outlink's channel layout and channels properties with the main input's,
even though they may differ in case the first offered choice for
the main input's channel layout turns out not to be the final one.

Consider e.g. the following filtergraph:
[in]aformat=channel_layouts=mono,aformat=channel_layouts=stereo|mono[out];\
[out][in2]sidechaingate,stereotools
The two aformats ensure that the first offered channel layout (stereo)
will not be chosen for the input; yet it is the only offered channel
layout for the output of sidechaingate and will therefore be chosen
by the query_formats framework. Because the sidechaingate outputs
interleaved doubles which stereotools expects the output of
sidechaingate appears to be suitable as input for stereotools without
further conversions. Yet stereotools actually only receives a mono frame
and therefore overreads its input buffer which leads to segfaults;
it can also lead to heap corruption because there can be writes beyond
the end of the buffer, too.

Fix this by linking the channel layouts of the main input and the output
in query_formats and remove the code overwriting it in config_output.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:56:11 +02:00
Andreas Rheinhardt
9985ea7651 avfilter/af_afade: Remove redundant checks and assignments
The acrossfade filter uses the ff_set_common_* functions in its
query_formats(), so that the formats, the sample rates as well as
the channel layouts and counts of all links coincide.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-21 17:55:47 +02:00
Paul B Mahol
59719a905c avfilter/avf_showspectrum: rewrite frequency log axis/bin scaling 2021-09-20 11:14:53 +02:00
Andreas Rheinhardt
896c11687e avcodec/elbg: Add persistent ELBGContext
It will be used in future commits to avoid having to allocate and free
all the buffers used.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 04:38:45 +02:00
Andreas Rheinhardt
8bfd466c9e avfilter/vf_elbg: Rename ELBGContext->ELBGFilterContext
The former name will be used for a context for avpriv_do_elbg().

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 04:38:12 +02:00
Andreas Rheinhardt
05ccfcb7b0 avcodec/elbg: Merge avpriv_init_elbg() into avpriv_do_elbg()
These functions are always called directly after another with
the exact same arguments. This avoids exporting a symbol;
it also avoids having to perform two calls for every caller.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 04:09:22 +02:00
Andreas Rheinhardt
1ea3650823 Replace all occurences of av_mallocz_array() by av_calloc()
They do the same.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 01:03:52 +02:00
Andreas Rheinhardt
3b6c25c925 avfilter/vf_subtitles, fftools/ffmpeg: Don't set sub_text_format
Unnecessary since 1f63665ca5, because
the value the option is set to coincides with the default value.

Found-by: Soft Works <softworkz@hotmail.com>
Reviewed-by: Soft Works <softworkz@hotmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-20 00:27:47 +02:00
Paul B Mahol
0b150e4f61 avfilter/avf_avectorscope: fix zoom 0 mode with nonlinear scale 2021-09-19 13:49:55 +02:00
Paul B Mahol
7747ab7ded avfilter/avf_avectorscope: add support for commands 2021-09-19 13:49:55 +02:00
Paul B Mahol
99d71c28d4 avfilter/avf_avectorscope: add slice threading for fade function 2021-09-19 13:14:11 +02:00
Paul B Mahol
4f7f046683 avfilter/avf_avectorscope: add ultra fast path when slow fading is disabled 2021-09-19 12:34:45 +02:00
Andreas Rheinhardt
d8ca8bec26 avfilter/vf_hflip: Don't call av_pix_fmt_desc_get() twice
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 05:18:51 +02:00
Andreas Rheinhardt
73a59ed1cb avfilter/vf_zscale: Use init instead of init_dict
The AVDictionary was unused.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:48:58 +02:00
Andreas Rheinhardt
e424d1f557 avfilter/vf_spp: Add dummy element to array to avoid shift
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:47:17 +02:00
Andreas Rheinhardt
a85d2de45f avfilter/vf_spp: Use preinit instead of init_dict
By using preinit, the AVDCT already exists directly after
allocating the filter, so that the filter's AVClass's child_next
becomes usable for setting options with the AV_OPT_SEARCH_CHILDREN
search flag. This means that it is no longer necessary to use
the init_dict callback for this filter.

Furthermore, the earlier code did not abide by the documentation
of the init_dict callback at all: Instead of only returning the
options that have not been recognized it always returned all options
on any av_opt_set() error and errored out in this case, even if it
is just an unrecognized option. This behaviour has been inherited by
avfilter_init_dict(), contradicting its documentation. This is also
fixed in this commit.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:45:34 +02:00
Andreas Rheinhardt
0c34cf899d avfilter/af_aresample: Use preinit instead of init_dict
By using preinit, the SwrContext already exists directly after
allocating the filter, so that the filter's AVClass's child_next
becomes usable for setting options with the AV_OPT_SEARCH_CHILDREN
search flag. This means that it is no longer necessary to use
the init_dict callback for this filter.

Furthermore, the earlier code did not abide by the documentation
of the init_dict callback at all: Instead of only returning the
options that have not been recognized it always returned all options
on any av_opt_set() error and errored out in this case; yet if
the error was just caused by an unrecognized option, it should not
error out at all and instead return said option.

This behaviour has been inherited by avfilter_init_dict(),
contradicting its documentation. This is also fixed by this commit.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:44:27 +02:00
Andreas Rheinhardt
f748ca801e avfilter/vf_readeia608: Use av_dict_set_int()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:39:25 +02:00
Andreas Rheinhardt
403d8c0188 avfilter/vf_scale: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:38:02 +02:00
Andreas Rheinhardt
4906a45ada avfilter/vsrc_testsrc: Deduplicate AVClasses
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:37:22 +02:00
Andreas Rheinhardt
f8047180a8 avfilter/vf_weave: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:36:03 +02:00
Andreas Rheinhardt
57bc79e76a avfilter/vf_stack: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:34:53 +02:00
Andreas Rheinhardt
56d3e840f6 avfilter/vf_premultiply: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:32:58 +02:00
Andreas Rheinhardt
443706d937 avfilter/vf_neighbor: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:32:05 +02:00
Andreas Rheinhardt
31adb960b7 avfilter/vf_maskedminmax: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:31:13 +02:00
Andreas Rheinhardt
412d645ba1 avfilter/vf_lut: Remove empty init function
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:31:03 +02:00
Andreas Rheinhardt
b5be13255f avfilter/vf_lut: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:30:38 +02:00
Andreas Rheinhardt
57f6c23f29 avfilter/vf_format: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:28:03 +02:00
Andreas Rheinhardt
bb1ef872a3 avfilter/vf_blend: Don't redefine options name
Use AVFILTER_DEFINE_CLASS_EXT instead.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:27:56 +02:00
Andreas Rheinhardt
39589d25e3 avfilter/src_movie: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:26:16 +02:00
Andreas Rheinhardt
a9f1b3db60 avfilter/split: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:26:07 +02:00
Andreas Rheinhardt
c8180c1310 avfilter/f_zmq: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:26:00 +02:00
Andreas Rheinhardt
a10a300606 avfilter/f_streamselect: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:24:55 +02:00
Andreas Rheinhardt
cf724beade avfilter/f_sendcmd: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:24:07 +02:00
Andreas Rheinhardt
fcea114b18 avfilter/f_realtime: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:24:00 +02:00
Andreas Rheinhardt
8435cf2307 avfilter/f_perms: Deduplicate AVClasses
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:09:06 +02:00
Andreas Rheinhardt
0eb1f45dd3 avfilter/f_graphmonitor: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:08:18 +02:00
Andreas Rheinhardt
9ceec2869a avfilter/f_drawgraph: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:08:10 +02:00
Andreas Rheinhardt
601e3da1d5 avfilter/f_cue: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:07:48 +02:00
Andreas Rheinhardt
974e8262c9 avfilter/af_sidechaincompress: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:05:55 +02:00
Andreas Rheinhardt
4ab80ac17e avfilter/af_biquads: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:04:12 +02:00
Andreas Rheinhardt
3000ac48d5 avfilter/af_asupercut: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:04:00 +02:00
Andreas Rheinhardt
8c4a7a4c09 avfilter/vf_convolution: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:01:37 +02:00
Andreas Rheinhardt
3208911055 avfilter/vf_convolution: Fix standalone build of kirsch, scharr filters
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 04:00:05 +02:00
Andreas Rheinhardt
bc86e1b602 avfilter/af_agate: Deduplicate AVClasses
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-19 03:58:00 +02:00
Andreas Rheinhardt
6556146aa0 avfilter/vf_zscale: Don't make assumptions about zimg's range enums
zimg's color range enum values are off-by-one compared to ours;
therefore the code just adds one when converting from theirs to ours.
Yet this is not how one should deal with enums; use a switch instead.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-18 23:16:44 +02:00
Wu Jianhua
7bbad32d5a libavfilter/x86/vf_gblur: correct the order of loop step
The problem was caused by if the width of the processed block
minus 1 is a multiple of the aligned number the instruction
jle .bscale_scalar would skip the Optimized Loop Step, which
will lead to an incorrect sampling when specifying steps more
than 1. Move the Optimized Loop Step after .bscale_scalar to
ensure the loop step is enabled.

Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-09-18 12:38:01 +02:00
Wu Jianhua
fcf10c925d libavfilter/x86/vf_gblur: fixed the fate-test failed on MacOS
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-09-18 12:37:56 +02:00
Pavel Koshevoy
4fc0b75973 avfilter/vf_zscale: fix output color_range discrepancy
This filter chain was supposed to convert from narrow range
to full range yuv444p, but didn't:

buffer=width=1280:height=720:pix_fmt=yuv444p:frame_rate=25/1:\
time_base=1/25:sar=1/1,zscale=min=709:rin=limited:pin=709:\
tin=709:t=linear,format=gbrpf32le,zscale=tin=linear:p=709:m=709:\
r=full:t=709,format=pix_fmts=yuv444p,buffersink
2021-09-17 13:35:59 -06:00
Andreas Rheinhardt
f58abfbedc avfilter/vf_coreimage: Simplify query_formats
Using ff_set_common_formats_from_list() avoids using different functions
depending upon how many inputs the filter has.

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-17 16:29:08 +02:00
Andreas Rheinhardt
10ad3cd798 avfilter/avfilter: Actually error out on init error
Currently an error from init could be overwritten by successfully
setting the enable expression.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-17 16:17:26 +02:00
Wenbin Chen
a822e70bec libavfilter/vf_vpp_qsv: fix uninitialized variable problem
This two variables may be used below with uninitialized value.
Now fix them.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
Reviewed-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Soft Works <softworkz@hotmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-09-15 09:24:08 -03:00
Timo Rothenpieler
06de593303 avfilter/frei0r: use win32dlfcn wrapper 2021-09-15 12:37:02 +02:00
Andreas Rheinhardt
441b292592 avfilter/internal: Add AVFILTER_DEFINE_CLASS_EXT
This macro will allow to share options between AVClasses without
having to redefine the option name (as is currently done) and will
also allow to share the AVClasses itself (which is possible now
that AVClass.child_class_next is gone).

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-13 16:08:29 +02:00
Andreas Rheinhardt
142f41a060 avfilter/vf_maskedminmax: Simplify init
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-13 16:08:12 +02:00
Andreas Rheinhardt
dc2279a4f2 avfilter/avfilter: Remove unused count
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-13 16:05:15 +02:00
Paul B Mahol
db2514a5dc avfilter/af_speechnorm: improve EOF timestamp precision 2021-09-12 23:47:32 +02:00
Paul B Mahol
f78d0f67be avfilter/af_dynaudnorm: improve EOF timestamp precision 2021-09-12 23:47:32 +02:00
Paul B Mahol
cd4e6e404b avfilter/vf_extractplanes: fix regression
Report & solution provided by Andreas Rheinhardt.
2021-09-12 17:06:21 +02:00
Paul B Mahol
c4973e2148 avfilter/vf_xfade: check default switch case 2021-09-12 15:06:08 +02:00
Paul B Mahol
1db828db8b avfilter/vf_xfade: add zoomin transition 2021-09-12 15:01:48 +02:00
Paul B Mahol
b35653d4c4 avfilter/vf_extractplanes: stop marking alphaextract filter as dynamic outputs 2021-09-12 13:50:01 +02:00
Paul B Mahol
882045f3dd avfilter/af_afftfilt: reindent after last commit 2021-09-12 13:28:12 +02:00
Paul B Mahol
485a52e618 avfilter/af_afftfilt: add timeline support 2021-09-12 13:28:12 +02:00
Paul B Mahol
94d4cc24c3 avfilter/af_asoftclip: rewrite oversampling
Fixes most aliasing issues.
2021-09-12 12:55:50 +02:00
Paul B Mahol
3e127b595a avfilter/vf_fieldmatch: initialize dst pointer to silence warning 2021-09-11 22:19:25 +02:00
Paul B Mahol
bf0f996c12 avfilter/f_segment: silence compiler warning 2021-09-11 22:19:25 +02:00
Paul B Mahol
0a8a0c96ae avfilter/f_loop: initialize ret to silence compiler warning 2021-09-11 22:19:25 +02:00
Paul B Mahol
d460a5f8ba avfilter/af_arnndn: initialize ret to silence compiler warning 2021-09-11 22:19:25 +02:00
Paul B Mahol
533ddd61e5 avfilter/af_afftdn: move i initialization to silence warning 2021-09-11 22:19:25 +02:00
Paul B Mahol
b53f9c5e68 avfilter/af_apsyclip: fix mixed declarations and code 2021-09-11 21:47:49 +02:00
Paul B Mahol
eeab62ad2d avfilter: add audio psychoacoustic clipper 2021-09-11 16:19:40 +02:00
Paul B Mahol
966fc3c070 avfilter/af_astats: add entropy stat 2021-09-11 10:54:20 +02:00
Paul B Mahol
463c71b3b3 avfilter/vf_convolution: add scharr operator 2021-09-10 18:43:51 +02:00
Paul B Mahol
abd24eaf68 avfilter/af_silenceremove: fix regression in output frame pts 2021-09-09 20:22:02 +02:00
Artem Galin
19a17388d8 libavfilter/vf_deinterlace_qsv: enabling d3d11va support, added mfxhdlpair
Adding DX11 relevant device type checks and adjusting callback with
proper MediaSDK pair type support.

Signed-off-by: Artem Galin <artem.galin@intel.com>
2021-09-08 17:48:32 -03:00
Artem Galin
c1cebaa4c4 libavfilter/vf_scale_qsv: add MFX_MEMTYPE_FROM_VPPOUT flag to frame_type
In case of DX11 device type, Media SDK is sensitive to these flags.

Signed-off-by: Artem Galin <artem.galin@intel.com>
2021-09-08 17:48:32 -03:00
Artem Galin
46c6946eee libavfilter/vf_scale_qsv: enabling d3d11va support, added mfxhdlpair
Adding DX11 relevant device type checks and adjusting callback with
proper MediaSDK pair type support.

Signed-off-by: Artem Galin <artem.galin@intel.com>
2021-09-08 17:48:32 -03:00
Artem Galin
36166cc304 libavfilter/qsvvpp: add MFX_MEMTYPE_FROM_VPPOUT flag to output frames
In case of DX11 device type, Media SDK is sensitive to these flags.

Signed-off-by: Artem Galin <artem.galin@intel.com>
2021-09-08 17:48:32 -03:00
Artem Galin
a611c35001 libavfilter/qsvvpp: enabling d3d11va support, added mfxhdlpair
Adding DX11 relevant device type checks and adjusting callback with
proper MediaSDK pair type support.

Signed-off-by: Artem Galin <artem.galin@intel.com>
2021-09-08 17:48:32 -03:00
Paul B Mahol
3df55c7bd6 avfilter/af_speechnorm: add timeline support 2021-09-08 22:13:26 +02:00
Paul B Mahol
5db1e07a62 avfilter/af_speechnorm: check return value of av_frame_make_writable() 2021-09-08 21:44:54 +02:00
Paul B Mahol
ccd95cb248 avfilter/af_speechnorm: use floats in place of doubles where it is already float used 2021-09-08 21:44:54 +02:00
Paul B Mahol
38ab20e591 avfilter/af_silenceremove: fix stop_silence handling 2021-09-08 19:10:39 +02:00
Paul B Mahol
8a42ee6697 avfilter/af_silenceremove: avoid returning 1 sample duration frames 2021-09-08 19:10:39 +02:00
Paul B Mahol
3b331468da avfilter/af_silenceremove: fix processing of periods > 1 2021-09-08 19:10:39 +02:00
Paul B Mahol
5e7e2e5031 avfilter/af_silenceremove: guard against negative numbers 2021-09-08 10:45:53 +02:00
Paul B Mahol
c3e11e3092 avfilter/af_silenceremove: add asserts to check for NaNs 2021-09-08 10:45:53 +02:00
Paul B Mahol
4e1ee16cbb avfilter/af_silenceremove: use duration option for window option 2021-09-07 19:44:25 +02:00
Paul B Mahol
15e844ed9d avfilter/af_silenceremove: fix indentation 2021-09-07 19:44:25 +02:00
Paul B Mahol
1d1e8a47b7 avfilter/af_silenceremove: cover default case too 2021-09-07 19:44:25 +02:00
Anton Khirnov
60515a6d61 lavfi/vf_scale: pass the thread count to the scaler 2021-09-06 09:18:05 +02:00
Anton Khirnov
22c6fbc847 lavfi/vf_scale: convert to the frame-based sws API 2021-09-06 09:17:06 +02:00
James Almer
f599ae88c2 avfilter/avfiltergraph: add an "auto" constant to the threads option
Signed-off-by: James Almer <jamrial@gmail.com>
2021-09-04 10:35:01 -03:00
Andreas Rheinhardt
f58939affe avfilter/vf_xmedian: Split portion of init unique to xmedian off
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-04 15:24:59 +02:00
Paul B Mahol
a4101dca6c avfilter/af_silencedetect: add planar sample formats support 2021-09-02 21:34:17 +02:00
Paul B Mahol
ba3c09b84a avfilter/af_silencedetect: support all channel counts 2021-09-02 20:25:48 +02:00
Jan Ekström
2818b14392 avfilter/vf_scale: set the RGB matrix coefficients in case of RGB
This fixes the passing through of non-RGB matrix from input to
output when conversion from YCbCr to RGB happens.
2021-09-01 23:29:27 +03:00
Wu Jianhua
4041c1029b libavfilter/x86/vf_gblur: add localbuf and ff_horiz_slice_avx2/512()
We introduced a ff_horiz_slice_avx2/512() implemented on a new algorithm.
In a nutshell, the new algorithm does three things, gathering data from
8/16 rows, blurring data, and scattering data back to the image buffer.
Here we used a customized transpose 8x8/16x16 to avoid the huge overhead
brought by gather and scatter instructions, which is dependent on the
temporary buffer called localbuf added newly.

Performance data:
ff_horiz_slice_avx2(old): 109.89
ff_horiz_slice_avx2(new): 666.67
ff_horiz_slice_avx512: 1000

Co-authored-by: Cheng Yanfei <yanfei.cheng@intel.com>
Co-authored-by: Jin Jun <jun.i.jin@intel.com>
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-08-29 19:58:33 +02:00
Wu Jianhua
68a2722aee libavfilter/x86/vf_gblur: add ff_verti_slice_avx2/512()
The new vertical slice with AVX2/512 acceleration can significantly
improve the performance of Gaussian Filter 2D.

Performance data:
ff_verti_slice_c: 32.57
ff_verti_slice_avx2: 476.19
ff_verti_slice_avx512: 833.33

Co-authored-by: Cheng Yanfei <yanfei.cheng@intel.com>
Co-authored-by: Jin Jun <jun.i.jin@intel.com>
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-08-29 19:58:33 +02:00
Wu Jianhua
4a5e24721c libavfilter/x86/vf_gblur: add ff_postscale_slice_avx512()
Co-authored-by: Cheng Yanfei <yanfei.cheng@intel.com>
Co-authored-by: Jin Jun <jun.i.jin@intel.com>
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-08-29 19:58:33 +02:00
Anton Khirnov
ca32d0462c lavfi/vf_scale: remove the nb_slices option
It was intended for debugging only and has been superseded by the
standalone tool for testing sliced scaling.
2021-08-29 18:44:54 +02:00
Paul Buxton
e07ada3dac avfilter: add grayworld video filter
Implements a gray world color correction algorithm
using a log scale LAB colorspace.

Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2021-08-29 13:31:37 +02:00
Paul B Mahol
02fcd485f9 avfilter/af_acrossover: check for rest of sample formats 2021-08-29 10:29:15 +02:00
Paul B Mahol
fdb4c03555 avfilter/vf_tpad: rescale EOF pts for case outlink time_base differs 2021-08-29 01:47:23 +02:00
Paul B Mahol
3b780e818a avfilter/af_crystalizer: refactor some code 2021-08-29 00:09:29 +02:00
Paul B Mahol
5f55467c0b avfilter/af_crystalizer: fix some minor issues
Do multiplications instead of divisions and use floats
where makes sense.
2021-08-29 00:09:29 +02:00
Paul B Mahol
8c1b65feb6 avfilter/af_afreqshift: do not forget to update coeffs at runtime 2021-08-28 18:52:08 +02:00
Paul B Mahol
1da2dd5c77 avfilter: add atilt filter 2021-08-28 18:51:04 +02:00
Paul B Mahol
b53a7d2d4d avfilter: add adecorrelate filter 2021-08-28 18:46:39 +02:00
Shubhanshu Saxena
660a205b05 lavfi/dnn: Rename InferenceItem to LastLevelTaskItem
This patch renames the InferenceItem to LastLevelTaskItem in the
three backends to avoid confusion among the meanings of these structs.

The following are the renames done in this patch:

1. extract_inference_from_task -> extract_lltask_from_task
2. InferenceItem -> LastLevelTaskItem
3. inference_queue -> lltask_queue
4. inference -> lltask
5. inference_count -> lltask_count

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-08-28 16:19:07 +08:00
Shubhanshu Saxena
1544d6fa0a libavfilter: Remove Async Flag from DNN Filter Side
Remove async flag from filter's perspective after the unification
of async and sync modes in the DNN backend.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-08-28 16:19:07 +08:00
Shubhanshu Saxena
70b4dca054 libavfilter: Remove synchronous functions from DNN filters
This commit removes the unused sync mode specific code from the DNN
filters since the sync and async mode are now unified from the
filters' perspective.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-08-28 16:19:07 +08:00
Shubhanshu Saxena
60b4d07cf6 libavfilter: Unify Execution Modes in DNN Filters
This commit unifies the async and sync mode from the DNN filters'
perspective. As of this commit, the Native backend only supports
synchronous execution mode.

Now the user can switch between async and sync mode by using the
'async' option in the backend_configs. The values can be 1 for
async and 0 for sync mode of execution.

This commit affects the following filters:
1. vf_dnn_classify
2. vf_dnn_detect
3. vf_dnn_processing
4. vf_sr
5. vf_derain

This commit also updates the filters vf_dnn_detect and vf_dnn_classify
to send only the input frame and send NULL as output frame instead of
input frame to the DNN backends.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-08-28 16:19:07 +08:00
Shubhanshu Saxena
d39580ac11 lavfi/dnn: Task-based Inference in Native Backend
This commit rearranges the code in Native Backend to use the TaskItem
for inference.

Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
2021-08-28 16:19:07 +08:00
Jai Luthra
d91542e618 avfilter/signature: fix integer rounding cast precedence
Co-authored-by: Oscar <oscar_davids@outlook.com>
Signed-off-by: Jai Luthra <me@jailuthra.in>
2021-08-28 13:30:02 +05:30
Jan Ekström
9dd410c804 avfilter/vf_scale: reset color matrix in case of identity & non-RGB
Fixes passing through mismatching metadata from the input side
when RGB input (from f.ex. H.264 or HEVC) gets converted to YCbCr.

Fixes #9132
2021-08-28 01:20:09 +03:00
Andreas Rheinhardt
ffc00e5b16 avfilter/graphdump: Use pointer to const for pointer to static strings
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-27 18:17:07 +02:00
Andreas Rheinhardt
76ff9640be avfilter/graphdump: Don't return truncated string
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-27 18:17:04 +02:00
Andreas Rheinhardt
48348cd4ab avfilter/graphdump: Don't silently truncate channel layout string
64B are not enough any more.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-27 18:16:59 +02:00
Andreas Rheinhardt
daeef7d220 avfilter/graphdump: Properly initialize AVBPrint
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-27 18:16:35 +02:00
Paul B Mahol
dc34bf45c5 avfilter/vf_colorcorrect: add median analyze mode 2021-08-27 10:04:04 +02:00
Paul B Mahol
0cacef58fa avfilter/vf_blend: use float for opacity calculations 2021-08-27 09:35:33 +02:00
Paul B Mahol
a6f00d4e82 avfilter/aeval: fix forgotten EOF case for activate
Bring fate test how it was previously.
2021-08-26 19:23:03 +02:00
Paul B Mahol
c1c7f2b61f avfilter/avf_showwaves: remove invalid multiplication by 2
Fixes output of average filter.
2021-08-26 09:16:35 +02:00
Paul B Mahol
02aa7dc423 avfilter: add hsvkey and hsvhold video filters 2021-08-25 20:43:18 +02:00
James Almer
61b38f7aef avfilter/avfilter: add a return at the end of a non-void function
Fixes compilation with GCC 11 when configured with "--disable-optimizations --toolchain=gcc-tsan"

Signed-off-by: James Almer <jamrial@gmail.com>
2021-08-24 09:36:21 -03:00
Paul B Mahol
7f194c7d96 avfilter/af_afreqshift: allow to change order of filters 2021-08-23 19:43:06 +02:00
Andreas Rheinhardt
845579c6e2 avfilter/vf_xmedian: Free inpads' names generically
This affects only the xmedian filter, not tmedian.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:54 +02:00
Andreas Rheinhardt
ad3b1fddb3 avfilter/vf_stack: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:47 +02:00
Andreas Rheinhardt
07aacf5ea9 avfilter/vf_signature: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:44 +02:00
Andreas Rheinhardt
65884bd81f avfilter/vf_program_opencl: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:42 +02:00
Andreas Rheinhardt
97c796176e avfilter/vf_mix: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:39 +02:00
Andreas Rheinhardt
0ba9089aec avfilter/vf_mergeplanes: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:36 +02:00
Andreas Rheinhardt
2142e71911 avfilter/vf_extractplanes: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:33 +02:00
Andreas Rheinhardt
41c98bfe0a avfilter/src_movie: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:31 +02:00
Andreas Rheinhardt
0ce19ecd28 avfilter/split: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:15:28 +02:00
Andreas Rheinhardt
a79852f1c1 avfilter/f_streamselect: Free pads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:14:10 +02:00
Andreas Rheinhardt
64133506f7 avfilter/f_select: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:14:07 +02:00
Andreas Rheinhardt
f6c6a51d98 avfilter/f_segment: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:14:03 +02:00
Andreas Rheinhardt
b8e31568df avfilter/f_interleave: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:59 +02:00
Andreas Rheinhardt
fbfcb012ac avfilter/avf_concat: Free pads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:56 +02:00
Andreas Rheinhardt
f28db2ca27 avfilter/af_lv2: Free inpad's name generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:53 +02:00
Andreas Rheinhardt
7670e24eb0 avfilter/af_ladspa: Free inpad's name generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:50 +02:00
Andreas Rheinhardt
d2e72473df avfilter/af_join: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:47 +02:00
Andreas Rheinhardt
ad5d056dc3 avfilter/af_headphone: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:44 +02:00
Andreas Rheinhardt
0e936381ff avfilter/af_amix: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:41 +02:00
Andreas Rheinhardt
414c1b9b62 avfilter/af_amerge: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:38 +02:00
Andreas Rheinhardt
c54c8836cf avfilter/af_afir: Free inpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:34 +02:00
Andreas Rheinhardt
59b465e4df avfilter/af_acrossover: Free outpads' names generically
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:30 +02:00
Andreas Rheinhardt
f308f37441 avfilter/avfilter: Allow to free non-static pads generically
This can be enabled/disabled on a per-pad basis by setting
the AVFILTERPAD_FLAG_FREE_NAME flag; variants of ff_append_(in|out)pads
that do this for you have been added and will be put to use in the
following commits.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:13:25 +02:00
Andreas Rheinhardt
dff1709eb2 avfilter/internal: Uninline ff_insert_(in|out)pad()
These functions are not hot at all.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-22 16:12:06 +02:00
Paul B Mahol
da6aab45e4 avfilter/vf_v360: fill unused regions too for orthographic output format 2021-08-22 14:06:14 +02:00
Paul B Mahol
1616f7fb28 avfilter/vf_v360: refactor rescaling of i/j 2021-08-22 14:06:14 +02:00
Paul B Mahol
5b258c2770 avfilter/af_astats: remove invalid 5x factor in window size calculation
Also allow smaller window sizes, and change histogram for noise
floor calculation to uint64_t type.
2021-08-21 22:05:08 +02:00
Paul B Mahol
99ccad843f avfilter/aevalsrc: switch to activate
Allow to set the EOF timestamp.

FATE test is updated, as last 2 frames were duplicated.
2021-08-21 16:43:21 +02:00
Paul B Mahol
6854cc2ec7 avfilter/asrc_hilbert: switch to activate
Allow to set the EOF timestamp.
2021-08-21 16:31:40 +02:00
Paul B Mahol
5e2e9d50ce avfilter/asrc_afirsrc: switch to activate
Allow to set the EOF timestamp.
2021-08-21 16:27:27 +02:00
Paul B Mahol
9153038e0a avfilter/asrc_sinc: switch to activate
Allow to set the EOF timestamp.
2021-08-21 16:27:27 +02:00
Nicolas George
52091fcb5c lavfi/sine: switch to activate
Allow to set the EOF timestamp.

Signed-off-by: Nicolas George <george@nsup.com>
2021-08-21 16:11:11 +02:00
Andreas Rheinhardt
78a4a76c85 avfilter/vf_convolution: Add mem_internal.h for DECLARE_ALIGNED
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-21 00:34:01 +02:00
Andreas Rheinhardt
3969c2abfb avfilter/avfiltergraph: Remove dead checks
These checks emit warnings in case the channel layouts lists are
inconsistent; yet since 69f5f6ea37
a function that is called earlier errors out if they are inconsistent.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 14:30:46 +02:00
Andreas Rheinhardt
4f46c3cf5c avfilter/formats: Don't set samplerate or channel count on video links
This currently happens by accident in a few filters that use
ff_set_common_(samplerates|channel_layouts) like afir (if the response
option is set) or agraphmonitor (due to the default code in
avfiltergraph.c). So change those functions to make sure it does no
longer happen.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 14:30:30 +02:00
Andreas Rheinhardt
79595024ed avfilter/formats: Avoid redundant counter
The ff_set_common_(formats|channel_layouts|samplerates) have to free
their list in case it doesn't have an owner; therefore they tracked
whether they attached it to an owner. But the list's refcount already
contains such a counter, so we don't have to keep track of whether we
have attached the list to an owner.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 14:30:17 +02:00
Andreas Rheinhardt
e88db774d8 avfilter/avfilter: Deprecate avfilter_pad_count()
It is unnecessary as the number of static inputs and outputs can now
be directly read via AVFilter.nb_(in|out)puts.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 14:29:46 +02:00
Andreas Rheinhardt
7c5f998196 avfilter/avfilter: Add avfilter_filter_pad_count()
It is intended as replacement for avfilter_pad_count(). In contrast to
the latter, it avoids a loop.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 13:19:59 +02:00
Andreas Rheinhardt
8be701d9f7 avfilter/avfilter: Add numbers of (in|out)pads directly to AVFilter
Up until now, an AVFilter's lists of input and output AVFilterPads
were terminated by a sentinel and the only way to get the length
of these lists was by using avfilter_pad_count(). This has two
drawbacks: first, sizeof(AVFilterPad) is not negligible
(i.e. 64B on 64bit systems); second, getting the size involves
a function call instead of just reading the data.

This commit therefore changes this. The sentinels are removed and new
private fields nb_inputs and nb_outputs are added to AVFilter that
contain the number of elements of the respective AVFilterPad array.

Given that AVFilter.(in|out)puts are the only arrays of zero-terminated
AVFilterPads an API user has access to (AVFilterContext.(in|out)put_pads
are not zero-terminated and they already have a size field) the argument
to avfilter_pad_count() is always one of these lists, so it just has to
find the filter the list belongs to and read said number. This is slower
than before, but a replacement function that just reads the internal numbers
that users are expected to switch to will be added soon; and furthermore,
avfilter_pad_count() is probably never called in hot loops anyway.

This saves about 49KiB from the binary; notice that these sentinels are
not in .bss despite being zeroed: they are in .data.rel.ro due to the
non-sentinels.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 12:53:58 +02:00
Andreas Rheinhardt
29bf3fafa0 avfilter/avfiltergraph: Don't use AVClass * for logcontext
Forgotten in 57fa314090.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-08-20 12:09:07 +02:00
Paul B Mahol
d5b3e0403e avfilter/vf_colorcorrect: fix average analyze mode and add minmax mode 2021-08-20 10:55:33 +02:00
Nicolas George
b06f12b68b lavfi/formats: document the negotiation process 2021-08-20 10:26:36 +02:00
Nicolas George
24de2b7618 lavfi/formats: rename AVFilterNegotiation.nb to nb_mergers 2021-08-20 10:26:36 +02:00
Nicolas George
703c3c4151 lavfi/formats: cosmetic: move negotiation stuff at the end
It was between AVFilterFormats and AVFilterChannelLayouts.
2021-08-20 10:26:36 +02:00
Paul B Mahol
7871b3ca5e avfilter/vf_signalstats: avoid doubles in calculations 2021-08-20 07:34:17 +02:00
Paul B Mahol
ed6ea4f9ca avfilter/vf_chromakey: fix diff scaling for chromahold filter 2021-08-20 07:25:16 +02:00
Paul B Mahol
79934cc702 avfilter/vf_paletteuse: do not use in dithering transparent palette 2021-08-19 09:45:09 +02:00
Paul B Mahol
6d09de90d1 avfilter/vf_paletteuse: fix some integer overflows 2021-08-19 09:45:09 +02:00
Paul B Mahol
835eb0a556 avfilter/vf_paletteuse: do not sort transparency color
Make last palette entry always transparent color.
Fixes wrong filtered output with new=1 option set.
2021-08-19 01:49:58 +02:00
Paul B Mahol
124eec942a avfilter/vf_palettegen: fix integer overflow 2021-08-19 01:29:11 +02:00