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

tv.amwa.maj.model.impl

## Class CDCIDescriptorImpl

- 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.CDCIDescriptorImpl

- All Implemented Interfaces:
    Serializable, Cloneable, QAAFFileDescriptor, MediaEntity, MetadataObject, XMLSerializable, AAFFileDescriptor, CDCIDescriptor, EssenceDescriptor, InterchangeObject, PictureDescriptor
  Direct Known Subclasses:
    MPEGVideoDescriptorImpl

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=10240,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="CDCIDescriptor",
                  description="The CDCIDescriptor class specifies that a file SourcePackage is associated with video essence formatted with one luminance component and two color-difference components as specified in this document.",
                  symbol="CDCIDescriptor")
      public class CDCIDescriptorImpl
      extends PictureDescriptorImpl
      implements CDCIDescriptor, CDCIDescriptor, Serializable, XMLSerializable, Cloneable

  Implements the description of a file of video essence formatted with one luminance component and two color-difference components, as specified according to the AAF object specification v1.1. This format is also known as "YCbCr".

  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.CDCIDescriptor

      `ALPHASAMPLEDEPTH_DEFAULT, BLACKREFLEVEL_DEFAULT, COLORSITING_DEFAULT, PADDINGBITS_DEFAULT, REVERSEDBYTEORDER_DEFAULT, VERTICALSUBSAMPLING_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
    `CDCIDescriptorImpl()` Default constructor is not public to avoid unset required fields.
    `CDCIDescriptorImpl(ContainerDefinition containerFormat, int storedHeight, int storedWidth, LayoutType frameLayout, int[] videoLineMap, Rational imageAspectRatio, int horizontalSubsampling, int componentDepth)` Creates and initializes a new CDCI descriptor, which specifies that a `file source package` is associated with video essence that is formatted with one luminance component and two color-difference components.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CDCIDescriptor` | `clone()` Create a cloned copy of this interchange object.
    `int` | `getAlphaSampleDepth()` Returns the alpha sample depth property of the CDCI descriptor, which specifies the number of bits used to store the alpha component.
    `int` | `getBlackRefLevel()` Returns the black reference level property for this CDCI descriptor, which specifies the digital luminance component value associated with black.
    `int` | `getColorRange()` Returns the color range property for this CDCI descriptor, which specifies the range of allowable digital chrominance component values.
    `ColorSitingType` | `getColorSiting()` Returns the color siting property of the CDCI descriptor, which specifies how to compute subsampled chrominance values.
    `int` | `getComponentDepth()` Returns the component width property of this CDCI descriptor, which specifies the number of bits used to store each component.
    `int` | `getHorizontalSubsampling()` Returns the horizontal subsampling property for this CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the horizontal direction.
    `long` | `getOffsetToFrameIndexes64()`
    `short` | `getPaddingBits()` Returns the padding bits property of the CDCI descriptor, which specifies the number of bits padded to each pixel.
    `boolean` | `getReversedByteOrder()` Sets the reversed byte order property of the CDCI descriptor, which specifies whether the luma and chroma sample order is reversed relative to the order defined by ITU-R BT.601.
    `int` | `getVerticalSubsampling()` Returns the vertical subsampling property of the CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the vertical direction.
    `int` | `getWhiteRefLevel()` Sets the white reference level property of this CDCI descriptor, which specifies the digital luminance component component value associated with white.
    `static int` | `initializeComponentDepth()`
    `static int` | `initializeHorizontalSubsampling()`
    `void` | `setAlphaSampleDepth(Integer alphaSampleDepth)` Sets the alpha sample depth property of the CDCI descriptor, which specifies the number of bits used to store the alpha component.
    `void` | `setBlackRefLevel(Integer blackRefLevel)` Sets the black reference level property for this CDCI descriptor, which specifies the digital luminance component value associated with black.
    `void` | `setBlackRefLevelFromStream(Integer blackRefLevel)`
    `void` | `setColorRange(Integer colorRange)` Sets the color range property for this CDCI descriptor, which specifies the range of allowable digital chrominance component values.
    `void` | `setColorRangeFromStream(Integer colorRange)`
    `void` | `setColorSiting(ColorSitingType colorSiting)` Sets the color siting property of the CDCI descriptor, which specifies how to compute subsampled chrominance values.
    `void` | `setComponentDepth(int componentDepth)` Sets the component depth property of this CDCI descriptor, which specifies the number of bits used to store each component.
    `void` | `setHorizontalSubsampling(int horizontalSubsampling)` Sets the horizontal subsampling property for this CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the horizontal direction.
    `void` | `setOffsetToFrameIndexes64(Long offsetToFrameIndexes64)`
    `void` | `setPaddingBits(Short paddingBits)` Sets the padding bits property of this CDCI descriptor, which specifies the number of bits padded to each pixel.
    `void` | `setReversedByteOrder(Boolean reversedByteOrder)` Sets the reversed byte order property of the CDCI descriptor, which specifies whether the luma and chroma sample order is reversed relative to the order defined by ITU-R BT.601.
    `void` | `setVerticalSubsampling(Integer verticalSubsampling)` Sets the vertical subsampling property of the CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the vertical direction.
    `void` | `setWhiteRefLevel(Integer whiteRefLevel)` Sets the white reference level property of this CDCI descriptor, which specifies the digital luminance component component value associated with white.
    `void` | `setWhiteRefLevelFromStream(Integer whiteRefLevel)`

    - ### 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.extensions.avid.PictureDescriptor

      `getDataOffset, getFrameIndexByteOrder, getFrameSampleSize, getImageSize, getResolutionID, setDataOffset, setFrameIndexByteOrder, setFrameSampleSize, setImageSize, setResolutionID`

    - ### 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`

    - ### Methods inherited from interface tv.amwa.maj.io.xml.XMLSerializable

      `appendXMLChildren, getComment`

- - ### Constructor Detail

    - #### CDCIDescriptorImpl

          public CDCIDescriptorImpl()

      Default constructor is not public to avoid unset required fields.

    - #### CDCIDescriptorImpl

          public CDCIDescriptorImpl(ContainerDefinition containerFormat,
                                    @UInt32
                                    int storedHeight,
                                    @UInt32
                                    int storedWidth,
                                    LayoutType frameLayout,
                                    @VideoLineMap
                                    int[] videoLineMap,
                                    Rational imageAspectRatio,
                                    @UInt32
                                    int horizontalSubsampling,
                                    @UInt32
                                    int componentDepth)
                             throws NullPointerException,
                                    IllegalArgumentException

      Creates and initializes a new CDCI descriptor, which specifies that a `file source package` is associated with video essence that is formatted with one luminance component and two color-difference components. This format is commonly known as "YCbCr".

      Parameters:
        `containerFormat` - Container mechanism used to store the essence.
        `storedHeight` - Number of pixels in vertical dimension of the stored view.
        `storedWidth` - Number of pixels in horizontal dimension of the 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.
        `horizontalSubsampling` - Ratio of luminance sampling to chrominance sampling in the horizontal direction. For 4:2:2 video, the value is 2, which means that there are twice as many luminance values as there are color-difference values. Legal values are `1`, `2` and `4`.
        `componentDepth` - Number of bits used to store each component. Can have a value of `8`, `10`, or `16`. Each component in a sample is packed contiguously; the sample is filled with the number of bits specified by the optional padding bits property. If the padding bits property is omitted, samples are packed contiguously.
      Throws:
        `NullPointerException` - One or more of arguments is null.
        `IllegalArgumentException` - The given values are not of the permintted ranges.

  - ### Method Detail

    - #### getAlphaSampleDepth

          @MediaProperty(uuid1=67175683,
                         uuid2=1792,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="AlphaSampleDepth",
                         aliases="AlphaSamplingWidth",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13065,
                         symbol="AlphaSampleDepth")
          public int getAlphaSampleDepth()

      Description copied from interface: `CDCIDescriptor`

      Returns the alpha sample depth property of the CDCI descriptor, which specifies the number of bits used to store the alpha component.

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

      Specified by:
        `getAlphaSampleDepth` in interface `CDCIDescriptor`
      Returns:
        Alpha sample depth property of the CDCI descriptor.
      See Also:
        `CDCIDescriptor.ALPHASAMPLEDEPTH_DEFAULT`

    - #### setAlphaSampleDepth

          @MediaPropertySetter(value="AlphaSampleDepth")
          public void setAlphaSampleDepth(Integer alphaSampleDepth)
                                                                                  throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the alpha sample depth property of the CDCI descriptor, which specifies the number of bits used to store the alpha component.

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

      Specified by:
        `setAlphaSampleDepth` in interface `CDCIDescriptor`
      Parameters:
        `alphaSampleDepth` - Alpha sample depth property of the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - The giv en alpha sampling width value is negative.
      See Also:
        `CDCIDescriptor.ALPHASAMPLEDEPTH_DEFAULT`

    - #### getBlackRefLevel

          @MediaProperty(uuid1=67175683,
                         uuid2=768,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="BlackRefLevel",
                         aliases="BlackReferenceLevel",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13060,
                         symbol="BlackRefLevel")
          public int getBlackRefLevel()

      Description copied from interface: `CDCIDescriptor`

      Returns the black reference level property for this CDCI descriptor, which specifies the digital luminance component value associated with black.

      For CCIR-601/2, the value is 16 for 8-bit video and 64 for 10-bit video. For YUV, the value is 0. These are typical values; other values will not be disallowed by the MAJ API implementation.

      The same value is used in CDCI and RGBA when standard colorspace conversion is used.

      If the property is omitted, its default value will be returned.

      Specified by:
        `getBlackRefLevel` in interface `CDCIDescriptor`
      Returns:
        Black reference level of the CDCI descriptor.
      See Also:
        `CDCIDescriptor.BLACKREFLEVEL_DEFAULT`

    - #### setBlackRefLevel

          public void setBlackRefLevel(Integer blackRefLevel)
                                throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the black reference level property for this CDCI descriptor, which specifies the digital luminance component value associated with black.

      For CCIR-601/2, the value is 16 for 8-bit video and 64 for 10-bit video. For YUV, the value is 0. These are typical values; other values will not be disallowed by the MAJ API implementation.

      The same value is used in CDCI and RGBA when standard colorspace conversion is used.

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

      Specified by:
        `setBlackRefLevel` in interface `CDCIDescriptor`
      Parameters:
        `blackRefLevel` - Black reference level of the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - The given black reference level is negative.
      See Also:
        `CDCIDescriptor.BLACKREFLEVEL_DEFAULT`

    - #### setBlackRefLevelFromStream

          @MediaPropertySetter(value="BlackRefLevel")
          public void setBlackRefLevelFromStream(Integer blackRefLevel)
                                                                                      throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### getColorRange

          @MediaProperty(uuid1=67175683,
                         uuid2=1280,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ColorRange",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13062,
                         symbol="ColorRange")
          public int getColorRange()

      Description copied from interface: `CDCIDescriptor`

      Returns the color range property for this CDCI descriptor, which specifies the range of allowable digital chrominance component values. Chrominance values are unsigned and the range is centered on 128 for 8-bit video and 512 for 10-bit video. This value is used for both chrominance components.

      For CCIR-601/2, the range is 225 for 8-bit video and 897 for 10-bit video. For YUV, the range is 255 for 8-bit video and 1023 for 10-bit video. These are typical values; other values will not be disallowed by the MAJ API implementation.

      If this optional property is not present, the default value is returned. The default value is the maximum unsigned integer value for the component size.

      Specified by:
        `getColorRange` in interface `CDCIDescriptor`
      Returns:
        Color range for the CDCI descriptor.
      See Also:
        `CDCIDescriptor.getComponentDepth()`

    - #### setColorRange

          public void setColorRange(Integer colorRange)
                             throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the color range property for this CDCI descriptor, which specifies the range of allowable digital chrominance component values. Chrominance values are unsigned and the range is centered on 128 for 8-bit video and 512 for 10-bit video. This value is used for both chrominance components.

      For CCIR-601/2, the range is 225 for 8-bit video and 897 for 10-bit video. For YUV, the range is 255 for 8-bit video and 1023 for 10-bit video. hese are typical values; other values will not be disallowed by the MAJ API implementation.

      This property is optional. The default value is the maximum unsigned integer value for the component size. To omit this optional property, call this method with `null`.

      Specified by:
        `setColorRange` in interface `CDCIDescriptor`
      Parameters:
        `colorRange` - Color range for the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - Cannot set the color range property of this CDCI descriptor to a negative value.
      See Also:
        `CDCIDescriptor.getComponentDepth()`

    - #### setColorRangeFromStream

          @MediaPropertySetter(value="ColorRange")
          public void setColorRangeFromStream(Integer colorRange)
                                                                                throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### getColorSiting

          @MediaProperty(uuid1=67175681,
                         uuid2=1536,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="ColorSiting",
                         typeName="ColorSitingType",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13059,
                         symbol="ColorSiting")
          public ColorSitingType getColorSiting()

      Description copied from interface: `CDCIDescriptor`

      Returns the color siting property of the CDCI descriptor, which specifies how to compute subsampled chrominance values.

      Valid values are:

      - `ColorSitingType.CoSiting` - To calculate subsampled pixels, take the preceding's pixels color value, discard the other color values and cosite the color with the first luminance value.
      - `ColorSitingType.Averaging` - To calculate subsampled pixels, take the average of the two adjacent pixels' color values and site the color in the center of the luminance pixels.
      - `ColorSitingType.ThreeTap` - To calculate subsampled pixels, take 25 percent of the the previous pixel's color value, 50 percent of the first value and 25 percent of the second value. For the first value in a row, use 75 percent of that value since there is no previous value. The `ThreeTap` value is only meaningful when the horizontal subsampling property has a value of 2.

      The color siting property is optional and has a default value of `ColorSitingType.CoSiting`. The default value will be returned if the property is not present.

      Specified by:
        `getColorSiting` in interface `CDCIDescriptor`
      Returns:
        Color siting for the CDCI descriptor.
      See Also:
        `CDCIDescriptor.COLORSITING_DEFAULT`

    - #### setColorSiting

          @MediaPropertySetter(value="ColorSiting")
          public void setColorSiting(ColorSitingType colorSiting)

      Description copied from interface: `CDCIDescriptor`

      Sets the color siting property of the CDCI descriptor, which specifies how to compute subsampled chrominance values.

      Valid values are:

      - `ColorSitingType.CoSiting` - To calculate subsampled pixels, take the preceding's pixels color value, discard the other color values and cosite the color with the first luminance value.
      - `ColorSitingType.Averaging` - To calculate subsampled pixels, take the average of the two adjacent pixels' color values and site the color in the center of the luminance pixels.
      - `ColorSitingType.ThreeTap` - To calculate subsampled pixels, take 25 percent of the the previous pixel's color value, 50 percent of the first value and 25 percent of the second value. For the first value in a row, use 75 percent of that value since there is no previous value. The `ThreeTap` value is only meaningful when the horizontal subsampling property has a value of 2.

      The color siting property is optional and has a default value of `ColorSitingType.CoSiting`. Calling this method with `null` to omit this property.

      Specified by:
        `setColorSiting` in interface `CDCIDescriptor`
      Parameters:
        `colorSiting` - Color siting for the CDCI descriptor.
      See Also:
        `CDCIDescriptor.COLORSITING_DEFAULT`

    - #### getComponentDepth

          @MediaProperty(uuid1=67175683,
                         uuid2=2560,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="ComponentDepth",
                         aliases="ComponentWidth",
                         typeName="UInt32",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=13057,
                         symbol="ComponentDepth")
          public int getComponentDepth()

      Description copied from interface: `CDCIDescriptor`

      Returns the component width property of this CDCI descriptor, which specifies the number of bits used to store each component. Typical values can be 8, 10, 12, 14, or 16, but others are permitted by the MAJ API implementation. Each component in a sample is packed contiguously; the sample is filled with the number of bits specified by the optional padding bits property. If the padding bits property is omitted, samples are packed contiguously.

      Specified by:
        `getComponentDepth` in interface `CDCIDescriptor`
      Returns:
        Component width for the CDCI descriptor.
      See Also:
        `CDCIDescriptor.getPaddingBits()`

    - #### setComponentDepth

          @MediaPropertySetter(value="ComponentDepth")
          public void setComponentDepth(int componentDepth)
                                                                              throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the component depth property of this CDCI descriptor, which specifies the number of bits used to store each component. Typical values can be 8, 10, 12, 14, or 16, but others are permitted by the MAJ API implementation. Each component in a sample is packed contiguously; the sample is filled with the number of bits specified by the optional padding bits property. If the padding bits property is omitted, samples are packed contiguously.

      Specified by:
        `setComponentDepth` in interface `CDCIDescriptor`
      Parameters:
        `componentDepth` - Component width for the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - The given component width is negative.
      See Also:
        `CDCIDescriptor.getPaddingBits()`

    - #### initializeComponentDepth

          public static final int initializeComponentDepth()

    - #### getHorizontalSubsampling

          @MediaProperty(uuid1=67175681,
                         uuid2=1280,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="HorizontalSubsampling",
                         typeName="UInt32",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=13058,
                         symbol="HorizontalSubsampling")
          public int getHorizontalSubsampling()

      Description copied from interface: `CDCIDescriptor`

      Returns the horizontal subsampling property for this CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the horizontal direction.

      For 4:2:2 video, the value is 2, which means that there are twice as many luminance values as there are color-difference values. Another typical value is 1; however other values are permitted by the MAJ API implementation.

      Specified by:
        `getHorizontalSubsampling` in interface `CDCIDescriptor`
      Returns:
        Horizontal subsampling of the CDCI descriptor.

    - #### setHorizontalSubsampling

          @MediaPropertySetter(value="HorizontalSubsampling")
          public void setHorizontalSubsampling(int horizontalSubsampling)
                                                                                            throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the horizontal subsampling property for this CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the horizontal direction.

      For 4:2:2 video, the value is 2, which means that there are twice as many luminance values as there are color-difference values. Another typical value is 1; however other values are permitted by the MAJ API implementation.

      Specified by:
        `setHorizontalSubsampling` in interface `CDCIDescriptor`
      Parameters:
        `horizontalSubsampling` - Horizontal subsampling of the CDCI descriptor.
      Throws:
        `IllegalArgumentException`

    - #### initializeHorizontalSubsampling

          public static final int initializeHorizontalSubsampling()

    - #### getPaddingBits

          @MediaProperty(uuid1=68681988,
                         uuid2=0,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="PaddingBits",
                         typeName="Int16",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13063,
                         symbol="PaddingBits")
          public short getPaddingBits()

      Description copied from interface: `CDCIDescriptor`

      Returns the padding bits property of the CDCI descriptor, which specifies the number of bits padded to each pixel.

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

      Specified by:
        `getPaddingBits` in interface `CDCIDescriptor`
      Returns:
        Padding bits property of the CDCI descriptor.
      See Also:
        `CDCIDescriptor.PADDINGBITS_DEFAULT`

    - #### setPaddingBits

          @MediaPropertySetter(value="PaddingBits")
          public void setPaddingBits(Short paddingBits)

      Description copied from interface: `CDCIDescriptor`

      Sets the padding bits property of this CDCI descriptor, which specifies the number of bits padded to each pixel.

      This is an optional property with a default value of 0. To omit this optional property, call this method with `null`.

      Specified by:
        `setPaddingBits` in interface `CDCIDescriptor`
      Parameters:
        `paddingBits` - Padding bits of the CDCI descriptor.
      See Also:
        `CDCIDescriptor.PADDINGBITS_DEFAULT`

    - #### getReversedByteOrder

          @MediaProperty(uuid1=50397697,
                         uuid2=2560,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="ReversedByteOrder",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13067,
                         symbol="ReversedByteOrder")
          public boolean getReversedByteOrder()

      Description copied from interface: `CDCIDescriptor`

      Sets the reversed byte order property of the CDCI descriptor, which specifies whether the luma and chroma sample order is reversed relative to the order defined by ITU-R BT.601. The value is `false` if the sample order conforms conforms to ITU-R BT.601, or `true` if the order is reversed (i.e. the luma sample precedes the chroma).

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

      Specified by:
        `getReversedByteOrder` in interface `CDCIDescriptor`
      Returns:
        Is the byte order reversed?
      See Also:
        `CDCIDescriptor.REVERSEDBYTEORDER_DEFAULT`, `ColorSitingType.Rec601`

    - #### setReversedByteOrder

          @MediaPropertySetter(value="ReversedByteOrder")
          public void setReversedByteOrder(Boolean reversedByteOrder)

      Description copied from interface: `CDCIDescriptor`

      Sets the reversed byte order property of the CDCI descriptor, which specifies whether the luma and chroma sample order is reversed relative to the order defined by ITU-R BT.601. The value is `false` if the sample order conforms conforms to ITU-R BT.601, or `true` if the order is reversed (i.e. the luma sample precedes the chroma).

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

      Specified by:
        `setReversedByteOrder` in interface `CDCIDescriptor`
      Parameters:
        `reversedByteOrder` - Is the byte order reversed?
      See Also:
        `CDCIDescriptor.REVERSEDBYTEORDER_DEFAULT`, `ColorSitingType.Rec601`

    - #### getVerticalSubsampling

          @MediaProperty(uuid1=67175681,
                         uuid2=4096,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,2},
                         definedName="VerticalSubsampling",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13064,
                         symbol="VerticalSubsampling")
          public int getVerticalSubsampling()

      Description copied from interface: `CDCIDescriptor`

      Returns the vertical subsampling property of the CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the vertical direction.

      For 4:2:2 video, the value is 2, which means that there are twice as many luminance values as there are color-difference values. Another typical value is 1; however other values are permitted by the MAJ API implementation.

      The default value of this optional property will be returned if it is not present.

      Specified by:
        `getVerticalSubsampling` in interface `CDCIDescriptor`
      Returns:
        Vertical subsampling of the CDCI descriptor.
      See Also:
        `CDCIDescriptor.VERTICALSUBSAMPLING_DEFAULT`

    - #### setVerticalSubsampling

          @MediaPropertySetter(value="VerticalSubsampling")
          public void setVerticalSubsampling(Integer verticalSubsampling)
                                                                                        throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the vertical subsampling property of the CDCI descriptor, which specifies the ratio of luminance sampling to chrominance sampling in the vertical direction.

      For 4:2:2 video, the value is 2, which means that there are twice as many luminance values as there are color-difference values. Another typical value is 1; however other values are permitted by the MAJ API implementation.

      To omit this optional property, call ths method with `null`.

      Specified by:
        `setVerticalSubsampling` in interface `CDCIDescriptor`
      Parameters:
        `verticalSubsampling` - Vertical subsampling of the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - The given vertical subsampling property is negative.
      See Also:
        `CDCIDescriptor.VERTICALSUBSAMPLING_DEFAULT`

    - #### getWhiteRefLevel

          @MediaProperty(uuid1=67175683,
                         uuid2=1024,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,1},
                         definedName="WhiteRefLevel",
                         aliases="WhiteReferenceLevel",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=13061,
                         symbol="WhiteRefLevel")
          public int getWhiteRefLevel()

      Description copied from interface: `CDCIDescriptor`

      Sets the white reference level property of this CDCI descriptor, which specifies the digital luminance component component value associated with white.

      For CCIR-601/2, the value is 235 for 8-bit video and 940 for 10-bit video. For YUV, the value is 255 for 8-bit video and 1023 for 10-bit video. These are typical values; other values will not be disallowed by the MAJ API implementation.

      If the property is not present, its default value will be returned. The default value is the maximum unsigned integer value for the component size.

      Specified by:
        `getWhiteRefLevel` in interface `CDCIDescriptor`
      Returns:
        White reference level for the CDCI descriptor.
      See Also:
        `CDCIDescriptor.getComponentDepth()`

    - #### setWhiteRefLevel

          public void setWhiteRefLevel(Integer whiteRefLevel)
                                throws IllegalArgumentException

      Description copied from interface: `CDCIDescriptor`

      Sets the white reference level property of this CDCI descriptor, which specifies the digital luminance component component value associated with white.

      For CCIR-601/2, the value is 235 for 8-bit video and 940 for 10-bit video. For YUV, the value is 255 for 8-bit video and 1023 for 10-bit video. These are typical values; other values will not be disallowed by the MAJ API implementation.

      This property is optional. The default value is the maximum unsigned integer value for the component size. To omit this optional property, call this method with `null`.

      Specified by:
        `setWhiteRefLevel` in interface `CDCIDescriptor`
      Parameters:
        `whiteRefLevel` - White reference level for the CDCI descriptor.
      Throws:
        `IllegalArgumentException` - Cannot set the white reference level of this CDCI descriptor to a negative value.
      See Also:
        `CDCIDescriptor.getComponentDepth()`

    - #### setWhiteRefLevelFromStream

          @MediaPropertySetter(value="WhiteRefLevel")
          public void setWhiteRefLevelFromStream(Integer whiteRefLevel)
                                                                                      throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### clone

          public CDCIDescriptor 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 `CDCIDescriptor`
      Specified by:
        `clone` in interface `EssenceDescriptor`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `PictureDescriptor`
      Overrides:
        `clone` in class `PictureDescriptorImpl`
      Returns:
        Cloned copy of this interchange object.

    - #### getOffsetToFrameIndexes64

          @MediaProperty(uuid1=697217632,
                         uuid2=12470,
                         uuid3=20016,
                         uuid4={-116,-112,-49,99,-86,121,60,52},
                         definedName="OffsetToFrameIndexes64",
                         typeName="Int64",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="OffsetToFrameIndexes64",
                         namespace="http://www.amwa.tv/is03/extensions/avid",
                         prefix="avid")
           @Int64
          public long getOffsetToFrameIndexes64()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   throws PropertyNotPresentException

      Throws:
        `PropertyNotPresentException`

    - #### setOffsetToFrameIndexes64

          @MediaPropertySetter(value="OffsetToFrameIndexes64")
          public void setOffsetToFrameIndexes64(@Int64
                                                                                                     Long offsetToFrameIndexes64)

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