RGBADescriptorImpl (Media Authoring with Java API)
Date: 2016-02-05

tv.amwa.maj.model.impl

## Class RGBADescriptorImpl

- java.lang.Object
- - tv.amwa.maj.model.impl.InterchangeObjectImpl
  - - tv.amwa.maj.model.impl.EssenceDescriptorImpl
    - - tv.amwa.maj.model.impl.AAFFileDescriptorImpl
      - - tv.amwa.maj.model.impl.PictureDescriptorImpl
        - - tv.amwa.maj.model.impl.RGBADescriptorImpl

- All Implemented Interfaces:
    Serializable, Cloneable, QAAFFileDescriptor, MediaEntity, MetadataObject, AAFFileDescriptor, EssenceDescriptor, InterchangeObject, PictureDescriptor, RGBADescriptor

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=10496,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="RGBADescriptor",
                  description="The RGBADescriptor class specifies that a File SourcePackage is associated with video essence formatted with three color component or with three color components and an alpha component as specified in this document.",
                  symbol="RGBADescriptor")
      public class RGBADescriptorImpl
      extends PictureDescriptorImpl
      implements RGBADescriptor, Serializable, Cloneable

  Implements the description of a file of video essence formatted with three color components or with three color components and an alpha component.

  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class tv.amwa.maj.model.impl.InterchangeObjectImpl

      `ObjectClassPropertyID`

    - ### Fields inherited from interface tv.amwa.maj.model.RGBADescriptor

      `ALPHAMAXREF_DEFAULT, ALPHAMINREF_DEFAULT, COMPONENTMAXREF_DEFAULT, COMPONENTMINREF_DEFAULT, SCANNINGDIRECTION_DEFAULT`

    - ### Fields inherited from interface tv.amwa.maj.model.PictureDescriptor

      `ALPHATRANSPARENCY_DEFAULT, DISPLAYF2OFFSET_DEFAULT, IMAGEALIGNMENTFACTOR_DEFAULT, IMAGEENDOFFSET_DEFAULT, IMAGESTARTOFFSET_DEFAULT, STOREDF2OFFSET_DEFAULT, Uncompressed`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RGBADescriptorImpl()`
    `RGBADescriptorImpl(ContainerDefinition containerFormat, int storedHeight, int storedWidth, LayoutType frameLayout, int[] videoLineMap, Rational imageAspectRatio, RGBAComponent[] pixelLayout)` Creates and initalizes a new RGBA descriptor without a palette.
    `RGBADescriptorImpl(ContainerDefinition containerFormat, int storedHeight, int storedWidth, LayoutType frameLayout, int[] videoLineMap, Rational imageAspectRatio, RGBAComponent[] pixelLayout, byte[] palette, RGBAComponent[] paletteLayout)` Creates and initalizes a new RGBA descriptor that includes a palette.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `RGBADescriptor` | `clone()` Create a cloned copy of this interchange object.
    `int` | `countPaletteLayoutElements()` Returns the number of components per pixel in the palette of this RGBA descriptor.
    `int` | `countPixelLayoutElements()` Returns the number of components per pixel in data represented by this RGBA descriptor.
    `int` | `getAlphaMaxRef()` Returns the maximum alpha value of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).
    `int` | `getAlphaMinRef()` Returns the minimum alpha value of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).
    `int` | `getComponentMaxRef()` Returns the maximum value for RGB components of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).
    `int` | `getComponentMinRef()` Returns the minimum value for RGB components of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).
    `byte[]` | `getPalette()` Returns the palette property of the RGBA descriptor, which is an array of color values that are used to specify an image.
    `RGBAComponent[]` | `getPaletteLayout()` Returns the layout and structure of the components of a single entry for the palette of the RGBA descriptor.
    `List<String>` | `getPaletteLayoutStringList()`
    `int` | `getPaletteSize()`
    `RGBAComponent[]` | `getPixelLayout()` Returns the layout and structure of the components in a single pixel of data represented by the RGBA descriptor.
    `List<String>` | `getPixelLayoutStringList()`
    `ScanningDirectionType` | `getScanningDirection()` Returns the scanning direction of this RGBA descriptor, which specifies the scanning direction of the image.
    `static RGBAComponent[]` | `initializePixelLayout()`
    `void` | `omitPalette()`
    `void` | `setAlphaMaxRef(Integer alphaMaxRef)` Sets the maximum alpha value of the RGBA descriptor, for example 239 or 959 (8 or 10 bits).
    `void` | `setAlphaMinRef(Integer alphaMinRef)` Sets the minimum alpha value of this RGBA descriptor, for example 16 or 64 (8 or 10 bits).
    `void` | `setComponentMaxRef(Integer componentMaxRef)` Sets the maximum value for RGB components of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).
    `void` | `setComponentMinRef(Integer componentMinRef)` Sets the minimum value for RGB components of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).
    `void` | `setPalette(byte[] palette)` Sets the palette property of the RGBA descriptor, which is an array of color values that are used to specify an image.
    `void` | `setPaletteFromStream(ByteBuffer palette)`
    `void` | `setPaletteLayout(RGBAComponent[] paletteLayoutArray)` Sets the layout and structure of the components of a single entry for the palette of the RGBA descriptor.
    `void` | `setPaletteLayoutFromStream(Object[] paletteLayoutArray)`
    `void` | `setPaletteLayoutStringList(List<String> paletteLayout)`
    `void` | `setPixelLayout(RGBAComponent[] pixelLayoutArray)` Sets the layout and structure of the components in a single pixel of data represented by the RGBA descriptor.
    `void` | `setPixelLayoutFromStream(Object[] pixelLayoutArray)`
    `void` | `setPixelLayoutStringList(List<String> pixelLayout)`
    `void` | `setScanningDirection(ScanningDirectionType scanningDirection)` Sets the scanning direction of this RGBA descriptor, which specifies the scanning direction of the image.

    - ### Methods inherited from class tv.amwa.maj.model.impl.PictureDescriptorImpl

      `areDisplayValuesPresent, areSampledValuesPresent, getActiveFormatDescriptor, getAlphaTransparency, getCodingEquations, getCodingEquationsString, getColorPrimaries, getColorPrimariesString, getDataOffset, getDisplayF2Offset, getDisplayHeight, getDisplayView, getDisplayWidth, getDisplayXOffset, getDisplayYOffset, getFieldDominance, getFrameIndexByteOrder, getFrameLayout, getFrameSampleSize, getImageAlignmentFactor, getImageAspectRatio, getImageAspectRatioString, getImageEndOffset, getImageSize, getImageStartOffset, getPictureCompression, getPictureCompressionString, getResolutionID, getSampledHeight, getSampledView, getSampledWidth, getSampledXOffset, getSampledYOffset, getSignalStandard, getStoredF2Offset, getStoredHeight, getStoredView, getStoredWidth, getTransferCharacteristic, getTransferCharacteristicString, getVideoLineMap, getVideoLineMapSize, initializeFrameLayout, initializeImageAspectRatio, initializeStoredHeight, initializeStoredWidth, initializeVideoLineMap, setActiveFormatDescriptor, setAlphaTransparency, setCodingEquations, setCodingEquationsString, setColorPrimaries, setColorPrimariesString, setDataOffset, setDisplayF2Offset, setDisplayHeight, setDisplayView, setDisplayWidth, setDisplayXOffset, setDisplayYOffset, setFieldDominance, setFrameIndexByteOrder, setFrameLayout, setFrameSampleSize, setImageAlignmentFactor, setImageAspectRatio, setImageAspectRatioString, setImageEndOffset, setImageSize, setImageStartOffset, setPictureCompression, setPictureCompressionString, setResolutionID, setSampledHeight, setSampledView, setSampledWidth, setSampledXOffset, setSampledYOffset, setSignalStandard, setStoredF2Offset, setStoredHeight, setStoredView, setStoredWidth, setTransferCharacteristic, setTransferCharacteristicString, setVideoLineMap, setVideoLineMap`

    - ### Methods inherited from class tv.amwa.maj.model.impl.AAFFileDescriptorImpl

      `describesStaticEssence, getCodec, getContainerFormat, getEssenceLength, getLinkedTrackID, getSampleRate, getSampleRateString, getTwentyFourBitAudio, initializeEssenceLength, initializeSampleRate, setCodec, setContainerFormat, setDescribesStaticEssence, setDescribesTimeVaryingEssence, setEssenceLength, setEssenceLengthFromStream, setLinkedTrackID, setSampleRate, setSampleRateFromStream, setSampleRateString, setTwentyFourBitAudio`

    - ### Methods inherited from class tv.amwa.maj.model.impl.EssenceDescriptorImpl

      `appendLocator, appendSubDescriptor, clearLocators, clearSubDescriptors, countLocators, countSubDescriptors, getComment, getLocatorAt, getLocators, getSubDescriptorAt, getSubDescriptors, insertLocatorAt, insertSubDescriptorAt, prependLocator, prependSubDescriptor, removeLocatorAt, removeSubDescriptorAt`

    - ### Methods inherited from class tv.amwa.maj.model.impl.InterchangeObjectImpl

      `addApplicationPlugin, appendXMLChildren, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getGeneration, getLinkedGenerationID, getLinkedGenerationIDString, getObjectClass, getPersistentID, getPersistentIndex, hashCode, isGenerationTracked, removeApplicationPlugin, removeApplicationPlugin, setLinkedGenerationID, setLinkedGenerationIDString, setObjectClass, setPersistentID, setPersistentIndex, toString`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface tv.amwa.maj.model.PictureDescriptor

      `areDisplayValuesPresent, areSampledValuesPresent, getActiveFormatDescriptor, getAlphaTransparency, getCodingEquations, getColorPrimaries, getDisplayF2Offset, getDisplayHeight, getDisplayView, getDisplayWidth, getDisplayXOffset, getDisplayYOffset, getFieldDominance, getFrameLayout, getImageAlignmentFactor, getImageAspectRatio, getImageEndOffset, getImageStartOffset, getPictureCompression, getSampledHeight, getSampledView, getSampledWidth, getSampledXOffset, getSampledYOffset, getSignalStandard, getStoredF2Offset, getStoredHeight, getStoredView, getStoredWidth, getTransferCharacteristic, getVideoLineMap, getVideoLineMapSize, setActiveFormatDescriptor, setAlphaTransparency, setCodingEquations, setColorPrimaries, setDisplayF2Offset, setDisplayView, setFieldDominance, setFrameLayout, setImageAlignmentFactor, setImageAspectRatio, setImageEndOffset, setImageStartOffset, setPictureCompression, setSampledView, setSignalStandard, setStoredF2Offset, setStoredView, setTransferCharacteristic, setVideoLineMap`

    - ### Methods inherited from interface tv.amwa.maj.model.AAFFileDescriptor

      `getCodec, getContainerFormat, getEssenceLength, getLinkedTrackID, getSampleRate, setCodec, setContainerFormat, setEssenceLength, setLinkedTrackID, setSampleRate`

    - ### Methods inherited from interface tv.amwa.maj.model.EssenceDescriptor

      `appendLocator, appendSubDescriptor, clearLocators, countLocators, countSubDescriptors, getLocatorAt, getLocators, getSubDescriptorAt, getSubDescriptors, insertLocatorAt, insertSubDescriptorAt, prependLocator, prependSubDescriptor, removeLocatorAt, removeSubDescriptorAt`

    - ### Methods inherited from interface tv.amwa.maj.model.InterchangeObject

      `addApplicationPlugin, clearApplicationPlugins, containsApplicationPlugin, containsApplicationPlugin, countApplicationPlugins, deepEquals, disableGenerationTracking, enableGenerationTracking, equals, getApplicationPlugins, getGeneration, getLinkedGenerationID, getObjectClass, isGenerationTracked, removeApplicationPlugin, removeApplicationPlugin, setLinkedGenerationID, setObjectClass, toString`

    - ### Methods inherited from interface tv.amwa.maj.industry.MediaEntity

      `getPersistentID, setPersistentIndex`

- - ### Constructor Detail

    - #### RGBADescriptorImpl

          public RGBADescriptorImpl()

    - #### RGBADescriptorImpl

          public RGBADescriptorImpl(ContainerDefinition containerFormat,
                                    @UInt32
                                    int storedHeight,
                                    @UInt32
                                    int storedWidth,
                                    LayoutType frameLayout,
                                    @VideoLineMap
                                    int[] videoLineMap,
                                    Rational imageAspectRatio,
                                    RGBAComponent[] pixelLayout)
                             throws NullPointerException,
                                    IllegalArgumentException

      Creates and initalizes a new RGBA descriptor without a palette. An RGBA descriptor specifies that a `file source package` is associated with video essence formatted with three color components or with three color components and an alpha component.

      Parameters:
        `containerFormat` - Container mechanism used to store the essence.
        `storedHeight` - Number of pixels in vertical dimension of stored view.
        `storedWidth` - Number of pixels in horizontal dimension of stored view.
        `frameLayout` - Describes whether all data for a complete sample is in one frame or is split into more than one field.
        `videoLineMap` - The scan line in the analog source that corresponds to the beginning of each digitized field. For single-field video, there is 1 value in the array; for interlaced video, there are 2 values in the array.
        `imageAspectRatio` - Describes the ratio between the horizontal size and the vertical size in the intended final image.
        `pixelLayout` - Order and size of the components within the pixel.
      Throws:
        `NullPointerException` - One or more of the arguments is `null`.
        `IllegalArgumentException` - The given values are outside acceptable bounds or the pixel layout requires a palette and a palette is not provided. In this case, use `RGBADescriptor(..., byte[], RGBAComponent[])` instead.

    - #### RGBADescriptorImpl

          public RGBADescriptorImpl(ContainerDefinition containerFormat,
                                    @UInt32
                                    int storedHeight,
                                    @UInt32
                                    int storedWidth,
                                    LayoutType frameLayout,
                                    @VideoLineMap
                                    int[] videoLineMap,
                                    Rational imageAspectRatio,
                                    RGBAComponent[] pixelLayout,
                                    @DataValue
                                    byte[] palette,
                                    RGBAComponent[] paletteLayout)
                             throws NullPointerException,
                                    IllegalArgumentException

      Creates and initalizes a new RGBA descriptor that includes a palette. An RGBA descriptor specifies that a `file source package` is associated with video essence formatted with three color components or with three color components and an alpha component.

      Note that this method can be used to create a descriptor for image data that does not have a palette, although this will result in the storage of redundant data within the descriptor. If not palette is required, use `#RGBADescriptor(tv.amwa.maj.model.ContainerDefinition, int, int, LayoutType, int[], tv.amwa.maj.record.Rational, tv.amwa.maj.record.RGBAComponent[])` instead.

      Parameters:
        `containerFormat` - Container mechanism used to store the essence.
        `storedHeight` - Number of pixels in vertical dimension of stored view.
        `storedWidth` - Number of pixels in horizontal dimension of stored view.
        `frameLayout` - Describes whether all data for a complete sample is in one frame or is split into more than one field.
        `videoLineMap` - The scan line in the analog source that corresponds to the beginning of each digitized field. For single-field video, there is 1 value in the array; for interlaced video, there are 2 values in the array.
        `imageAspectRatio` - Describes the ratio between the horizontal size and the vertical size in the intended final image.
        `pixelLayout` - Order and size of the components within the pixel.
        `palette` - Palette to include with this digital image descriptor.
        `paletteLayout` - Layout of the values within the palette.
      Throws:
        `NullPointerException` - One or more of the arguments is `null`.
        `IllegalArgumentException` - The given values are outside acceptable bounds or the pixel layout requires a palette and an adequate palette is not provided.

  - ### Method Detail

    - #### getAlphaMaxRef

          @MediaProperty(uuid1=67175683,
                         uuid2=3328,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="AlphaMaxRef",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13320,
                         symbol="AlphaMaxRef")
          public int getAlphaMaxRef()

      Description copied from interface: `RGBADescriptor`

      Returns the maximum alpha value of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).

      If this optional property is not present, the default value of 255 is returned.

      Specified by:
        `getAlphaMaxRef` in interface `RGBADescriptor`
      Returns:
        Maximum alpha value of this RGBA descriptor.
      See Also:
        `RGBADescriptor.ALPHAMAXREF_DEFAULT`, `RGBADescriptor.getAlphaMinRef()`, `PictureDescriptor.getAlphaTransparency()`, `RGBAComponentKind.Alpha`

    - #### setAlphaMaxRef

          @MediaPropertySetter(value="AlphaMaxRef")
          public void setAlphaMaxRef(Integer alphaMaxRef)
                                                                        throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the maximum alpha value of the RGBA descriptor, for example 239 or 959 (8 or 10 bits).

      The default value for this optional property is 255. To omit this optional property, call this method with `null`.

      Specified by:
        `setAlphaMaxRef` in interface `RGBADescriptor`
      Parameters:
        `alphaMaxRef` - Maximum alpha value of this RGBA descriptor.
      Throws:
        `IllegalArgumentException` - The given maximum alpha reference level is negative.
      See Also:
        `RGBADescriptor.ALPHAMAXREF_DEFAULT`, `RGBADescriptor.setAlphaMinRef(Integer)`, `PictureDescriptor.getAlphaTransparency()`, `RGBAComponentKind.Alpha`

    - #### getAlphaMinRef

          @MediaProperty(uuid1=67175683,
                         uuid2=3584,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="AlphaMinRef",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13321,
                         symbol="AlphaMinRef")
          public int getAlphaMinRef()

      Description copied from interface: `RGBADescriptor`

      Returns the minimum alpha value of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).

      If this optional property is not present, the default value of 0 is returned.

      Specified by:
        `getAlphaMinRef` in interface `RGBADescriptor`
      Returns:
        Minimum alpha value of this RGBA descriptor.
      See Also:
        `RGBADescriptor.ALPHAMINREF_DEFAULT`, `RGBADescriptor.getAlphaMaxRef()`, `PictureDescriptor.getAlphaTransparency()`, `RGBAComponentKind.Alpha`

    - #### setAlphaMinRef

          @MediaPropertySetter(value="AlphaMinRef")
          public void setAlphaMinRef(Integer alphaMinRef)
                                                                        throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the minimum alpha value of this RGBA descriptor, for example 16 or 64 (8 or 10 bits).

      The default value for this property is 0. To omit this optional property, call this method with `null`.

      Specified by:
        `setAlphaMinRef` in interface `RGBADescriptor`
      Parameters:
        `alphaMinRef` - Minimum alpha value of this RGBA descriptor.
      Throws:
        `IllegalArgumentException`
      See Also:
        `RGBADescriptor.ALPHAMINREF_DEFAULT`, `RGBADescriptor.setAlphaMaxRef(Integer)`, `PictureDescriptor.getAlphaTransparency()`, `RGBAComponentKind.Alpha`

    - #### getComponentMaxRef

          @MediaProperty(uuid1=67175683,
                         uuid2=2816,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="ComponentMaxRef",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13318,
                         symbol="ComponentMaxRef")
          public int getComponentMaxRef()

      Description copied from interface: `RGBADescriptor`

      Returns the maximum value for RGB components of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).

      If this optional property is not present, its default value of 255 is returned.

      Specified by:
        `getComponentMaxRef` in interface `RGBADescriptor`
      Returns:
        Maximum value for RGB components of this RGBA descriptor.
      See Also:
        `RGBADescriptor.COMPONENTMAXREF_DEFAULT`, `RGBADescriptor.getComponentMinRef()`, `RGBAComponentKind.Red`, `RGBAComponentKind.Green`, `RGBAComponentKind.Blue`

    - #### setComponentMaxRef

          @MediaPropertySetter(value="ComponentMaxRef")
          public void setComponentMaxRef(Integer componentMaxRef)
                                                                                throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the maximum value for RGB components of this RGBA descriptor, for example 239 or 959 (8 or 10 bits).

      The default value for this optional property is 255. To omit this optional property, call this method with `null`.

      Specified by:
        `setComponentMaxRef` in interface `RGBADescriptor`
      Parameters:
        `componentMaxRef` - Maximum value for RGB components of this RGBA descriptor.
      Throws:
        `IllegalArgumentException` - The given component maximum reference level is negative.
      See Also:
        `RGBADescriptor.COMPONENTMAXREF_DEFAULT`, `RGBADescriptor.setComponentMinRef(Integer)`, `RGBAComponentKind.Red`, `RGBAComponentKind.Green`, `RGBAComponentKind.Blue`

    - #### getComponentMinRef

          @MediaProperty(uuid1=67175683,
                         uuid2=3072,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="ComponentMinRef",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13319,
                         symbol="ComponentMinRef")
          public int getComponentMinRef()

      Description copied from interface: `RGBADescriptor`

      Returns the minimum value for RGB components of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).

      If this optional property is not present, its default value of 0 is returned.

      Specified by:
        `getComponentMinRef` in interface `RGBADescriptor`
      Returns:
        Minimum value for RGB components.
      See Also:
        `RGBADescriptor.COMPONENTMINREF_DEFAULT`, `RGBADescriptor.getComponentMaxRef()`, `RGBAComponentKind.Red`, `RGBAComponentKind.Green`, `RGBAComponentKind.Blue`

    - #### setComponentMinRef

          @MediaPropertySetter(value="ComponentMinRef")
          public void setComponentMinRef(Integer componentMinRef)
                                                                                throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the minimum value for RGB components of the RGBA descriptor, for example 16 or 64 (8 or 10 bits).

      The default value for this optional property is 0. To omit this optional property, call this method with `null`.

      Specified by:
        `setComponentMinRef` in interface `RGBADescriptor`
      Parameters:
        `componentMinRef` - Minimum value for RGB components of the RGBA descriptor.
      Throws:
        `IllegalArgumentException` - The given component minimum reference level is negative.
      See Also:
        `RGBADescriptor.COMPONENTMINREF_DEFAULT`, `RGBADescriptor.setComponentMaxRef(Integer)`, `RGBAComponentKind.Red`, `RGBAComponentKind.Green`, `RGBAComponentKind.Blue`

    - #### getPalette

          @MediaProperty(uuid1=67175683,
                         uuid2=2048,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="Palette",
                         typeName="DataValue",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13315,
                         symbol="Palette")
          public byte[] getPalette()
                                                                                                                                                                                                                                                                                                                                                                    throws PropertyNotPresentException

      Description copied from interface: `RGBADescriptor`

      Returns the palette property of the RGBA descriptor, which is an array of color values that are used to specify an image. The palette is in the form specified by the palette layout. This property is optional.

      Specified by:
        `getPalette` in interface `RGBADescriptor`
      Returns:
        Palette of the RGBA descriptor.
      Throws:
        `PropertyNotPresentException` - The optional palette property is not present in this RGBA descriptor.
      See Also:
        `RGBADescriptor.getPixelLayout()`, `RGBADescriptor.getPaletteLayout()`, `RGBAComponentKind.Palette`

    - #### setPalette

          public void setPalette(byte[] palette)
                          throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the palette property of the RGBA descriptor, which is an array of color values that are used to specify an image. The palette must be in the form specified by the palette layout.

      To omit this optional property, set this value to `null`. If the layout of this RGBA descriptor requires a palette, an `IllegalArgumentException` will be thrown if an attempt is made to omit the palette property.

      Specified by:
        `setPalette` in interface `RGBADescriptor`
      Parameters:
        `palette` - Palette of the RGBA descriptor.
      Throws:
        `IllegalArgumentException` - Cannot omit the palette for an RGBA descriptor that requires a palette.
      See Also:
        `RGBADescriptor.getPixelLayout()`, `RGBADescriptor.getPaletteLayout()`, `RGBAComponentKind.Palette`

    - #### setPaletteFromStream

          @MediaPropertySetter(value="Palette")
          public void setPaletteFromStream(ByteBuffer palette)

    - #### omitPalette

          @MediaPropertyClear(value="Palette")
          public void omitPalette()
                                                                throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### countPaletteLayoutElements

          public int countPaletteLayoutElements()

      Description copied from interface: `RGBADescriptor`

      Returns the number of components per pixel in the palette of this RGBA descriptor.

      Specified by:
        `countPaletteLayoutElements` in interface `RGBADescriptor`
      Returns:
        Number of component per pixel in the palette of this RGBA descriptor.
      See Also:
        `RGBADescriptor.getPaletteLayout()`

    - #### getPaletteSize

          public int getPaletteSize()

    - #### getPaletteLayout

          @MediaProperty(uuid1=67175683,
                         uuid2=2304,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PaletteLayout",
                         typeName="RGBALayout",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13316,
                         symbol="PaletteLayout")
          public RGBAComponent[] getPaletteLayout()
                                                                                                                                                                                                                                                                                                                                                                                                throws PropertyNotPresentException

      Description copied from interface: `RGBADescriptor`

      Returns the layout and structure of the components of a single entry for the palette of the RGBA descriptor. The layout array contains RGBAComponent items. Each item defines a size in bits for a component and the kind of component (red, green etc.).

      Specified by:
        `getPaletteLayout` in interface `RGBADescriptor`
      Returns:
        Array of RGBA components, indicating the order and size of components in the palette of the RGBA descriptor.
      Throws:
        `PropertyNotPresentException` - The optional palette layout property is not present for this RGBA descriptor.
      See Also:
        `RGBADescriptor.getPalette()`, `RGBAComponent`, `RGBAComponentKind.Palette`

    - #### setPaletteLayout

          public void setPaletteLayout(RGBAComponent[] paletteLayoutArray)
                                throws IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the layout and structure of the components of a single entry for the palette of the RGBA descriptor. The layout array contains RGBAComponent items. Each item defines a size in bits for a component and the kind of component (red, green etc.).

      If you set less than 8 entries, the remaining entries will be padded with `RGBAComponentKind.None` and a size of zero.

      To omit this optional property, call this method with `null`. If the RGBA descriptor requires a palette and an attempt is made to omit the property, an `IllegalArgumentException` will be thrown.

      Specified by:
        `setPaletteLayout` in interface `RGBADescriptor`
      Parameters:
        `paletteLayoutArray` - Array of RGBA components, indicating the order and size of components in the palette of the RGBA descriptor.
      Throws:
        `IllegalArgumentException` - Cannot omit the palette layout for an RGBA descriptor that requires a palette, or the given layout refers to a palette.
      See Also:
        `RGBADescriptor.getPalette()`, `RGBAComponent`, `RGBAComponentKind.Palette`

    - #### setPaletteLayoutFromStream

          @MediaPropertySetter(value="PaletteLayout")
          public void setPaletteLayoutFromStream(Object[] paletteLayoutArray)

    - #### getPixelLayout

          @MediaProperty(uuid1=67175683,
                         uuid2=1536,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PixelLayout",
                         typeName="RGBALayout",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=13313,
                         symbol="PixelLayout")
          public RGBAComponent[] getPixelLayout()

      Description copied from interface: `RGBADescriptor`

      Returns the layout and structure of the components in a single pixel of data represented by the RGBA descriptor. The layout array contains RGBAComponent items. Each item defines a size in bits for a component and the kind of component (red, green etc.).

      Specified by:
        `getPixelLayout` in interface `RGBADescriptor`
      Returns:
        Array of RGBA components, indicating the order and size of components in the data represented by the RGBA descriptor.

    - #### setPixelLayout

          public void setPixelLayout(RGBAComponent[] pixelLayoutArray)
                              throws NullPointerException,
                                     IllegalArgumentException

      Description copied from interface: `RGBADescriptor`

      Sets the layout and structure of the components in a single pixel of data represented by the RGBA descriptor. The layout array contains RGBAComponent items. Each item defines a size in bits for a component and the kind of component (red, green etc.).

      If you set less than 8 entries, the remaining entries will be padded with `RGBAComponentKind.None` and a size of zero.

      Specified by:
        `setPixelLayout` in interface `RGBADescriptor`
      Parameters:
        `pixelLayoutArray` - Array of RGBA components, indicating the order and size of components in the data represented by the RGBA descriptor.
      Throws:
        `NullPointerException` - The given array of RGBA components is `null` or one or more of the elements of the array are `null`.
        `IllegalArgumentException`
      See Also:
        `RGBAComponent`, `RGBAComponentKind`

    - #### setPixelLayoutFromStream

          @MediaPropertySetter(value="PixelLayout")
          public void setPixelLayoutFromStream(Object[] pixelLayoutArray)
                                                                                  throws NullPointerException,
                                                                                         IllegalArgumentException,
                                                                                         ClassCastException

      Throws:
        `NullPointerException`
        `IllegalArgumentException`
        `ClassCastException`

    - #### initializePixelLayout

          public static final RGBAComponent[] initializePixelLayout()

    - #### countPixelLayoutElements

          public int countPixelLayoutElements()

      Description copied from interface: `RGBADescriptor`

      Returns the number of components per pixel in data represented by this RGBA descriptor.

      Specified by:
        `countPixelLayoutElements` in interface `RGBADescriptor`
      Returns:
        Number of components per pixel in data represented by this RGBA descriptor.

    - #### getScanningDirection

          @MediaProperty(uuid1=67175428,
                         uuid2=256,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="ScanningDirection",
                         typeName="ScanningDirectionType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13317,
                         symbol="ScanningDirection")
          public ScanningDirectionType getScanningDirection()

      Description copied from interface: `RGBADescriptor`

      Returns the scanning direction of this RGBA descriptor, which specifies the scanning direction of the image. The value exactly matches the equivalent property in SMPTE 268M.

      This property is optional and has a default value of `ScanningDirectionType.LeftToRightTopToBottom`. If the optional property is not present, the default value is returned.

      Specified by:
        `getScanningDirection` in interface `RGBADescriptor`
      Returns:
        Scanning direction of this RGBA descriptor.
      See Also:
        `RGBADescriptor.SCANNINGDIRECTION_DEFAULT`, `ScanningDirectionType`

    - #### setScanningDirection

          @MediaPropertySetter(value="ScanningDirection")
          public void setScanningDirection(ScanningDirectionType scanningDirection)

      Description copied from interface: `RGBADescriptor`

      Sets the scanning direction of this RGBA descriptor, which specifies the scanning direction of the image. The value exactly matches the equivalent property in SMPTE 268M.

      This property is optional and has a default value of `ScanningDirectionType.LeftToRightTopToBottom`. To omit this optional property, call this method with `null`.

      Specified by:
        `setScanningDirection` in interface `RGBADescriptor`
      Parameters:
        `scanningDirection` - Scanning direction of this RGBA descriptor.
      See Also:
        `RGBADescriptor.SCANNINGDIRECTION_DEFAULT`, `ScanningDirectionType`

    - #### clone

          public RGBADescriptor clone()

      Description copied from interface: `InterchangeObject`

      Create a cloned copy of this interchange object.

      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `AAFFileDescriptor`
      Specified by:
        `clone` in interface `EssenceDescriptor`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `PictureDescriptor`
      Specified by:
        `clone` in interface `RGBADescriptor`
      Overrides:
        `clone` in class `PictureDescriptorImpl`
      Returns:
        Cloned copy of this interchange object.

    - #### getPixelLayoutStringList

          public List<String> getPixelLayoutStringList()

    - #### setPixelLayoutStringList

          public void setPixelLayoutStringList(List<String> pixelLayout)

    - #### getPaletteLayoutStringList

          public List<String> getPaletteLayoutStringList()

    - #### setPaletteLayoutStringList

          public void setPaletteLayoutStringList(List<String> paletteLayout)

(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.