summaryrefslogtreecommitdiff
path: root/libavfilter/vf_minterpolate.c
Commit message (Collapse)AuthorAge
* Replace all occurences of av_mallocz_array() by av_calloc()Andreas Rheinhardt2021-09-20
| | | | | | | They do the same. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/avfilter: Add numbers of (in|out)pads directly to AVFilterAndreas Rheinhardt2021-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* avfilter/formats: Factor common function combinations outAndreas Rheinhardt2021-08-13
| | | | | | | | | | | Several combinations of functions happen quite often in query_format functions; e.g. ff_set_common_formats(ctx, ff_make_format_list(sample_fmts)) is very common. This commit therefore adds functions that are equivalent to commonly used function combinations in order to reduce code duplication. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Remove unnecessary avassert.h inclusionsAndreas Rheinhardt2021-07-22
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: Constify all AVFiltersAndreas Rheinhardt2021-04-27
| | | | | | | This is possible now that the next-API is gone. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_minterpolate: Remove redundant code for freeingAndreas Rheinhardt2020-10-09
| | | | | | | | ad73b32d2922f4237405043d19763229aee0e59e added some code for freeing in the input's config_props function, yet this is unnecessary as uninit is called anyway if config_props fails. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avfilter/vf_minterpolate: Fix left shift of negative valueAndreas Rheinhardt2020-10-09
| | | | | | | | | | | | This has happened when initializing the motion estimation context if width or height of the video was smaller than the block size used for motion estimation and if the motion interpolation mode indicates not to use motion estimation. The solution is of course to only initialize the motion estimation context if the interpolation mode uses motion estimation. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avfilter/vf_minterpolate: Reject too small dimensionsAndreas Rheinhardt2020-10-09
| | | | | | | | | | The latter code relies upon the dimensions to be not too small; otherwise one will call av_clip() with min > max lateron which aborts in case ASSERT_LEVEL is >= 2 or one will get a nonsense result that may lead to a heap-buffer-overflow/underflow. The latter has happened in ticket #8248 which this commit fixes. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* Revert "avfilter/vf_minterpolate: if metadata lavfi.scd.mafd exists, we'll ↵Marton Balint2020-05-15
| | | | | | | | | | use it first" This reverts commit d88e1c9838dbcfe29d7835f2705ffc9ee6a36bf3. Fixes null pointer dereference. Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/vf_minterpolate: change the default threshold to get better scene ↵Limin Wang2020-05-14
| | | | | | | | | | | | | | | | | | | | | | | | change detect result ./ffmpeg -loglevel debug -i ../fate-suite/svq3/Vertical400kbit.sorenson3.mov -vf minterpolate=fps=60:mi_mode=blend -an -f null - [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 1600 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 4120 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 5780 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 6700 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 8140 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 9740 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 14060 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 15680 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 18480 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 20020 [Parsed_minterpolate_0 @ 0x7fe7f3e193c0] scene changed, input pts 21740 The results are consistent with tests/ref/fate/filter-metadata-scenedetect For the master, it'll detect more than 20 scene change for the same source. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_minterpolate: correct the mafd calculationLimin Wang2020-05-14
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_minterpolate: if metadata lavfi.scd.mafd exists, we'll use it firstLimin Wang2020-05-14
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* lavfi/minterpolate: Remove declaration of two unused variables.Carl Eugen Hoyos2018-11-16
|
* avfilter/vf_minterpolate: use common scene sad functionsMarton Balint2018-11-11
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* lavfi/minterpolate: fix blending calc issue.Jun Zhao2018-07-08
| | | | | | | the right blending calc is: (alpha * Frame_2 + (MAX - alpha) * Frame_1 + 512) >> 10 Signed-off-by: Jun Zhao <mypopydev@gmail.com>
* lavfi/minterpolate: Split struct Pixel to allow higher resolutions.Carl Eugen Hoyos2017-12-28
| | | | | | Raises the maximum resolution from 2716x2707 to approximately 4096x4095. Fixes ticket #6795.
* avfilter/vf_minterpolate: Use dx and dyMichael Niedermayer2017-03-30
| | | | | | Fixes CID1396283 and CID1396284 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavfi/minterpolate: Remove an unused variable.Carl Eugen Hoyos2017-02-11
|
* avfilter/vf_minterpolate: rename chroma log varsDavinder Singh2016-09-02
| | | | | also use AVPixFmtDescriptor instead of avcodec_get_chroma_sub_sample() for log2_chroma*.
* avfilter/vf_minterpolate: do not right shift negative numbersDavinder Singh2016-08-29
| | | | | | It was source of crashes. Use division instead. Original patch by author. Log message by comitter.
* avfilter: added motion estimation and interpolation filtersDavinder Singh2016-08-26
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>