Dylan Reeve
Well-known member
A unique clip identifier is a good idea. But giving every frame the same UUID + Frame number is a big mistake and missing the point. UUID's are an essentially limitless addressing space. If you want to know what clip a frame is a member of, include the parent clip UUID in the metadata of each frame. Create a new UUID for any derived frame and point to the parent frame by it's UUID, in fact hold the entire history of derived frames in a tree of UUID's. This all amounts to just kilobytes per frame.
Indeed the relationships can be stored in that way, but it does become a lot harder to manage (although it is possible to describe more complex relationships).
Describing and entire sequence as a series of completely unique frame IDs certainly lacks the efficiency of a system where elements can be described with a start and end.
A root UUID with further descriptors can still provide the benefits in terms of global uniqueness.
On further thought the idea of a revision number is somewhat untenable, as it lacks centralised control meaning duplicates are very possible (revision one gets into two different processes, both output what they think is revision two).
So now I'd be more inclined to have something like:
[Clip UUID]-[Frame Count]-[Revision ID]
Where revision is a further unique ID, allowing for all revisions to co-exist with a common lineage.
The biggest problem here arises when a new frame is the result of more than one source frame, one has to be chosen as the ID which continues. Although obviously the relation to additional source frames can be described in further metadata.
There is no reason, of course, that both these concepts could co-exist (after all there's no shortage of UUIDs).