[Kdenlive-devel] [Mlt-devel] different videostab filter

Marco Gittler marco at gitma.de
Sun Sep 11 08:34:10 UTC 2011

Am 11.09.2011 um 01:29 schrieb Dan Dennedy:

> 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.
This was needed because it did not compile on mac. (filter_videostab.c also)
> 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"'
Tt is not ready to merge now, it is only a quick an dirty test of the algo itself, to see first results. 
Makefile must be changed to respect these settings later.
> 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
> like
>    if (dat && dat->data){
> and
>    (*format==mlt_image_rgb24?0:1)

This is only a first quick test. i had problems with framesize of yuv420 data. 
The size*3/2 seems to be to small and cause segfault (must be investigated)
> 4) Remove the commented code that obviously no longer belongs.

This should be all done if the rest works fully. 
> 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."

This is a good hint. i will try to change these things later (after vacation )
> 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().

there must be al lot of code cleanup, since i was working on get the videostab2 code to work with mlt.
> 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.

Thanks, will be changed also when i'm working on it.
> 9) There is a printf() in filter_get_image().

This will be changed into mlt_log… also.

The whole code is still in testing stage and should me an others give a first look.
After that look if found, that it would be a bit better code to stabilize the video.
After resolving the last issues and change the code to have full mlt coding conversions, we could merge this later, but not this time.

But very kind of you to find out some fundamental things that must be changed to.
I will try to change most of this in 1-2 week(s).
I hope it is also for others to see, that this code coudl be usefull.

regards marco

> -- 
> +-DRD-+
> ------------------------------------------------------------------------------
> Malware Security Report: Protecting Your Business, Customers, and the 
> Bottom Line. Protect your business and customers by understanding the 
> threat from malware and how it can impact your online business. 
> http://www.accelacomm.com/jaw/sfnl/114/51427462/
> _______________________________________________
> Mlt-devel mailing list
> Mlt-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mlt-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3721 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20110911/6fe2c87d/attachment.p7s>

More information about the Kdenlive mailing list