2014/1/8 Brian Matherly <pez4br...@yahoo.com>

> > I'm glad, that you are willing to help, especially when
> > I got a problem to understand, how the MLT handles
> > things internally. ;p
> > I've tried to encapsulate both detect and transform
> > filters in a new one, and delegate the processing to
> > child filters, but I have no idea, how to retrieve
> > properties > from child back to parent filter and all
> > results are lost.
>
> > So, I'll just leave it to you, as my current knowledge
>
> > is not sufficient to do this task. :)
>
>
> Based on my analysis, I don't think it will work very well to encapsulate
> detect and transform. I think we should simply combine the detect and
> transform filters into a single filter. In "vid.stab.detect", you used a
> clever trick to rename "mlt_service" to "vid.stab.transform" so that
> running melt with the MLT XML will cause the transform filter to be used on
> the second pass. This is a very clevery use of properties, but it only
> works for the two-pass melt method and isn't friendly for an application
> which will keep an instance of the detect filter and re-run that. Also,
> changing the "mlt_service" property is not a precedent we want to set.
>
> The new filter name could be "vidstab" (notice there is no "eo"). The
> behavior should be the same as the "videostab2" filter.
>
> Jakub,
> Would you be willing to combine the detect and transform filters? If not,
> I should be able to get around to it in the next week or so.
>

Sure, I can do it. I've already got an idea to add an if() to
process_filter functions, so it would look like:
if(there are no vectors) {
  mlt_frame_push_get_image(frame, get_image_and_detect);
} else {
  mlt_frame_push_get_image(frame, get_image_and_transform);
}


>
> Also, the deshake filter looks good. But it will provide strange results
> when seeking because it will be using information from frames that do not
> immediately proceed the frame being processed. It might be a good idea to
> detect seeking and call clear_deshake(). I'm willing to commit the module
> without this change, but I thought I would mention it.
>
>
Hmm, there is a "refresh" property that controls when the stabilization
data should be reset. Wasn't it supposed to be used in cases like seeking,
etc.?
However, clearing this data won't help much, as in your case it is almost
impossible to always get the same transformation without knowing backward
frames. Almost, because there is a possibility to save frames while
playing, so they could be replayed by the filter when necessary.

-- 
Regards,
Jakub Ksiezniak
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to