Class VkVideoEncodeAV1CapabilitiesKHR

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkVideoEncodeAV1CapabilitiesKHR>
org.lwjgl.vulkan.VkVideoEncodeAV1CapabilitiesKHR
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkVideoEncodeAV1CapabilitiesKHR extends org.lwjgl.system.Struct<VkVideoEncodeAV1CapabilitiesKHR> implements org.lwjgl.system.NativeResource
Structure describing AV1 encode capabilities.
Description

singleReferenceNameMask, unidirectionalCompoundReferenceNameMask, and bidirectionalCompoundReferenceNameMask are encoded such that when bit index i is set, it indicates support for the AV1 reference name STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME + i.

Note

These masks indicate which elements of the referenceNameSlotIndices member of VkVideoEncodeAV1PictureInfoKHR are supported to be used by the implementation. It is important to note that both the bits of these masks and the elements of referenceNameSlotIndices are indexed such that the first value specifies the support bit and DPB slot index, respectively, for the AV1 reference name STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME (i.e. there is no bit or element for STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME).

codedPictureAlignment provides information about implementation limitations to encode arbitrary resolutions. In particular, some implementations may not be able to generate bitstreams aligned to the requirements of the AV1 Specification (8x8). In such cases, the implementation may override the width and height of the bitstream, in order to produce a bitstream compliant to the AV1 Specification. If such an override occurs, the encoded resolution of the coded picture is enlargened, with the texel values used for the texel coordinates outside of the bounds of the codedExtent of the encode input picture resource being first governed by the rules regarding the encode input picture granularity. Any texel values outside of the region described by the encode input picture granularity are implementation-defined. Implementations should use well-defined values to minimize impact on the produced encoded content.

Note

This capability does not impose additional application requirements. However, these overrides change the effective resolution of the bitstream and add padding pixels. Applications sensitive to such overrides can use this capability and the corresponding override behavior to compute the cropping needed to reproduce the original input of the encoding and transmit it in a side channel (i.e. by using cropping fields available in a container). Additionally, applications can explicitly consider this alignment in their coded extent, to avoid implementation-defined texel values being included in the encoded content.

Valid Usage (Implicit)
See Also

VkExtent2D

Layout


 struct VkVideoEncodeAV1CapabilitiesKHR {
     VkStructureType sType();
     void * pNext();
     VkVideoEncodeAV1CapabilityFlagsKHR flags();
     StdVideoAV1Level maxLevel();
     VkExtent2D codedPictureAlignment();
     VkExtent2D maxTiles();
     VkExtent2D minTileSize();
     VkExtent2D maxTileSize();
     VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes();
     uint32_t maxSingleReferenceCount();
     uint32_t singleReferenceNameMask();
     uint32_t maxUnidirectionalCompoundReferenceCount();
     uint32_t maxUnidirectionalCompoundGroup1ReferenceCount();
     uint32_t unidirectionalCompoundReferenceNameMask();
     uint32_t maxBidirectionalCompoundReferenceCount();
     uint32_t maxBidirectionalCompoundGroup1ReferenceCount();
     uint32_t maxBidirectionalCompoundGroup2ReferenceCount();
     uint32_t bidirectionalCompoundReferenceNameMask();
     uint32_t maxTemporalLayerCount();
     uint32_t maxSpatialLayerCount();
     uint32_t maxOperatingPoints();
     uint32_t minQIndex();
     uint32_t maxQIndex();
     VkBool32 prefersGopRemainingFrames();
     VkBool32 requiresGopRemainingFrames();
     VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • STYPE

      public static final int STYPE
      The struct member offsets.
    • PNEXT

      public static final int PNEXT
      The struct member offsets.
    • FLAGS

      public static final int FLAGS
      The struct member offsets.
    • MAXLEVEL

      public static final int MAXLEVEL
      The struct member offsets.
    • CODEDPICTUREALIGNMENT

      public static final int CODEDPICTUREALIGNMENT
      The struct member offsets.
    • MAXTILES

      public static final int MAXTILES
      The struct member offsets.
    • MINTILESIZE

      public static final int MINTILESIZE
      The struct member offsets.
    • MAXTILESIZE

      public static final int MAXTILESIZE
      The struct member offsets.
    • SUPERBLOCKSIZES

      public static final int SUPERBLOCKSIZES
      The struct member offsets.
    • MAXSINGLEREFERENCECOUNT

      public static final int MAXSINGLEREFERENCECOUNT
      The struct member offsets.
    • SINGLEREFERENCENAMEMASK

      public static final int SINGLEREFERENCENAMEMASK
      The struct member offsets.
    • MAXUNIDIRECTIONALCOMPOUNDREFERENCECOUNT

      public static final int MAXUNIDIRECTIONALCOMPOUNDREFERENCECOUNT
      The struct member offsets.
    • MAXUNIDIRECTIONALCOMPOUNDGROUP1REFERENCECOUNT

      public static final int MAXUNIDIRECTIONALCOMPOUNDGROUP1REFERENCECOUNT
      The struct member offsets.
    • UNIDIRECTIONALCOMPOUNDREFERENCENAMEMASK

      public static final int UNIDIRECTIONALCOMPOUNDREFERENCENAMEMASK
      The struct member offsets.
    • MAXBIDIRECTIONALCOMPOUNDREFERENCECOUNT

      public static final int MAXBIDIRECTIONALCOMPOUNDREFERENCECOUNT
      The struct member offsets.
    • MAXBIDIRECTIONALCOMPOUNDGROUP1REFERENCECOUNT

      public static final int MAXBIDIRECTIONALCOMPOUNDGROUP1REFERENCECOUNT
      The struct member offsets.
    • MAXBIDIRECTIONALCOMPOUNDGROUP2REFERENCECOUNT

      public static final int MAXBIDIRECTIONALCOMPOUNDGROUP2REFERENCECOUNT
      The struct member offsets.
    • BIDIRECTIONALCOMPOUNDREFERENCENAMEMASK

      public static final int BIDIRECTIONALCOMPOUNDREFERENCENAMEMASK
      The struct member offsets.
    • MAXTEMPORALLAYERCOUNT

      public static final int MAXTEMPORALLAYERCOUNT
      The struct member offsets.
    • MAXSPATIALLAYERCOUNT

      public static final int MAXSPATIALLAYERCOUNT
      The struct member offsets.
    • MAXOPERATINGPOINTS

      public static final int MAXOPERATINGPOINTS
      The struct member offsets.
    • MINQINDEX

      public static final int MINQINDEX
      The struct member offsets.
    • MAXQINDEX

      public static final int MAXQINDEX
      The struct member offsets.
    • PREFERSGOPREMAININGFRAMES

      public static final int PREFERSGOPREMAININGFRAMES
      The struct member offsets.
    • REQUIRESGOPREMAININGFRAMES

      public static final int REQUIRESGOPREMAININGFRAMES
      The struct member offsets.
    • STDSYNTAXFLAGS

      public static final int STDSYNTAXFLAGS
      The struct member offsets.
  • Constructor Details

    • VkVideoEncodeAV1CapabilitiesKHR

      public VkVideoEncodeAV1CapabilitiesKHR(ByteBuffer container)
      Creates a VkVideoEncodeAV1CapabilitiesKHR instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

      The created instance holds a strong reference to the container object.

  • Method Details

    • sizeof

      public int sizeof()
      Specified by:
      sizeof in class org.lwjgl.system.Struct<VkVideoEncodeAV1CapabilitiesKHR>
    • sType

      public int sType()
      a VkStructureType value identifying this structure.
    • pNext

      public long pNext()
      NULL or a pointer to a structure extending this structure.
    • flags

      public int flags()
      a bitmask of VkVideoEncodeAV1CapabilityFlagBitsKHR indicating supported AV1 encoding capabilities.
    • maxLevel

      public int maxLevel()
      a StdVideoAV1Level value indicating the maximum AV1 level supported by the profile, as defined in section A.3 of the AV1 Specification.
    • codedPictureAlignment

      public VkExtent2D codedPictureAlignment()
      indicates the alignment at which the implementation will code pictures. This capability does not impose any valid usage constraints on the application. However, depending on the codedExtent of the encode input picture resource, this capability may result in a change of the resolution of the encoded picture, as described in more detail below.
    • maxTiles

      public VkExtent2D maxTiles()
      indicates the maximum number of AV1 tile columns and rows the implementation supports.
    • minTileSize

      public VkExtent2D minTileSize()
      indicates the minimum extent of individual AV1 tiles the implementation supports.
    • maxTileSize

      public VkExtent2D maxTileSize()
      indicates the maximum extent of individual AV1 tiles the implementation supports.
    • superblockSizes

      public int superblockSizes()
      a bitmask of VkVideoEncodeAV1SuperblockSizeFlagBitsKHR values indicating the supported AV1 superblock sizes.
    • maxSingleReferenceCount

      public int maxSingleReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using single reference prediction mode.
    • singleReferenceNameMask

      public int singleReferenceNameMask()
      a bitmask of supported AV1 reference names when using single reference prediction mode.
    • maxUnidirectionalCompoundReferenceCount

      public int maxUnidirectionalCompoundReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using unidirectional compound prediction mode.
    • maxUnidirectionalCompoundGroup1ReferenceCount

      public int maxUnidirectionalCompoundGroup1ReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using unidirectional compound prediction mode from reference frame group 1, as defined in section 6.10.24 of the AV1 Specification.
    • unidirectionalCompoundReferenceNameMask

      public int unidirectionalCompoundReferenceNameMask()
    • maxBidirectionalCompoundReferenceCount

      public int maxBidirectionalCompoundReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using bidirectional compound prediction mode.
    • maxBidirectionalCompoundGroup1ReferenceCount

      public int maxBidirectionalCompoundGroup1ReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using bidirectional compound prediction mode from reference frame group 1, as defined in section 6.10.24 of the AV1 Specification.
    • maxBidirectionalCompoundGroup2ReferenceCount

      public int maxBidirectionalCompoundGroup2ReferenceCount()
      indicates the maximum number of reference pictures the implementation supports when using bidirectional compound prediction mode from reference frame group 2, as defined in section 6.10.24 of the AV1 Specification.
    • bidirectionalCompoundReferenceNameMask

      public int bidirectionalCompoundReferenceNameMask()
    • maxTemporalLayerCount

      public int maxTemporalLayerCount()
      indicates the maximum number of AV1 temporal layers supported by the implementation.
    • maxSpatialLayerCount

      public int maxSpatialLayerCount()
      indicates the maximum number of AV1 spatial layers supported by the implementation.
    • maxOperatingPoints

      public int maxOperatingPoints()
      indicates the maximum number of AV1 operating points supported by the implementation.
    • minQIndex

      public int minQIndex()
      indicates the minimum quantizer index value supported.
    • maxQIndex

      public int maxQIndex()
      indicates the maximum quantizer index value supported.
    • prefersGopRemainingFrames

      public boolean prefersGopRemainingFrames()
      indicates that the implementation’s rate control algorithm prefers the application to specify the number of frames in each AV1 rate control group remaining in the current group of pictures when beginning a video coding scope.
    • requiresGopRemainingFrames

      public boolean requiresGopRemainingFrames()
      indicates that the implementation’s rate control algorithm requires the application to specify the number of frames in each AV1 rate control group remaining in the current group of pictures when beginning a video coding scope.
    • stdSyntaxFlags

      public int stdSyntaxFlags()
      a bitmask of VkVideoEncodeAV1StdFlagBitsKHR indicating capabilities related to AV1 syntax elements.
    • sType

      public VkVideoEncodeAV1CapabilitiesKHR sType(int value)
      Sets the specified value to the sType() field.
    • sType$Default

      public VkVideoEncodeAV1CapabilitiesKHR sType$Default()
    • pNext

      public VkVideoEncodeAV1CapabilitiesKHR pNext(long value)
      Sets the specified value to the pNext() field.
    • set

      public VkVideoEncodeAV1CapabilitiesKHR set(int sType, long pNext)
      Initializes this struct with the specified values.
    • set

      Copies the specified struct data to this struct.
      Parameters:
      src - the source struct
      Returns:
      this struct
    • malloc

      public static VkVideoEncodeAV1CapabilitiesKHR malloc()
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance allocated with memAlloc. The instance must be explicitly freed.
    • calloc

      public static VkVideoEncodeAV1CapabilitiesKHR calloc()
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance allocated with memCalloc. The instance must be explicitly freed.
    • create

      public static VkVideoEncodeAV1CapabilitiesKHR create()
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance allocated with BufferUtils.
    • create

      public static VkVideoEncodeAV1CapabilitiesKHR create(long address)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance for the specified memory address.
    • createSafe

      public static @Nullable VkVideoEncodeAV1CapabilitiesKHR createSafe(long address)
      Like create, but returns null if address is NULL.
    • malloc

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer malloc(int capacity)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR.Buffer instance allocated with memAlloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • calloc

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer calloc(int capacity)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR.Buffer instance allocated with memCalloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • create

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer create(int capacity)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR.Buffer instance allocated with BufferUtils.
      Parameters:
      capacity - the buffer capacity
    • create

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer create(long address, int capacity)
      Create a VkVideoEncodeAV1CapabilitiesKHR.Buffer instance at the specified memory.
      Parameters:
      address - the memory address
      capacity - the buffer capacity
    • createSafe

      public static @Nullable VkVideoEncodeAV1CapabilitiesKHR.Buffer createSafe(long address, int capacity)
      Like create, but returns null if address is NULL.
    • malloc

      public static VkVideoEncodeAV1CapabilitiesKHR malloc(org.lwjgl.system.MemoryStack stack)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance allocated on the specified MemoryStack.
      Parameters:
      stack - the stack from which to allocate
    • calloc

      public static VkVideoEncodeAV1CapabilitiesKHR calloc(org.lwjgl.system.MemoryStack stack)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      stack - the stack from which to allocate
    • malloc

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR.Buffer instance allocated on the specified MemoryStack.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • calloc

      public static VkVideoEncodeAV1CapabilitiesKHR.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new VkVideoEncodeAV1CapabilitiesKHR.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • nsType

      public static int nsType(long struct)
      Unsafe version of sType().
    • npNext

      public static long npNext(long struct)
      Unsafe version of pNext().
    • nflags

      public static int nflags(long struct)
      Unsafe version of flags().
    • nmaxLevel

      public static int nmaxLevel(long struct)
      Unsafe version of maxLevel().
    • ncodedPictureAlignment

      public static VkExtent2D ncodedPictureAlignment(long struct)
      Unsafe version of codedPictureAlignment().
    • nmaxTiles

      public static VkExtent2D nmaxTiles(long struct)
      Unsafe version of maxTiles().
    • nminTileSize

      public static VkExtent2D nminTileSize(long struct)
      Unsafe version of minTileSize().
    • nmaxTileSize

      public static VkExtent2D nmaxTileSize(long struct)
      Unsafe version of maxTileSize().
    • nsuperblockSizes

      public static int nsuperblockSizes(long struct)
      Unsafe version of superblockSizes().
    • nmaxSingleReferenceCount

      public static int nmaxSingleReferenceCount(long struct)
      Unsafe version of maxSingleReferenceCount().
    • nsingleReferenceNameMask

      public static int nsingleReferenceNameMask(long struct)
      Unsafe version of singleReferenceNameMask().
    • nmaxUnidirectionalCompoundReferenceCount

      public static int nmaxUnidirectionalCompoundReferenceCount(long struct)
    • nmaxUnidirectionalCompoundGroup1ReferenceCount

      public static int nmaxUnidirectionalCompoundGroup1ReferenceCount(long struct)
    • nunidirectionalCompoundReferenceNameMask

      public static int nunidirectionalCompoundReferenceNameMask(long struct)
    • nmaxBidirectionalCompoundReferenceCount

      public static int nmaxBidirectionalCompoundReferenceCount(long struct)
    • nmaxBidirectionalCompoundGroup1ReferenceCount

      public static int nmaxBidirectionalCompoundGroup1ReferenceCount(long struct)
    • nmaxBidirectionalCompoundGroup2ReferenceCount

      public static int nmaxBidirectionalCompoundGroup2ReferenceCount(long struct)
    • nbidirectionalCompoundReferenceNameMask

      public static int nbidirectionalCompoundReferenceNameMask(long struct)
    • nmaxTemporalLayerCount

      public static int nmaxTemporalLayerCount(long struct)
      Unsafe version of maxTemporalLayerCount().
    • nmaxSpatialLayerCount

      public static int nmaxSpatialLayerCount(long struct)
      Unsafe version of maxSpatialLayerCount().
    • nmaxOperatingPoints

      public static int nmaxOperatingPoints(long struct)
      Unsafe version of maxOperatingPoints().
    • nminQIndex

      public static int nminQIndex(long struct)
      Unsafe version of minQIndex().
    • nmaxQIndex

      public static int nmaxQIndex(long struct)
      Unsafe version of maxQIndex().
    • nprefersGopRemainingFrames

      public static int nprefersGopRemainingFrames(long struct)
      Unsafe version of prefersGopRemainingFrames().
    • nrequiresGopRemainingFrames

      public static int nrequiresGopRemainingFrames(long struct)
      Unsafe version of requiresGopRemainingFrames().
    • nstdSyntaxFlags

      public static int nstdSyntaxFlags(long struct)
      Unsafe version of stdSyntaxFlags().
    • nsType

      public static void nsType(long struct, int value)
      Unsafe version of sType.
    • npNext

      public static void npNext(long struct, long value)
      Unsafe version of pNext.