[Kdenlive-devel] How to handle support for old file format versions reliably

Dan Dennedy dan at dennedy.org
Sun Nov 23 06:14:12 UTC 2008

On Sat, Nov 22, 2008 at 7:48 AM, Mads Bondo Dydensborg
<mads at dydensborg.dk> wrote:
> IMHO, we need to make absolutely sure that we can support our old file formats
> from now on, that is, we do not break support for pfv 0.8 in any future
> version (ok, in 3-4 years, perhaps the situation is different, but you get my
> point).

I am worried about how the introduction generic keyframes in MLT will
affect this goal. Currently, this is done ad hoc (start and end
properties) and with mlt_geometry. Furthermore, each effect decides
how to do it. Kdenlive will have to have a fairly extensive set of
rules to convert these to the new format (to be determined) on an
effect-by-effect basis.

> The current method of supporting old file versions is implemented in the
> KdenliveDoc class. Upon reading a file, it matches its version against 0.8
> (by comparing a double/float using == btw, which is always dangerous). If

I think it is dangerous only if there was some math operations on one
of the values.

> The convertDocument should probably also indicate to the caller if the version
> actually changed, and allow the GUI to ask something like: "You have loaded a
> project saved in an older version of Kdenlives file format. The project has
> been succesfully converted to the new format. Would you like to write your
> project to a new file, or overwrite the old one". I am not sure this is
> strictly needed though, but perhaps it will save the day when we at some
> point introduces a bug in the conversion routines, or when somebody loads and
> edits a project in a new version of kdenlive, then discovers that it can no
> longer be loaded in an older version of kdenlive.

I think it is a good idea for a team, where some rogue member decides
to try out the new beta. Even a single user might try out a beta or
new version before committing to it and make a mistaken conversion.

More information about the Kdenlive mailing list