[Kdenlive-devel] different videostab filter

Dan Dennedy dan at dennedy.org
Sat Sep 10 23:29:07 UTC 2011

2011/9/2 Marco Gittler <marco at gitma.de>:
> Hi
> i integrated a second (very nice) videostab from http://public.hronopik.de/vid.stab/features.php?lang=en
> which seems to be make a bit better job. (https://github.com/gmarco/mlt/commits/videostab)
> This video http://www.youtube.com/watch?v=cRA5H1LYzM4&feature=mfu_in_order&list=UL
> is very shaky and using the filter videostab, the result has still some rolling in the video. Also it has some more "stretch areas" in den borders.
> The videostab2 filter seems to use a complete different algo.
> -It has much more parameter to be adjusted (not implemented yet)
> -is can handle yuv and rgb data (rgb is _much_ slower tha yuv , yuv nearly as fast as videostab filter )
> -is can remove the rolling of the camera much better
> -it will zoom in to avoid the "stretch borders"
> This is only a Test version. But i think, it would be worth to have this too in mlt (a bit work is to make it full working (parameters/debug log) )
> Usage of the filter is equal to videostab.

You must address the following problems before I will merge it into MLT.

1) Why did you revert my change to uncomment the values.h include in
stab/estimate.c? It is needed to get MAXFLOAT; otherwise, it fails to
build for me. If you need to comment it out to make it build, then
provide a universal fix.

2) Makefile includes flags -mmmx  -msse  -msse2. We cannot just
arbitrarily add these flags without respecting the configure --disable
options, and there is no reason to add them only for videostab and no
other code. Just remove them. Also, make gives 'cc1: error:
unrecognized command line option "-fasm-blocks"'

3) Why do you always ignore the mlt coding conventions in all of the
code that you personally contribute? I am not talking about other
peoples' code files that you copy in - that should retain original
formatting. For example, in filter_videostab2.c, right in the middle
of the code I wrote consistent with the conventions, you put things
    if (dat && dat->data){

4) Remove the commented code that obviously no longer belongs.

5) There is no filter_videostab2.yml.

6) This is optional, but I think you should set the interpolation
(TransformData.interpoltype) based on the frame property
"rescale.interp" See
src/modules/avformat/filter_swscale.c:filter_scale() how to interpret
that property. By default, the SDL consumers use low quality "nearest"
and avformat uses higher quality "bilinear."

7) In filter_videostab2_init(), you allocate StabData, but so does
stabilize_init() later in the function. I suggest just remove the call
the stabilize_init().

8) In filter_get_image(), you allocate TransformData with
mlt_pool_alloc() but tell the property to destroy it with
mlt_properties_close - should mlt_pool_release.

9) There is a printf() in filter_get_image().


More information about the Kdenlive mailing list