Menu

#66 sCurrentAAFObjectModelVersion

open
nobody
None
5
2003-12-26
2003-12-26
Jim Trainor
No

sCurrentAAFObjectModelVersion is used to set the value
of the (optional) object model property in the header.

It is assigned the (hard coded) value 0 in
ImplAAFFile.cpp.

ObjectModelVersion is a property of the header that is
documented to be optional with the default value "V1".

A couple of issues:

1) The value is hardcoded. It should should be
computed using the version information stored in
AAFSDKBuild.h - or the like.

2) There is a big long comment, repeated at the end of
this message, stating the the property should not be
assigned a value unless the object model revision is not
zero. This is "so that hackers examining written files
won't know that a mechanism exists to mark future
incompatible versions.". Well... that just seems silly
when the code is open source and the spec documents
the existance of the property.

Why not just make the property mandatory? What value
does optional version information have? Anybody who
reads the property value will simply assume the version
is "v1" if it is not present. So what has be accomplished
by not assigning a value?

====================================
// BobT Fri Jan 21 14:37:43 EST 2000: the default
behavior is
// that if the version isn't present, it's assumed to
Version
// 0. Therefore if the current version is 0, don't write out
// the property. We do this so that hackers examining
written
// files won't know that a mechanism exists to mark
future
// incompatible versions, and so will work harder to make
any
// future changes compatible.

Discussion