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

tv.amwa.maj.model.impl

## Class AVCSubDescriptorImpl

- java.lang.Object
- - tv.amwa.maj.model.impl.InterchangeObjectImpl
  - - tv.amwa.maj.model.impl.SubDescriptorImpl
    - - tv.amwa.maj.model.impl.AVCSubDescriptorImpl

- All Implemented Interfaces:
    Serializable, Cloneable, MediaEntity, MetadataObject, XMLSerializable, AVCSubDescriptor, InterchangeObject, SubDescriptor

      @MediaClass(uuid1=218169601,
                  uuid2=257,
                  uuid3=28160,
                  uuid4={6,14,43,52,2,6,1,1},
                  definedName="AVCSubDescriptor",
                  description="AVC-specific properties that provide additional description of AVC-encoded material.",
                  symbol="AVCSubDescriptor")
      public class AVCSubDescriptorImpl
      extends SubDescriptorImpl
      implements AVCSubDescriptor, Serializable, XMLSerializable, Cloneable

  Implements an AVC sub descriptor that provides AVC-specific properties that provide additional description of AVC-encoded material over that contained in a RGBA descriptor or a CDCI descriptor.

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

      `AVCCLOSEDGOPINDICATOR_DEFAULT, AVCCODECCONTENTKIND_DEFAULT, AVCCONSTANTBPICTUREFLAG_DEFAULT, AVCIDENTICALGOPINDICATOR_DEFAULT, AVCPICTUREPARAMETERSETFLAG_DEFAULT, AVCSEQUENCEPARAMETERSETFLAG_DEFAULT, CONSTANCYFLAG_CONSTANT, CONSTANCYFLAG_UNKNOWN, INBANDLOCATION_EVERYACCESSUNIT, INBANDLOCATION_EVERYGOP, INBANDLOCATION_FIRSTACCESSUNIT, INBANDLOCATION_UNKNOWN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AVCSubDescriptorImpl()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AVCSubDescriptor` | `clone()` Create a cloned copy of this interchange object.
    `int` | `getAVCAverageBitrate()` Returns the average bit rate of the AVC stream in bit/s over the entire AVC bitstream.
    `boolean` | `getAVCClosedGOPIndicator()` Returns whether all GOPs start with an IDR Picture.
    `AVCCodedContentKind` | `getAVCCodedContentKind()` Returns the picture type and coding type.
    `boolean` | `getAVCConstantBPictureFlag()` Returns whether the number of consecutive B Pictures always constant? Set to false if the number of consecutive B Pictures is not constant or is unknown.
    `byte` | `getAVCDecodingDelay()` Returns the delay required for decoded pictures in number of access units.
    `boolean` | `getAVCIdenticalGOPIndicator()` Returns whether every GOP in the sequence has the same number of pictures and the same type of pictures in the same order.
    `byte` | `getAVCLevel()` Returns the level from the `level_idc` parameter in the sequence parameter set.
    `int` | `getAVCMaximumBitrate()` Returns the maximum bit rate of the AVC stream in bit/s as given by `bit_rate_scale` and `bit_rate_value_minus1` in the HRD parameters in the sequence parameter set.
    `short` | `getAVCMaximumBPictureCount()` Returns the maximum number of B Pictures between P or I Pictures.
    `short` | `getAVCMaximumGOPSize()` Returns the maximum occurring spacing between I Pictures.
    `byte` | `getAVCMaximumRefFrames()` Returns the maximum number of reference frames.
    `byte` | `getAVCPictureParameterSetFlag()` Returns the location and the constancy of picture parameter sets.
    `byte` | `getAVCProfile()` Returns the AVC video profile.
    `byte` | `getAVCProfileConstraint()` Returns the AVC video profile constraint flags.
    `byte` | `getAVCSequenceParameterSetFlag()` Returns the location and the constancy of sequence parameter sets.
    `void` | `setAVCAverageBitrate(Integer avcAverageBitrate)` Sets the average bit rate of the AVC stream in bit/s over the entire AVC bitstream.
    `void` | `setAVCClosedGOPIndicator(Boolean avcClosedGOPIndicator)` Sets whether all GOPs start with an IDR Picture.
    `void` | `setAVCCodedContentKind(AVCCodedContentKind avcCodedContentKind)` Sets the picture type and coding type.
    `void` | `setAVCConstantBPictureFlag(Boolean avcConstantBPictureFlag)` Sets whether the number of consecutive B Pictures always constant? Set to false if the number of consecutive B Pictures is not constant or is unknown.
    `void` | `setAVCDecodingDelay(byte avcDecodingDelay)` Sets the delay required for decoded pictures in number of access units.
    `void` | `setAVCIdenticalGOPIndicator(Boolean avcIdenticalGOPIndicator)` Sets whether every GOP in the sequence has the same number of pictures and the same type of pictures in the same order.
    `void` | `setAVCLevel(Byte avcLevel)` Sets the level from the `level_idc` parameter in the sequence parameter set.
    `void` | `setAVCMaximumBitrate(Integer avcMaximumBitrate)` Sets the maximum bit rate of the AVC stream in bit/s as given by `bit_rate_scale` and `bit_rate_value_minus1` in the HRD parameters in the sequence parameter set.
    `void` | `setAVCMaximumBPictureCount(Short avcMaximumBPictureCount)` Sets the maximum number of B Pictures between P or I Pictures.
    `void` | `setAVCMaximumGOPSize(Short avcMaximumGOPSize)` Sets the maximum occurring spacing between I Pictures.
    `void` | `setAVCMaximumRefFrames(Byte avcMaximumRefFrames)` Sets the maximum number of reference frames.
    `void` | `setAVCPictureParameterSetFlag(Byte avcPictureParaemterSetFlag)` Sets the location and the constancy of picture parameter sets.
    `void` | `setAVCProfile(Byte avcProfile)` Sets the AVC video profile.
    `void` | `setAVCProfileConstraint(Byte avcProfileConstraint)` Sets the AVC video profile constraint flags.
    `void` | `setAVCProfileContraint(boolean constraint_set0_flag, boolean constraint_set1_flag, boolean constraint_set2_flag, boolean constraint_set3_flag, boolean constraint_set4_flag, boolean constraint_set5_flag)` Sets the AVC video profile constraint flags.
    `void` | `setAVCSequenceParameterSetFlag(Byte avcSequenceParameterSetFlag)` Sets the location and the constancy of sequence parameter sets.

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

      `getComment`

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

    - #### AVCSubDescriptorImpl

          public AVCSubDescriptorImpl()

  - ### Method Detail

    - #### getAVCDecodingDelay

          @MediaProperty(uuid1=67175942,
                         uuid2=270,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCDecodingDelay",
                         typeName="UInt8",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCDecodingDelay")
           @UInt8
          public byte getAVCDecodingDelay()

      Description copied from interface: `AVCSubDescriptor`

      Returns the delay required for decoded pictures in number of access units. The value is given by the presentation time of the first presented picture in a GOP minus the decoding time of the first decoded picture in the GOP. The value shall be set to zero if there are no B Pictures in the essence stream. The value shall be set to FFh if the delay is unknown.

      Specified by:
        `getAVCDecodingDelay` in interface `AVCSubDescriptor`
      Returns:
        Delay required for decoded pictures in number of access units.

    - #### setAVCDecodingDelay

          @MediaPropertySetter(value="AVCDecodingDelay")
          public void setAVCDecodingDelay(@UInt8
                                                                                         byte avcDecodingDelay)
                                                                                  throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the delay required for decoded pictures in number of access units. The value is given by the presentation time of the first presented picture in a GOP minus the decoding time of the first decoded picture in the GOP. The value shall be set to zero if there are no B Pictures in the essence stream. The value shall be set to FFh if the delay is unknown.

      Specified by:
        `setAVCDecodingDelay` in interface `AVCSubDescriptor`
      Parameters:
        `avcDecodingDelay` - Delay required for decoded pictures in number of access units.
      Throws:
        `IllegalArgumentException` - The given decoding delay access unit count cannot be a negative number, unless it is 0xff to indicate an unknown decoding delay.

    - #### getAVCConstantBPictureFlag

          @MediaProperty(uuid1=67175942,
                         uuid2=259,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCConstantBPictureFlag",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCConstantBPictureFlag")
          public boolean getAVCConstantBPictureFlag()

      Description copied from interface: `AVCSubDescriptor`

      Returns whether the number of consecutive B Pictures always constant? Set to false if the number of consecutive B Pictures is not constant or is unknown. If this optional property is not present, its default value of false is returned.

      Specified by:
        `getAVCConstantBPictureFlag` in interface `AVCSubDescriptor`
      Returns:
        `true` if the number of consecutive B Pictures always constant, otherwise `false`.
      See Also:
        `AVCSubDescriptor.AVCCONSTANTBPICTUREFLAG_DEFAULT`

    - #### setAVCConstantBPictureFlag

          @MediaPropertySetter(value="AVCConstantBPictureFlag")
          public void setAVCConstantBPictureFlag(Boolean avcConstantBPictureFlag)

      Description copied from interface: `AVCSubDescriptor`

      Sets whether the number of consecutive B Pictures always constant? Set to false if the number of consecutive B Pictures is not constant or is unknown. Set this optional property to `null` to omit it and cause the default value of false to be returned in subsequent requests.

      Specified by:
        `setAVCConstantBPictureFlag` in interface `AVCSubDescriptor`
      Parameters:
        `avcConstantBPictureFlag` - `true` if the number of consecutive B Pictures always constant, otherwise `false`.
      See Also:
        `AVCSubDescriptor.AVCCONSTANTBPICTUREFLAG_DEFAULT`

    - #### getAVCCodedContentKind

          @MediaProperty(uuid1=67175942,
                         uuid2=260,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCCodedContentKind",
                         typeName="AVCCodedContentKind",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCCodedContentKind")
          public AVCCodedContentKind getAVCCodedContentKind()

      Description copied from interface: `AVCSubDescriptor`

      Returns the picture type and coding type. If this optional property is omitted, the default value of is returned.

      Specified by:
        `getAVCCodedContentKind` in interface `AVCSubDescriptor`
      Returns:
        Picture type and coding type.
      See Also:
        `AVCSubDescriptor.AVCCODECCONTENTKIND_DEFAULT`

    - #### setAVCCodedContentKind

          @MediaPropertySetter(value="AVCCodedContentKind")
          public void setAVCCodedContentKind(AVCCodedContentKind avcCodedContentKind)

      Description copied from interface: `AVCSubDescriptor`

      Sets the picture type and coding type. Set this optional property to `null` to omit it, which will cause the default value of to be returned going forward.

      Specified by:
        `setAVCCodedContentKind` in interface `AVCSubDescriptor`
      Parameters:
        `avcCodedContentKind` - Picture type and coding type.
      See Also:
        `AVCSubDescriptor.AVCCODECCONTENTKIND_DEFAULT`

    - #### getAVCClosedGOPIndicator

          @MediaProperty(uuid1=67175942,
                         uuid2=262,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCClosedGOPIndicator",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCClosedGOPIndicator")
          public boolean getAVCClosedGOPIndicator()

      Description copied from interface: `AVCSubDescriptor`

      Returns whether all GOPs start with an IDR Picture. If this optional property is omitted, the default value of false is returned.

      Specified by:
        `getAVCClosedGOPIndicator` in interface `AVCSubDescriptor`
      Returns:
        `true` if all GOPs start with an IDR Picture, otherwise `false` if the GOP start type is not necessarily an IDR Picture or is unknown.
      See Also:
        `AVCSubDescriptor.AVCCLOSEDGOPINDICATOR_DEFAULT`

    - #### setAVCClosedGOPIndicator

          @MediaPropertySetter(value="AVCClosedGOPIndicator")
          public void setAVCClosedGOPIndicator(Boolean avcClosedGOPIndicator)

      Description copied from interface: `AVCSubDescriptor`

      Sets whether all GOPs start with an IDR Picture. Set this optional property to `null` null to omit it, causing the default value of false to be returned in subsequent requests.

      Specified by:
        `setAVCClosedGOPIndicator` in interface `AVCSubDescriptor`
      Parameters:
        `avcClosedGOPIndicator` - `true` if all GOPs start with an IDR Picture, otherwise `false` if the GOP start type is not necessarily an IDR Picture or is unknown.
      See Also:
        `AVCSubDescriptor.AVCCLOSEDGOPINDICATOR_DEFAULT`

    - #### getAVCIdenticalGOPIndicator

          @MediaProperty(uuid1=67175942,
                         uuid2=263,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCIdenticalGOPIndicator",
                         typeName="Boolean",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCIdenticalGOPIndicator")
          public boolean getAVCIdenticalGOPIndicator()

      Description copied from interface: `AVCSubDescriptor`

      Returns whether every GOP in the sequence has the same number of pictures and the same type of pictures in the same order. This is not the case is not all GOPs are known, of there is at least one GOP in the sequence which has any of the following:

      1. a different number of pictures;
      2. the same types of pictures but in a different order;
      3. different types of pictures.

      If this optional property is omitted, the default value of false is returned.

      Specified by:
        `getAVCIdenticalGOPIndicator` in interface `AVCSubDescriptor`
      Returns:
        `true` if every GOP in the sequence has the same number of pictures and the same types of pictures in the same order, otherwise `false`.
      See Also:
        `AVCSubDescriptor.AVCIDENTICALGOPINDICATOR_DEFAULT`

    - #### setAVCIdenticalGOPIndicator

          @MediaPropertySetter(value="AVCIdenticalGOPIndicator")
          public void setAVCIdenticalGOPIndicator(Boolean avcIdenticalGOPIndicator)

      Description copied from interface: `AVCSubDescriptor`

      Sets whether every GOP in the sequence has the same number of pictures and the same type of pictures in the same order. This is not the case is not all GOPs are known, of there is at least one GOP in the sequence which has any of the following:

      1. a different number of pictures;
      2. the same types of pictures but in a different order;
      3. different types of pictures.

      Set this optional property to `null` to omit it, which will result in the default value of false being returned in subsequence requests.

      Specified by:
        `setAVCIdenticalGOPIndicator` in interface `AVCSubDescriptor`
      Parameters:
        `avcIdenticalGOPIndicator` - `true` if every GOP in the sequence has the same number of pictures and the same types of pictures in the same order, otherwise `false`.

    - #### getAVCMaximumGOPSize

          @MediaProperty(uuid1=67175942,
                         uuid2=264,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCMaximumGOPSize",
                         typeName="UInt16",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCMaximumGOPSize")
           @UInt16
          public short getAVCMaximumGOPSize()
                                                                                                                                                                                                                                                                                                                                                                                                   throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the maximum occurring spacing between I Pictures. A value of `0` or the omission of this property indicates either there is no limit to the maximum GOP or the maximum GOP is unknown. If an encoder does not know the value, this optional property shall be omitted.

      Specified by:
        `getAVCMaximumGOPSize` in interface `AVCSubDescriptor`
      Returns:
        Maximum occurring spacing between I Pictures.
      Throws:
        `PropertyNotPresentException` - The optional AVC maximum GOP size property is not present.

    - #### setAVCMaximumGOPSize

          @MediaPropertySetter(value="AVCMaximumGOPSize")
          public void setAVCMaximumGOPSize(@UInt16
                                                                                           Short avcMaximumGOPSize)
                                                                                    throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the maximum occurring spacing between I Pictures. A value of `0` or the omission of this property indicates either there is no limit to the maximum GOP or the maximum GOP is unknown. Set this optional property to `null` to omit it.

      Specified by:
        `setAVCMaximumGOPSize` in interface `AVCSubDescriptor`
      Parameters:
        `avcMaximumGOPSize` - Maximum occurring spacing between I Pictures.
      Throws:
        `IllegalArgumentException` - The maximum GOP size cannot be a negative number.

    - #### getAVCMaximumBPictureCount

          @MediaProperty(uuid1=67175942,
                         uuid2=265,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCMaximumBPictureCount",
                         typeName="UInt16",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCMaximumBPictureCount")
           @UInt16
          public short getAVCMaximumBPictureCount()
                                                                                                                                                                                                                                                                                                                                                                                                                     throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the maximum number of B Pictures between P or I Pictures. If an encoder does not know the value, this optional property shall be omitted.

      Specified by:
        `getAVCMaximumBPictureCount` in interface `AVCSubDescriptor`
      Returns:
        Maximum number of B Pictures between P or I Pictures.
      Throws:
        `PropertyNotPresentException` - The optional maximum B Picture count property is not present.

    - #### setAVCMaximumBPictureCount

          @MediaPropertySetter(value="AVCMaximumBPictureCount")
          public void setAVCMaximumBPictureCount(@UInt16
                                                                                                       Short avcMaximumBPictureCount)
                                                                                                throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the maximum number of B Pictures between P or I Pictures. If an encoder does not know the value, this optional property shall be omitted by setting the value to `null`.

      Specified by:
        `setAVCMaximumBPictureCount` in interface `AVCSubDescriptor`
      Parameters:
        `avcMaximumBPictureCount` - Maximum number of B Pictures between P or I Pictures.
      Throws:
        `IllegalArgumentException` - Cannot set the maximum B Picture count property to a negative value.

    - #### getAVCMaximumBitrate

          @MediaProperty(uuid1=67175942,
                         uuid2=267,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCMaximumBitrate",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCMaximumBitrate")
           @UInt32
          public int getAVCMaximumBitrate()
                                                                                                                                                                                                                                                                                                                                                                                                 throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the maximum bit rate of the AVC stream in bit/s as given by `bit_rate_scale` and `bit_rate_value_minus1` in the HRD parameters in the sequence parameter set. The equivalent value is assigned for this property of the stream even if the stream does not include the HRD parameters. If an encoder does not know the optional value, this property shall be omitted.

      To calculate the bitrate from the sequence parameter set values, do:

      (`bit_rate_value_minus1` + 1) * 2(6 + `bit_rate_scale`)
      Specified by:
        `getAVCMaximumBitrate` in interface `AVCSubDescriptor`
      Returns:
        Maximum bit rate of the AVC stream in bit/s.
      Throws:
        `PropertyNotPresentException` - The optional maximum bit rate property is not present.

    - #### setAVCMaximumBitrate

          @MediaPropertySetter(value="AVCMaximumBitrate")
          public void setAVCMaximumBitrate(@UInt32
                                                                                           Integer avcMaximumBitrate)
                                                                                    throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the maximum bit rate of the AVC stream in bit/s as given by `bit_rate_scale` and `bit_rate_value_minus1` in the HRD parameters in the sequence parameter set. The equivalent value is assigned for this property of the stream even if the stream does not include the HRD parameters. If an encoder does not know the optional value, set this property to `null` to omit it.

      To calculate the bitrate from the sequence parameter set values, do:

      (`bit_rate_value_minus1` + 1) * 2(6 + `bit_rate_scale`)
      Specified by:
        `setAVCMaximumBitrate` in interface `AVCSubDescriptor`
      Parameters:
        `avcMaximumBitrate` - Maximum bit rate of the AVC stream in bit/s.
      Throws:
        `IllegalArgumentException` - The maximum bit rate of the stream cannot be a negative value.

    - #### getAVCAverageBitrate

          @MediaProperty(uuid1=67175942,
                         uuid2=276,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCAverageBitrate",
                         typeName="UInt32",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCAverageBitrate")
           @UInt32
          public int getAVCAverageBitrate()
                                                                                                                                                                                                                                                                                                                                                                                                 throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the average bit rate of the AVC stream in bit/s over the entire AVC bitstream. If an encoder does not know the value, this optional property shall be omitted.

      Specified by:
        `getAVCAverageBitrate` in interface `AVCSubDescriptor`
      Returns:
        Average bit rate of the AVC stream in bit/s over the entire AVC bitstream.
      Throws:
        `PropertyNotPresentException` - The optional average bit rate property is not present.

    - #### setAVCAverageBitrate

          @MediaPropertySetter(value="AVCAverageBitrate")
          public void setAVCAverageBitrate(@UInt32
                                                                                           Integer avcAverageBitrate)
                                                                                    throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the average bit rate of the AVC stream in bit/s over the entire AVC bitstream. If an encoder does not know the value, omit this optional property be setting it to `null`.

      Specified by:
        `setAVCAverageBitrate` in interface `AVCSubDescriptor`
      Parameters:
        `avcAverageBitrate` - Average bit rate of the AVC stream in bit/s over the entire AVC bitstream.
      Throws:
        `IllegalArgumentException` - Cannot set the average bit rate property to a negative value.

    - #### getAVCProfile

          @MediaProperty(uuid1=67175942,
                         uuid2=266,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCProfile",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCProfile")
           @UInt8
          public byte getAVCProfile()
                                                                                                                                                                                                                                                                                                                                                                           throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the AVC video profile. The value is taken from `profile_idc` in the sequence parameter set. This is an optional property.

      Specified by:
        `getAVCProfile` in interface `AVCSubDescriptor`
      Returns:
        AVC video profile.
      Throws:
        `PropertyNotPresentException` - The optional AVC profile property is not present.

    - #### setAVCProfile

          @MediaPropertySetter(value="AVCProfile")
          public void setAVCProfile(@UInt8
                                                                             Byte avcProfile)

      Description copied from interface: `AVCSubDescriptor`

      Sets the AVC video profile. The value is taken from `profile_idc` in the sequence parameter set. Set this optional property to `null` to omit it.

      Specified by:
        `setAVCProfile` in interface `AVCSubDescriptor`

    - #### getAVCProfileConstraint

          @MediaProperty(uuid1=67175942,
                         uuid2=268,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCProfileConstraint",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCProfileConstraint")
           @UInt8
          public byte getAVCProfileConstraint()
                                                                                                                                                                                                                                                                                                                                                                                                         throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the AVC video profile constraint flags. The value of bits [7..2] is taken from `constraint_set0_flag`, ..., `constraint_set5_flag` in the sequence parameter set. The value of bits [1..0] shall be set to zero. This is an optional property.

      Specified by:
        `getAVCProfileConstraint` in interface `AVCSubDescriptor`
      Returns:
        AVC video profile constraint flags.
      Throws:
        `PropertyNotPresentException` - The optional AVC video profile constraint flags are not present.

    - #### setAVCProfileConstraint

          @MediaPropertySetter(value="AVCProfileConstraint")
          public void setAVCProfileConstraint(@UInt8
                                                                                                 Byte avcProfileConstraint)

      Description copied from interface: `AVCSubDescriptor`

      Sets the AVC video profile constraint flags. The value of bits [7..2] is taken from `constraint_set0_flag`, ..., `constraint_set5_flag` in the sequence parameter set. The value of bits [1..0] shall be set to zero. Set this optional property to `null` to omit it.

      Specified by:
        `setAVCProfileConstraint` in interface `AVCSubDescriptor`
      Parameters:
        `avcProfileConstraint` - AVC video profile constraint flags.
      See Also:
        `AVCSubDescriptor.setAVCProfileContraint(boolean, boolean, boolean, boolean, boolean, boolean)`

    - #### setAVCProfileContraint

          public void setAVCProfileContraint(boolean constraint_set0_flag,
                                             boolean constraint_set1_flag,
                                             boolean constraint_set2_flag,
                                             boolean constraint_set3_flag,
                                             boolean constraint_set4_flag,
                                             boolean constraint_set5_flag)

      Description copied from interface: `AVCSubDescriptor`

      Sets the AVC video profile constraint flags. The value, stored in bits [7..2] of an unsigned byte, is taken from `constraint_set0_flag`, ..., `constraint_set5_flag` in the sequence parameter set. Use `AVCSubDescriptor.setAVCProfileConstraint(Byte)` with a `null` value to omit this optional property.

      Specified by:
        `setAVCProfileContraint` in interface `AVCSubDescriptor`
      See Also:
        `AVCSubDescriptor.setAVCProfileConstraint(Byte)`

    - #### getAVCLevel

          @MediaProperty(uuid1=67175942,
                         uuid2=269,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCLevel",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCLevel")
           @UInt8
          public byte getAVCLevel()
                                                                                                                                                                                                                                                                                                                                                                     throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the level from the `level_idc` parameter in the sequence parameter set. The level value is the defined level multiplied by 10, with the exception of a value of 9 that equals special level 1b. This is an optional property.

      Specified by:
        `getAVCLevel` in interface `AVCSubDescriptor`
      Returns:
        Level from the `level_idc` parameter in the sequence parameter set.
      Throws:
        `PropertyNotPresentException` - The optional level property is not present.

    - #### setAVCLevel

          @MediaPropertySetter(value="AVCLevel")
          public void setAVCLevel(@UInt8
                                                                         Byte avcLevel)
                                                                  throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the level from the `level_idc` parameter in the sequence parameter set. The level value is the defined level multiplied by 10, with the exception of a value of 9 that equals special level 1b. This is an optional property.

      Specified by:
        `setAVCLevel` in interface `AVCSubDescriptor`
      Parameters:
        `avcLevel` - Level from the `level_idc` parameter in the sequence parameter set.
      Throws:
        `IllegalArgumentException` - The level property cannot be negative.

    - #### getAVCMaximumRefFrames

          @MediaProperty(uuid1=67175942,
                         uuid2=271,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCMaximumRefFrames",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCMaximumRefFrames")
           @UInt8
          public byte getAVCMaximumRefFrames()
                                                                                                                                                                                                                                                                                                                                                                                                      throws PropertyNotPresentException

      Description copied from interface: `AVCSubDescriptor`

      Returns the maximum number of reference frames. The value is the maximum value of `max_num_ref_frames` within all sequence parameter sets. This is an optional property.

      Specified by:
        `getAVCMaximumRefFrames` in interface `AVCSubDescriptor`
      Returns:
        Maximum number of reference frames.
      Throws:
        `PropertyNotPresentException` - The optional maximum reference frames property is not present.

    - #### setAVCMaximumRefFrames

          @MediaPropertySetter(value="AVCMaximumRefFrames")
          public void setAVCMaximumRefFrames(@UInt8
                                                                                               Byte avcMaximumRefFrames)
                                                                                        throws IllegalArgumentException

      Description copied from interface: `AVCSubDescriptor`

      Sets the maximum number of reference frames. The value is the maximum value of `max_num_ref_frames` within all sequence parameter sets. Set this optional property to `null` to omit it.

      Specified by:
        `setAVCMaximumRefFrames` in interface `AVCSubDescriptor`
      Parameters:
        `avcMaximumRefFrames` - Maximum number of reference frames.
      Throws:
        `IllegalArgumentException` - The maximum number of reference frames cannot be negative.

    - #### getAVCSequenceParameterSetFlag

          @MediaProperty(uuid1=67175942,
                         uuid2=272,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCSequenceParameterSetFlag",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCSequenceParameterSetFlag")
           @UInt8
          public byte getAVCSequenceParameterSetFlag()

      Description copied from interface: `AVCSubDescriptor`

      Returns the location and the constancy of sequence parameter sets. For details of the value, see the descriptions of the constancy flag and in band locations linked to below. This is an optional property where the default value of 0 is returned when when the property is omitted.

      Specified by:
        `getAVCSequenceParameterSetFlag` in interface `AVCSubDescriptor`
      Returns:
        Location and the constancy of sequence parameter sets.
      See Also:
        `AVCSubDescriptor.AVCSEQUENCEPARAMETERSETFLAG_DEFAULT`, `AVCSubDescriptor.CONSTANCYFLAG_UNKNOWN`, `AVCSubDescriptor.CONSTANCYFLAG_CONSTANT`, `AVCSubDescriptor.INBANDLOCATION_UNKNOWN`, `AVCSubDescriptor.INBANDLOCATION_FIRSTACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYGOP`

    - #### setAVCSequenceParameterSetFlag

          @MediaPropertySetter(value="AVCSequenceParameterSetFlag")
          public void setAVCSequenceParameterSetFlag(@UInt8
                                                                                                               Byte avcSequenceParameterSetFlag)

      Description copied from interface: `AVCSubDescriptor`

      Sets the location and the constancy of sequence parameter sets. For details of the value, see the descriptions of the constancy flag and in band locations linked to below. Set this optional property to `null` to omit it and have subsequent requests return the default value of 0.

      Specified by:
        `setAVCSequenceParameterSetFlag` in interface `AVCSubDescriptor`
      Parameters:
        `avcSequenceParameterSetFlag` - Location and the constancy of sequence parameter sets.
      See Also:
        `AVCSubDescriptor.AVCSEQUENCEPARAMETERSETFLAG_DEFAULT`, `AVCSubDescriptor.CONSTANCYFLAG_UNKNOWN`, `AVCSubDescriptor.CONSTANCYFLAG_CONSTANT`, `AVCSubDescriptor.INBANDLOCATION_UNKNOWN`, `AVCSubDescriptor.INBANDLOCATION_FIRSTACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYGOP`

    - #### getAVCPictureParameterSetFlag

          @MediaProperty(uuid1=67175942,
                         uuid2=273,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,14},
                         definedName="AVCPictureParameterSetFlag",
                         typeName="UInt8",
                         optional=true,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="AVCPictureParameterSetFlag")
           @UInt8
          public byte getAVCPictureParameterSetFlag()

      Description copied from interface: `AVCSubDescriptor`

      Returns the location and the constancy of picture parameter sets. For details of the value, see the descriptions of the constancy flag and in band locations linked to below. This is an optional property where the default value of 0 is returned when when the property is omitted.

      Specified by:
        `getAVCPictureParameterSetFlag` in interface `AVCSubDescriptor`
      Returns:
        Location and the constancy of picture parameter sets.
      See Also:
        `AVCSubDescriptor.AVCPICTUREPARAMETERSETFLAG_DEFAULT`, `AVCSubDescriptor.CONSTANCYFLAG_UNKNOWN`, `AVCSubDescriptor.CONSTANCYFLAG_CONSTANT`, `AVCSubDescriptor.INBANDLOCATION_UNKNOWN`, `AVCSubDescriptor.INBANDLOCATION_FIRSTACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYGOP`

    - #### setAVCPictureParameterSetFlag

          @MediaPropertySetter(value="AVCPictureParameterSetFlag")
          public void setAVCPictureParameterSetFlag(@UInt8
                                                                                                             Byte avcPictureParaemterSetFlag)

      Description copied from interface: `AVCSubDescriptor`

      Sets the location and the constancy of picture parameter sets. For details of the value, see the descriptions of the constancy flag and in band locations linked to below. Set this optional property to `null` to omit it and have subsequent requests return the default value of 0.

      Specified by:
        `setAVCPictureParameterSetFlag` in interface `AVCSubDescriptor`
      Parameters:
        `avcPictureParaemterSetFlag` - Location and the constancy of picture parameter sets.
      See Also:
        `AVCSubDescriptor.AVCPICTUREPARAMETERSETFLAG_DEFAULT`, `AVCSubDescriptor.CONSTANCYFLAG_UNKNOWN`, `AVCSubDescriptor.CONSTANCYFLAG_CONSTANT`, `AVCSubDescriptor.INBANDLOCATION_UNKNOWN`, `AVCSubDescriptor.INBANDLOCATION_FIRSTACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYACCESSUNIT`, `AVCSubDescriptor.INBANDLOCATION_EVERYGOP`

    - #### clone

          public AVCSubDescriptor 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 `AVCSubDescriptor`
      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `SubDescriptor`
      Overrides:
        `clone` in class `SubDescriptorImpl`
      Returns:
        Cloned copy of this interchange object.

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