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

tv.amwa.maj.model

## Interface AVCSubDescriptor

- All Superinterfaces:
    InterchangeObject, MediaEntity, MetadataObject, SubDescriptor
  All Known Implementing Classes:
    AVCSubDescriptorImpl

      public interface AVCSubDescriptor
      extends SubDescriptor

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `AVCCLOSEDGOPINDICATOR_DEFAULT` Default value for the AVC closed GOP indicator, which is false.
    `static AVCCodedContentKind` | `AVCCODECCONTENTKIND_DEFAULT` Default value for the picture and coding kind, which is .
    `static boolean` | `AVCCONSTANTBPICTUREFLAG_DEFAULT` Default value for the AVC constant B Picture flag, which is `false`.
    `static boolean` | `AVCIDENTICALGOPINDICATOR_DEFAULT` Default value for the AVC identical GOP indicator, which us false.
    `static byte` | `AVCPICTUREPARAMETERSETFLAG_DEFAULT` Default value for the picture parameter set flag, which is 0 and means the locations of picture parameter sets are unknown.
    `static byte` | `AVCSEQUENCEPARAMETERSETFLAG_DEFAULT` Default value for the sequence parameter set flag, which is 0 and means the the locations of sequence parameter sets are unknown.
    `static byte` | `CONSTANCYFLAG_CONSTANT` The constancy of a parameter set is constant.
    `static byte` | `CONSTANCYFLAG_UNKNOWN` The constancy of a parameter set is now known.
    `static byte` | `INBANDLOCATION_EVERYACCESSUNIT` The location of a kind of parameter set within the stream is as part of every access unit.
    `static byte` | `INBANDLOCATION_EVERYGOP` The location of a kind of parameter set within the stream is periodically placed at the first access unit in each GOP.
    `static byte` | `INBANDLOCATION_FIRSTACCESSUNIT` The location of parameter set within the stream is only as part of the first access unit.
    `static byte` | `INBANDLOCATION_UNKNOWN` The location of a kind of parameter set within the stream is unknown or has no specific location.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `AVCSubDescriptor` | `clone()` Create a cloned copy of this sub descriptor.
    `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 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`

- - ### Field Detail

    - #### AVCCONSTANTBPICTUREFLAG_DEFAULT

          static final boolean AVCCONSTANTBPICTUREFLAG_DEFAULT

      Default value for the AVC constant B Picture flag, which is `false`.

      See Also:
        `getAVCConstantBPictureFlag()`, `setAVCConstantBPictureFlag(Boolean)`, Constant Field Values

    - #### AVCCODECCONTENTKIND_DEFAULT

          static final AVCCodedContentKind AVCCODECCONTENTKIND_DEFAULT

      Default value for the picture and coding kind, which is .

      See Also:
        `getAVCCodedContentKind()`, `setAVCCodedContentKind(AVCCodedContentKind)`

    - #### AVCCLOSEDGOPINDICATOR_DEFAULT

          static final boolean AVCCLOSEDGOPINDICATOR_DEFAULT

      Default value for the AVC closed GOP indicator, which is false.

      See Also:
        `getAVCClosedGOPIndicator()`, `setAVCClosedGOPIndicator(Boolean)`, Constant Field Values

    - #### AVCIDENTICALGOPINDICATOR_DEFAULT

          static final boolean AVCIDENTICALGOPINDICATOR_DEFAULT

      Default value for the AVC identical GOP indicator, which us false.

      See Also:
        `getAVCIdenticalGOPIndicator()`, `setAVCIdenticalGOPIndicator(Boolean)`, Constant Field Values

    - #### AVCSEQUENCEPARAMETERSETFLAG_DEFAULT

          static final byte AVCSEQUENCEPARAMETERSETFLAG_DEFAULT

      Default value for the sequence parameter set flag, which is 0 and means the the locations of sequence parameter sets are unknown.

      See Also:
        `getAVCSequenceParameterSetFlag()`, `setAVCSequenceParameterSetFlag(Byte)`, Constant Field Values

    - #### AVCPICTUREPARAMETERSETFLAG_DEFAULT

          static final byte AVCPICTUREPARAMETERSETFLAG_DEFAULT

      Default value for the picture parameter set flag, which is 0 and means the locations of picture parameter sets are unknown.

      See Also:
        `getAVCPictureParameterSetFlag()`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### CONSTANCYFLAG_UNKNOWN

          static final byte CONSTANCYFLAG_UNKNOWN

      The constancy of a parameter set is now known.

      See Also:
        `CONSTANCYFLAG_CONSTANT`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### CONSTANCYFLAG_CONSTANT

          static final byte CONSTANCYFLAG_CONSTANT

      The constancy of a parameter set is constant.

      See Also:
        `CONSTANCYFLAG_CONSTANT`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### INBANDLOCATION_UNKNOWN

          static final byte INBANDLOCATION_UNKNOWN

      The location of a kind of parameter set within the stream is unknown or has no specific location.

      See Also:
        `INBANDLOCATION_FIRSTACCESSUNIT`, `INBANDLOCATION_EVERYACCESSUNIT`, `INBANDLOCATION_EVERYGOP`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### INBANDLOCATION_FIRSTACCESSUNIT

          static final byte INBANDLOCATION_FIRSTACCESSUNIT

      The location of parameter set within the stream is only as part of the first access unit.

      See Also:
        `INBANDLOCATION_UNKNOWN`, `INBANDLOCATION_EVERYACCESSUNIT`, `INBANDLOCATION_EVERYGOP`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### INBANDLOCATION_EVERYACCESSUNIT

          static final byte INBANDLOCATION_EVERYACCESSUNIT

      The location of a kind of parameter set within the stream is as part of every access unit.

      See Also:
        `INBANDLOCATION_UNKNOWN`, `INBANDLOCATION_FIRSTACCESSUNIT`, `INBANDLOCATION_EVERYGOP`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

    - #### INBANDLOCATION_EVERYGOP

          static final byte INBANDLOCATION_EVERYGOP

      The location of a kind of parameter set within the stream is periodically placed at the first access unit in each GOP.

      See Also:
        `INBANDLOCATION_UNKNOWN`, `INBANDLOCATION_FIRSTACCESSUNIT`, `INBANDLOCATION_EVERYACCESSUNIT`, `setAVCSequenceParameterSetFlag(Byte)`, `setAVCPictureParameterSetFlag(Byte)`, Constant Field Values

  - ### Method Detail

    - #### getAVCDecodingDelay

          @UInt8
          byte getAVCDecodingDelay()

      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.

      Returns:
        Delay required for decoded pictures in number of access units.

    - #### setAVCDecodingDelay

          void setAVCDecodingDelay(@UInt8
                                   byte avcDecodingDelay)
                            throws IllegalArgumentException

      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.

      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

          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. If this optional property is not present, its default value of false is returned.

      Returns:
        `true` if the number of consecutive B Pictures always constant, otherwise `false`.
      See Also:
        `AVCCONSTANTBPICTUREFLAG_DEFAULT`

    - #### setAVCConstantBPictureFlag

          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. Set this optional property to `null` to omit it and cause the default value of false to be returned in subsequent requests.

      Parameters:
        `avcConstantBPictureFlag` - `true` if the number of consecutive B Pictures always constant, otherwise `false`.
      See Also:
        `AVCCONSTANTBPICTUREFLAG_DEFAULT`

    - #### getAVCCodedContentKind

          AVCCodedContentKind getAVCCodedContentKind()

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

      Returns:
        Picture type and coding type.
      See Also:
        `AVCCODECCONTENTKIND_DEFAULT`

    - #### setAVCCodedContentKind

          void setAVCCodedContentKind(AVCCodedContentKind avcCodedContentKind)

      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.

      Parameters:
        `avcCodedContentKind` - Picture type and coding type.
      See Also:
        `AVCCODECCONTENTKIND_DEFAULT`

    - #### getAVCClosedGOPIndicator

          boolean getAVCClosedGOPIndicator()

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

      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:
        `AVCCLOSEDGOPINDICATOR_DEFAULT`

    - #### setAVCClosedGOPIndicator

          void setAVCClosedGOPIndicator(Boolean avcClosedGOPIndicator)

      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.

      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:
        `AVCCLOSEDGOPINDICATOR_DEFAULT`

    - #### getAVCIdenticalGOPIndicator

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

      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:
        `AVCIDENTICALGOPINDICATOR_DEFAULT`

    - #### setAVCIdenticalGOPIndicator

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

      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

          @UInt16
          short getAVCMaximumGOPSize()
                                      throws PropertyNotPresentException

      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.

      Returns:
        Maximum occurring spacing between I Pictures.
      Throws:
        `PropertyNotPresentException` - The optional AVC maximum GOP size property is not present.

    - #### setAVCMaximumGOPSize

          void setAVCMaximumGOPSize(@UInt16
                                    Short avcMaximumGOPSize)
                             throws IllegalArgumentException

      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.

      Parameters:
        `avcMaximumGOPSize` - Maximum occurring spacing between I Pictures.
      Throws:
        `IllegalArgumentException` - The maximum GOP size cannot be a negative number.

    - #### getAVCMaximumBPictureCount

          @UInt16
          short getAVCMaximumBPictureCount()
                                            throws PropertyNotPresentException

      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.

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

    - #### setAVCMaximumBPictureCount

          void setAVCMaximumBPictureCount(@UInt16
                                          Short avcMaximumBPictureCount)
                                   throws IllegalArgumentException

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

      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
          int getAVCMaximumBitrate()
                                                                                                                                                                                                                                                                                                                                                                                          throws PropertyNotPresentException

      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`)
      Returns:
        Maximum bit rate of the AVC stream in bit/s.
      Throws:
        `PropertyNotPresentException` - The optional maximum bit rate property is not present.

    - #### setAVCMaximumBitrate

          void setAVCMaximumBitrate(@UInt32
                                    Integer avcMaximumBitrate)
                             throws IllegalArgumentException

      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`)
      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
          int getAVCAverageBitrate()
                                                                                                                                                                                                                                                                                                                                                                                          throws PropertyNotPresentException

      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.

      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

          void setAVCAverageBitrate(@UInt32
                                    Integer avcAverageBitrate)
                             throws IllegalArgumentException

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

      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
          byte getAVCProfile()
                                                                                                                                                                                                                                                                                                                                                                    throws PropertyNotPresentException

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

      Returns:
        AVC video profile.
      Throws:
        `PropertyNotPresentException` - The optional AVC profile property is not present.

    - #### setAVCProfile

          void setAVCProfile(@UInt8
                             Byte avcProfile)

      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.

      Parameters:
        `setAVCProfile` - AVC video profile.

    - #### 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
          byte getAVCProfileConstraint()
                                                                                                                                                                                                                                                                                                                                                                                                  throws PropertyNotPresentException

      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.

      Returns:
        AVC video profile constraint flags.
      Throws:
        `PropertyNotPresentException` - The optional AVC video profile constraint flags are not present.

    - #### setAVCProfileConstraint

          void setAVCProfileConstraint(@UInt8
                                       Byte avcProfileConstraint)

      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.

      Parameters:
        `avcProfileConstraint` - AVC video profile constraint flags.
      See Also:
        `setAVCProfileContraint(boolean, boolean, boolean, boolean, boolean, boolean)`

    - #### setAVCProfileContraint

          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. 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 `setAVCProfileConstraint(Byte)` with a `null` value to omit this optional property.

      Parameters:
        `constraint_set0_flag` -
        `constraint_set1_flag` -
        `constraint_set2_flag` -
        `constraint_set3_flag` -
        `constraint_set4_flag` -
        `constraint_set5_flag` -
      See Also:
        `setAVCProfileConstraint(Byte)`

    - #### getAVCLevel

          @UInt8
          byte getAVCLevel()
                           throws PropertyNotPresentException

      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.

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

    - #### setAVCLevel

          void setAVCLevel(@UInt8
                           Byte avcLevel)
                    throws IllegalArgumentException

      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.

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

    - #### getAVCMaximumRefFrames

          @UInt8
          byte getAVCMaximumRefFrames()
                                      throws PropertyNotPresentException

      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.

      Returns:
        Maximum number of reference frames.
      Throws:
        `PropertyNotPresentException` - The optional maximum reference frames property is not present.

    - #### setAVCMaximumRefFrames

          void setAVCMaximumRefFrames(@UInt8
                                      Byte avcMaximumRefFrames)
                               throws IllegalArgumentException

      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.

      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
          byte getAVCSequenceParameterSetFlag()

      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.

      Returns:
        Location and the constancy of sequence parameter sets.
      See Also:
        `AVCSEQUENCEPARAMETERSETFLAG_DEFAULT`, `CONSTANCYFLAG_UNKNOWN`, `CONSTANCYFLAG_CONSTANT`, `INBANDLOCATION_UNKNOWN`, `INBANDLOCATION_FIRSTACCESSUNIT`, `INBANDLOCATION_EVERYACCESSUNIT`, `INBANDLOCATION_EVERYGOP`

    - #### setAVCSequenceParameterSetFlag

          void setAVCSequenceParameterSetFlag(@UInt8
                                              Byte avcSequenceParameterSetFlag)

      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.

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

    - #### getAVCPictureParameterSetFlag

          @UInt8
          byte getAVCPictureParameterSetFlag()

      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.

      Returns:
        Location and the constancy of picture parameter sets.
      See Also:
        `AVCPICTUREPARAMETERSETFLAG_DEFAULT`, `CONSTANCYFLAG_UNKNOWN`, `CONSTANCYFLAG_CONSTANT`, `INBANDLOCATION_UNKNOWN`, `INBANDLOCATION_FIRSTACCESSUNIT`, `INBANDLOCATION_EVERYACCESSUNIT`, `INBANDLOCATION_EVERYGOP`

    - #### setAVCPictureParameterSetFlag

          void setAVCPictureParameterSetFlag(@UInt8
                                             Byte avcPictureParaemterSetFlag)

      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.

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

    - #### clone

          AVCSubDescriptor clone()

      Description copied from interface: `SubDescriptor`

      Create a cloned copy of this sub descriptor.

      Specified by:
        `clone` in interface `InterchangeObject`
      Specified by:
        `clone` in interface `MediaEntity`
      Specified by:
        `clone` in interface `SubDescriptor`
      Returns:
        Cloned copy of this sub descriptor.

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