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

tv.amwa.maj.model

## Interface MPEGVideoDescriptor

- All Superinterfaces:
    AAFFileDescriptor, CDCIDescriptor, EssenceDescriptor, InterchangeObject, MediaEntity, MetadataObject, PictureDescriptor
  All Known Implementing Classes:
    MPEGVideoDescriptorImpl

      public interface MPEGVideoDescriptor
      extends CDCIDescriptor

  Specifies the description of picture essence that is encoded according to the MPEG specifications.

  See Also:
    `SourcePackage.getEssenceDescriptor()`

- - ### Field Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `MPEGVideoDescriptor` | `clone()` Create a cloned copy of this MPEG video descriptor.
    `int` | `getBitRate()` Returns the maximum bit rate of the MPEG elementary stream of the described MPEG video essence, measured in bits per second.
    `boolean` | `getClosedGOP()` Returns code if "ClosedGop" is set in all GOP headers of the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`.
    `ContentScanningType` | `getCodedContentScanning()` Returns whether the underlying content of the descrived MPEG-coded essence was of a known content scanning type.
    `boolean` | `getConstantBPictureCount()` Returns `true` if the associated essence always has a constant number of B frames throughout, or `false` if the number of B frames vary.
    `boolean` | `getIdenticalGOP()` Returns `true` if every GOP in the described MPEG video sequence is constructed in the same way, as per ISO/IEC13818-1 IBP descriptor, otherwise `false`.
    `boolean` | `getLowDelay()` Returns `true` if the low delay mode was used in the sequence represented by the described MPEG-video essence and `false` otherwise.
    `short` | `getMaxBPictureCount()` Returns the maximum number of B pictures between P frames or I frames in the described MPEG video essence, equivalent to ISO/IEC 13818-2 annex D (M-1).
    `short` | `getMaxGOP()` Returns the maximum occurring spacing between I frames in the described MPEG video essence, as per an ISO/IEC 13818-1 IBP descriptor.
    `byte` | `getProfileAndLevel()` Returns the MPEG-2 video profile and level of the described MPEG video essence.
    `boolean` | `getSingleSequence()` Determines whether the described MPEG video essence consists of a single MPEG sequence or if there are a number of sequences.
    `void` | `setBitRate(Integer bitRate)` Sets the maximum bit rate of the MPEG elementary stream of the described MPEG video essence, measured in bits per second.
    `void` | `setClosedGOP(Boolean closedGOP)` Set to `true` to indicate that "ClosedGop" is set in all GOP headers of the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`.
    `void` | `setCodedContentScanning(ContentScanningType codedContentScanning)` Sets whether the underlying content of the associated MPEG-coded essence was of a known content scanning type.
    `void` | `setConstantBPictureCount(Boolean constanBPictureCount)` Set to `true` to indicate that the described MPEG video essence always has a constant number of B frames throughout or to `false` to indicate that the number of B frames vary.
    `void` | `setIdenticalGOP(Boolean identicalGOP)` Set to `true` to indicate that every GOP in the described MPEG video sequence is constructed in the same way, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`.
    `void` | `setLowDelay(Boolean lowDelay)` Set to `true` if the low delay mode was used in the sequence represented by the described MPEG video essence and `false` otherwise.
    `void` | `setMaxBPictureCount(Short maxBPictureCount)` Sets the maximum number of B pictures between P frames or I frames in the described MPEG video essence, equivalent to ISO/IEC 13818-2 annex D (M-1).
    `void` | `setMaxGOP(Short maxGOP)` Sets the maximum occurring spacing between I frames in the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor.
    `void` | `setProfileAndLevel(Byte profileAndLevel)` Sets the MPEG-2 video profile and level of the described MPEG video essence.
    `void` | `setSingleSequence(Boolean singleSequence)` Sets whether the described MPEG video essence consists of a single MPEG sequence or if there are a number of sequences.

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

      `getAlphaSampleDepth, getBlackRefLevel, getColorRange, getColorSiting, getComponentDepth, getHorizontalSubsampling, getPaddingBits, getReversedByteOrder, getVerticalSubsampling, getWhiteRefLevel, setAlphaSampleDepth, setBlackRefLevel, setColorRange, setColorSiting, setComponentDepth, setHorizontalSubsampling, setPaddingBits, setReversedByteOrder, setVerticalSubsampling, setWhiteRefLevel`

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

- - ### Method Detail

    - #### setSingleSequence

          void setSingleSequence(Boolean singleSequence)

      Sets whether the described MPEG video essence consists of a single MPEG sequence or if there are a number of sequences. Set to `true` if the sequence has only one sequence and `false` if it contains more than one. Set this optional property to `null` to omit it.

      Parameters:
        `singleSequence` - Does the described essence contain only a single sequence?

    - #### getSingleSequence

          boolean getSingleSequence()
                             throws PropertyNotPresentException

      Determines whether the described MPEG video essence consists of a single MPEG sequence or if there are a number of sequences. Returns `true` if the sequence has only one sequence and `false` if it contains more than one. This is an optional property.

      Returns:
        Does the described essence contain only a single sequence?
      Throws:
        `PropertyNotPresentException` - The optional single sequence property is not present for this MPEG video descriptor.

    - #### setConstantBPictureCount

          void setConstantBPictureCount(Boolean constanBPictureCount)

      Set to `true` to indicate that the described MPEG video essence always has a constant number of B frames throughout or to `false` to indicate that the number of B frames vary. Set this optional property to `null` to omit it.

      Parameters:
        `constanBPictureCount` - Does the described essence to have a constant number of B frames?

    - #### getConstantBPictureCount

          boolean getConstantBPictureCount()
                                    throws PropertyNotPresentException

      Returns `true` if the associated essence always has a constant number of B frames throughout, or `false` if the number of B frames vary. This is an optional property.

      Returns:
        Does the described essence to have a constant number of B frames?
      Throws:
        `PropertyNotPresentException` - The optional constant B frames property is not present in this MPEG video descriptor.

    - #### setCodedContentScanning

          void setCodedContentScanning(ContentScanningType codedContentScanning)

      Sets whether the underlying content of the associated MPEG-coded essence was of a known content scanning type. Possible values are `Progressive`, `Interlace` and `Mixed`, or set to `NotKnown` if the value is unknown. Set this optional property to `null` to omit it.

      Parameters:
        `codedContentScanning` - Content scanning type of data represented by the underlying content of the associated MPEG-coded essence.

    - #### getCodedContentScanning

          ContentScanningType getCodedContentScanning()
                                               throws PropertyNotPresentException

      Returns whether the underlying content of the descrived MPEG-coded essence was of a known content scanning type. Possible values are `Progressive`, `Interlace` and `Mixed`, or returns `NotKnown` if the value is unknown. This is an optional property.

      Returns:
        Content scanning type of data represented by the underlying content of the described MPEG-coded essence.
      Throws:
        `PropertyNotPresentException` - The optional coded content type property is not present in this MPEG video descriptor.

    - #### setLowDelay

          void setLowDelay(Boolean lowDelay)

      Set to `true` if the low delay mode was used in the sequence represented by the described MPEG video essence and `false` otherwise. Set this optional property to `null` to omit it.

      Parameters:
        `lowDelay` - Was the low delay mode used in the sequence?

    - #### getLowDelay

          boolean getLowDelay()
                       throws PropertyNotPresentException

      Returns `true` if the low delay mode was used in the sequence represented by the described MPEG-video essence and `false` otherwise. This is an optional property.

      Returns:
        Was the low delay mode used in the sequence?
      Throws:
        `PropertyNotPresentException` - The optional low delay property is not present in this MPEG video descriptor.

    - #### setClosedGOP

          void setClosedGOP(Boolean closedGOP)

      Set to `true` to indicate that "ClosedGop" is set in all GOP headers of the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`. Set this optional to `null` to omit it.

      Parameters:
        `closedGOP` - Is "ClosedGOP" set in all the headers of the described MPEG video essence.?

    - #### getClosedGOP

          boolean getClosedGOP()
                        throws PropertyNotPresentException

      Returns code if "ClosedGop" is set in all GOP headers of the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`. This is an optional property.

      Returns:
        Is "ClosedGOP" set in all the headers of the described MPEG video descriptor?
      Throws:
        `PropertyNotPresentException` - The optional closed GOP property is not present in this MPEG video descriptor.

    - #### setIdenticalGOP

          void setIdenticalGOP(Boolean identicalGOP)

      Set to `true` to indicate that every GOP in the described MPEG video sequence is constructed in the same way, as per ISO/IEC 13818-1 IBP descriptor, otherwise `false`. Set this optional property to `null` to omit it.

      Parameters:
        `identicalGOP` - Is every GOP in the described MPEG-video sequence constructed in the same way?

    - #### getIdenticalGOP

          boolean getIdenticalGOP()
                           throws PropertyNotPresentException

      Returns `true` if every GOP in the described MPEG video sequence is constructed in the same way, as per ISO/IEC13818-1 IBP descriptor, otherwise `false`.

      Returns:
        Is every GOP in the associated sequence constructed in the same way?
      Throws:
        `PropertyNotPresentException` - The optional identical GOP property is not present in this MPEG video descriptor.

    - #### setMaxGOP

          void setMaxGOP(@UInt16
                         Short maxGOP)
                  throws IllegalArgumentException

      Sets the maximum occurring spacing between I frames in the described MPEG video essence, as per ISO/IEC 13818-1 IBP descriptor. Set this optional property to `null` to omit it.

      Parameters:
        `maxGOP` - Maximum occurring spacing between I frames of the described MPEG video essence.
      Throws:
        `IllegalArgumentException` - The given max GOP value is negative.

    - #### getMaxGOP

          short getMaxGOP()
                   throws PropertyNotPresentException

      Returns the maximum occurring spacing between I frames in the described MPEG video essence, as per an ISO/IEC 13818-1 IBP descriptor. This is an optional property.

      Returns:
        Maximum occurring spacing between I frames in the described MPEG video essence.
      Throws:
        `PropertyNotPresentException` - The optional max GOP property is not present in this MPEG video descriptor.

    - #### setMaxBPictureCount

          void setMaxBPictureCount(@UInt16
                                   Short maxBPictureCount)
                            throws IllegalArgumentException

      Sets the maximum number of B pictures between P frames or I frames in the described MPEG video essence, equivalent to ISO/IEC 13818-2 annex D (M-1). Set this optional property to `null` to omit it.

      Parameters:
        `maxBPictureCount` - Maximum number of B pictures between P frames or I frames in the described MPEG video essence.
      Throws:
        `IllegalArgumentException` - The given maximum B picture count is negative.

    - #### getMaxBPictureCount

          short getMaxBPictureCount()
                             throws PropertyNotPresentException

      Returns the maximum number of B pictures between P frames or I frames in the described MPEG video essence, equivalent to ISO/IEC 13818-2 annex D (M-1). This is an optional property.

      Returns:
        Maximum number of B pictures between P frames or I frames in the described MPEG video essence.
      Throws:
        `PropertyNotPresentException` - The optional maximum B picture count property is not present in this MPEG video descriptor.

    - #### setBitRate

          void setBitRate(@UInt32
                          Integer bitRate)
                   throws IllegalArgumentException

      Sets the maximum bit rate of the MPEG elementary stream of the described MPEG video essence, measured in bits per second. Set this optional property to `null` to omit it.

      Parameters:
        `bitRate` - Maximum bit rate of the MPEG elementary stream of the described MPEG video essence.
      Throws:
        `IllegalArgumentException` - The given bit rate is negative.

    - #### getBitRate

          @UInt32
          int getBitRate()
                          throws PropertyNotPresentException

      Returns the maximum bit rate of the MPEG elementary stream of the described MPEG video essence, measured in bits per second.

      Returns:
        Maximum bit rate of the MPEG elementary stream of the described MPEG video essence.
      Throws:
        `PropertyNotPresentException` - The optional bit rate property is not present in this MPEG video descriptor.

    - #### setProfileAndLevel

          void setProfileAndLevel(@UInt8
                                  Byte profileAndLevel)

      Sets the MPEG-2 video profile and level of the described MPEG video essence. For the main profile and main level, set to `0x48`. For 4:2:2 profile at main level, set to `0x85`. Set this optional property to `null` to omit it.

      Parameters:
        `profileAndLevel` - MPEG-2 video profile and level of the described MPEG video essence.

    - #### getProfileAndLevel

          @UInt8
          byte getProfileAndLevel()
                                  throws PropertyNotPresentException

      Returns the MPEG-2 video profile and level of the described MPEG video essence. For the main profile and main level, the value returned is `0x48`. For 4:2:2 profile at main level, the value returned is `0x85`. This is an optional property.

      Returns:
        MPEG-2 video profile and level of the described MPEG video essence.
      Throws:
        `PropertyNotPresentException` - The optional profile and level property is not present in this MPEG video descriptor.

    - #### clone

          MPEGVideoDescriptor clone()

      Create a cloned copy of this MPEG video descriptor.

      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 `MediaEntity`
      Specified by:
        `clone` in interface `PictureDescriptor`
      Returns:
        Cloned copy of this MPEG video descriptor.

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