stabilization plugin 0.61 patch

Georg Martius <[email protected]> Mon, 26 Oct 2009 13:12:27 +0100
Newsgroups gmane.comp.video.transcode.devel
Message-ID <[email protected]>
--Boundary-00=_rIZ5K2OtwNV2Ylk
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi,

please find attached a patch for 1.1.x hg branch to update the stabilization 
plugin to the most recent development. This should also apply to 1.2.0. I 
could not test it because 1.2.0 didn't work for me.
(Patch created with hg export)

New features are
 - measurement fields with low contrast are ignored
 - optional drawing of measurement fields and detected transformations in 
stabilization run (first pass)
- zooming to get rid of jiggling borders (there is also an automatic mode)
- sharpening of the stabilized movie to compensate for interpolation effects 
due to rotation/zooming

More info and sample videos at [1].

I have some questions:
1) Both of my plugins use the new filter interface. However tc_modinfo -i 
transform uses the inspect function whereas tc_modinfo -i stabilize calls the 
configure function with option "help". This is really confusing.
2) The transcode_filter manpage does not include the plugins. Can I do 
something about it.

Regards,
	Georg

[1] http://public.hronopik.de/vid.stab/

-- 
---- Georg Martius,  Tel: +49 177 6413311  -----
--------- http://georg.hronopik.de -------------

--Boundary-00=_rIZ5K2OtwNV2Ylk
Content-Type: application/x-gzip;
	name="transcode-1.1.X-stabilize-0.61.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="transcode-1.1.X-stabilize-0.61.patch.gz"

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

--Boundary-00=_rIZ5K2OtwNV2Ylk--