On Mon, May 16, 2011 at 9:41 PM, Brian Matherly <[email protected]> wrote:
> Dan,
>
> While working with the data_show filter, I found that it doesn't work 
> properly in the latest git. But it does work properly in 0.7.2. I narrowed 
> the problem down to commit d795.
>
> To test the problem, run this command:
> melt file.mp4 meta.attr.titles=1 meta.attr.titles.markup=#timecode# -attach 
> data_show dynamic=1
> It's the example for timecode overlay on the FAQ.
>
> If you run that command with 0.7.2, the timecode is displayed. If you run 
> that command with the latest git, the video is choppy (at least on my 
> computer) and the overlay is not displayed.
>

The additional choppiness might come from a revised frame dropping
algorithm that is more eager at dropping video frames to keep the
audio continuous and to keep up with realtime. Since that is the goal
of frame-dropping, it should be more correct now. The old algorithm
arbitrarily rendered a video frame after every 5 dropped frames.
Compare real_time=1 with real_time=0 on the consumer and check CPU
usage to see that even with real_time=1 one CPU is nearly fully
utilized.

> I have attached a patch for your consideration. It adds back the single line 
> that makes it work - passing along the consumer_aspect_ratio property from 
> props_a to props_b. I don't claim this is the proper fix. I suspect that 
> something is broken in mlt_transition.c where you added the code to pass 
> properties from a_props to b_props:
>
>
>     mlt_properties_pass_list( b_props, a_props, "consumer_deinterlace, 
> deinterlace_method, consumer_aspect_ratio" );
>
> maybe mlt_properties_pass_list isn't working properly?
>
> Anyway, rather than chase it any further, I thought you might realize the 
> problem right away.

I fixed it in a different way. The consumer_aspect_ratio property is
legacy from before I added profile. It still exists in many places,
but not so easy to get rid of, and I am choosing to be a bot
conservative at how aggressively I refactor.

> Also, in the attached patch, I draw your attention to
>
>      mlt_properties_set_int( a_props, "consumer_deinterlace", 1 );
> The function was called twice with the same parameters. I suspect that you 
> meant to call the second one with "b_props".
>

You are correct. fixed.

> If the solution isn't obvious to you, or you don't have time to chase it, let 
> me know and I can dig deeper.
>
> Let me know if there is anything I can do to help. Thanks,
>
>
> ~Brian

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Mlt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to