_pixelLayout and _paletteLayout are of type
RGBComponentArray. A corresponding
RGBAComponent_t is declared in AAFTypes.h
However, in the 9 Dec 2003 version of the V1.0.1 spec
their type is documented as RGBALayout. There is no
such type in AAFTypes.h. This could be mildly confusing
to a new developer.
2)
The Pallete property is documented as having
type "DataValue" in the V1.0.1 specification. Section
21.1 of the spec states that DataValue "Specifies
essence or a block of data whose type is specified by a
data kind.".
The _palette property, in ImplAAFRGBADescriptor.h, is
declared as a fixed array of aafUInt8. There is also a
type def in AAFTypes.h that declares aafDataValue_t to
be a pointer to an aafUInt8.
Nothing is really wrong here, but I dont think the use
of DataValue in the spec does not make it clear that
the property is an array of bytes.
3)
In the Conditional Rule 1 note, the specification
states: If the Pixel Layout property includes a P,
then the RGBADescriptor object shall have the Pallet,
PaletteLayout, and PaletteStructure properties.
But
PaletteStructure is not a documented
RGBADescriptor property.
Logged In: YES
user_id=239292
Another comment...
4)
The GetPallete(), GetPalleteSize(), GetPaletteLayout(), and
GetPaletteLayoutElements() do not check if the property is
present and return the appropriate error code. The methods
have buffer size checks that, presamably, prevent accessing
non-existant property data. However, this is not consistent
with most optional property access methods (of other
classes).