On Tue, Oct 28, 2008 at 11:10 AM, Jean-Michel Pour? <jm at poure.com> wrote: > On Tue, 2008-10-28 at 10:53 -0700, Dan Dennedy wrote: >> I plan to add more interpolation capabilities at the framework level >> similar to the way mlt_geometry works today. Therefore, I suggest >> using a single property with a value syntax following: >> [frame=]N[;[frame=N]]*. When "frame" = -1, then it means the "end." >> (-2 means second last frame and so on.) You can actually use >> mlt_geometry for this now as it actually a fairly generic thing that >> contains and interpolates up to five floats per key frame allowing all >> sorts of characters (except '=') as delimiter. (See man strtod for the >> rules - whatever endptr points to ought to be the delimiter.) > > Keyframes are really needed. > This is my #1 feature, with non-destructive rendering. > > Do you think it would be possible to name keyframes, just as they work > in Final Cut Pro. Each keyframe can have a name, beginning and end. > > On each keyframe, you can add one or several effects.
Please do not confuse UI with a library. Keyframes are not something to which you attach effects at the MLT level. Rather, various properties are keyframe-able; already there are already several. For example, mix level for cross fade or the compositing rectangle position and size. Currently, there is rather specific support for keyframed and interpolated "geometry-like" property values in MLT (mlt_geometry). A module can choose to do it is own way for any property, and some of them do. The point is that I want to make this a framework facility for any type of mlt_property so that it remains consistent across modules. As for naming them, well, I don't see a reasonable way to do that without fucking up the concise syntax that we have thus far. I suppose an app could figure out a way to do it. Or, a side-property like foo.key.names=[frame=]Name[;[frame=Name]]* might work. -- +-DRD-+
