Class VkVideoEncodeAV1RateControlLayerInfoKHR
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
When used, the values in minQIndex and maxQIndex guarantee that the effective quantizer index values used by the implementation will respect those lower and upper bounds, respectively. However, limiting the range of quantizer index values that the implementation is able to use will also limit the capabilities of the implementation’s rate control algorithm to comply to other constraints. In particular, the implementation may not be able to comply to the following:
- The average and/or peak bitrate values to be used for the encoded bitstream specified in the
averageBitrateandmaxBitratemembers of theVkVideoEncodeRateControlLayerInfoKHRstructure. - The upper bounds on the encoded frame size, for each rate control group, specified in the
maxFrameSizemember ofVkVideoEncodeAV1RateControlLayerInfoKHR.
Note
In general, applications need to configure rate control parameters appropriately in order to be able to get the desired rate control behavior, as described in the Video Encode Rate Control section.
When an instance of this structure is included in the pNext chain of a VkVideoEncodeRateControlLayerInfoKHR structure specified in one of the elements of the pLayers array member of the VkVideoEncodeRateControlInfoKHR structure passed to the CmdControlVideoCodingKHR command, VkVideoCodingControlInfoKHR::flags includes VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, and the bound video session was created with the video codec operation VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, it specifies the AV1-specific rate control parameters of the rate control layer corresponding to that element of pLayers.
Valid Usage
- If
useMinQIndexisTRUE, then theintraQIndex,predictiveQIndex, andbipredictiveQIndexmembers ofminQIndexmust all be betweenVkVideoEncodeAV1CapabilitiesKHR::minQIndexandVkVideoEncodeAV1CapabilitiesKHR::maxQIndex, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile - If
useMinQIndexisTRUEandVkVideoEncodeAV1CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR, then theintraQIndex,predictiveQIndex, andbipredictiveQIndexmembers ofminQIndexmust all specify the same value - If
useMaxQIndexisTRUE, then theintraQIndex,predictiveQIndex, andbipredictiveQIndexmembers ofmaxQIndexmust all be betweenVkVideoEncodeAV1CapabilitiesKHR::minQIndexandVkVideoEncodeAV1CapabilitiesKHR::maxQIndex, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile - If
useMaxQIndexisTRUEandVkVideoEncodeAV1CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR, then theintraQIndex,predictiveQIndex, andbipredictiveQIndexmembers ofmaxQIndexmust all specify the same value - If
useMinQIndexanduseMaxQIndexare bothTRUE, then theintraQIndex,predictiveQIndex, andbipredictiveQIndexmembers ofminQIndexmust all be less than or equal to the respective members ofmaxQIndex
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHRminQIndexmust be a validVkVideoEncodeAV1QIndexKHRstructuremaxQIndexmust be a validVkVideoEncodeAV1QIndexKHRstructuremaxFrameSizemust be a validVkVideoEncodeAV1FrameSizeKHRstructure
See Also
VkVideoEncodeAV1FrameSizeKHR, VkVideoEncodeAV1QIndexKHR
Layout
struct VkVideoEncodeAV1RateControlLayerInfoKHR {
VkStructureType sType();
void const * pNext();
VkBool32 useMinQIndex();
VkVideoEncodeAV1QIndexKHR minQIndex();
VkBool32 useMaxQIndex();
VkVideoEncodeAV1QIndexKHR maxQIndex();
VkBool32 useMaxFrameSize();
VkVideoEncodeAV1FrameSizeKHR maxFrameSize();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkVideoEncodeAV1RateControlLayerInfoKHRstructs.Nested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionCreates aVkVideoEncodeAV1RateControlLayerInfoKHRinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptioncalloc()Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.create()Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withBufferUtils.create(int capacity) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance for the specified memory address.create(long address, int capacity) Create aVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance at the specified memory.static @Nullable VkVideoEncodeAV1RateControlLayerInfoKHRcreateSafe(long address) static @Nullable VkVideoEncodeAV1RateControlLayerInfoKHR.BuffercreateSafe(long address, int capacity) malloc()Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated on the specifiedMemoryStack.specifies the upper bounds on the encoded frame size, for each rate control group, whenuseMaxFrameSizeis set toTRUE.maxFrameSize(Consumer<VkVideoEncodeAV1FrameSizeKHR> consumer) Passes themaxFrameSize()field to the specifiedConsumer.Copies the specifiedVkVideoEncodeAV1FrameSizeKHRto themaxFrameSize()field.specifies the upper bounds on the quantizer index values, for each rate control group, that the implementation’s rate control algorithm will use whenuseMaxQIndexis set toTRUE.maxQIndex(Consumer<VkVideoEncodeAV1QIndexKHR> consumer) Passes themaxQIndex()field to the specifiedConsumer.Copies the specifiedVkVideoEncodeAV1QIndexKHRto themaxQIndex()field.specifies the lower bounds on the quantizer index values, for each rate control group, that the implementation’s rate control algorithm will use whenuseMinQIndexis set toTRUE.minQIndex(Consumer<VkVideoEncodeAV1QIndexKHR> consumer) Passes theminQIndex()field to the specifiedConsumer.Copies the specifiedVkVideoEncodeAV1QIndexKHRto theminQIndex()field.static VkVideoEncodeAV1FrameSizeKHRnmaxFrameSize(long struct) Unsafe version ofmaxFrameSize().static voidnmaxFrameSize(long struct, VkVideoEncodeAV1FrameSizeKHR value) Unsafe version ofmaxFrameSize.static VkVideoEncodeAV1QIndexKHRnmaxQIndex(long struct) Unsafe version ofmaxQIndex().static voidnmaxQIndex(long struct, VkVideoEncodeAV1QIndexKHR value) Unsafe version ofmaxQIndex.static VkVideoEncodeAV1QIndexKHRnminQIndex(long struct) Unsafe version ofminQIndex().static voidnminQIndex(long struct, VkVideoEncodeAV1QIndexKHR value) Unsafe version ofminQIndex.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.static intnuseMaxFrameSize(long struct) Unsafe version ofuseMaxFrameSize().static voidnuseMaxFrameSize(long struct, int value) Unsafe version ofuseMaxFrameSize.static intnuseMaxQIndex(long struct) Unsafe version ofuseMaxQIndex().static voidnuseMaxQIndex(long struct, int value) Unsafe version ofuseMaxQIndex.static intnuseMinQIndex(long struct) Unsafe version ofuseMinQIndex().static voidnuseMinQIndex(long struct, int value) Unsafe version ofuseMinQIndex.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.set(int sType, long pNext, boolean useMinQIndex, VkVideoEncodeAV1QIndexKHR minQIndex, boolean useMaxQIndex, VkVideoEncodeAV1QIndexKHR maxQIndex, boolean useMaxFrameSize, VkVideoEncodeAV1FrameSizeKHR maxFrameSize) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHRvalue to thesType()field.booleanindicates whether the implementation’s rate control algorithm should use the values specified inmaxFrameSizeas the upper bounds on the encoded frame size for each rate control group.useMaxFrameSize(boolean value) Sets the specified value to theuseMaxFrameSize()field.booleanindicates whether the quantizer index values determined by rate control will be clamped to the upper bounds on the quantizer index values specified inmaxQIndex.useMaxQIndex(boolean value) Sets the specified value to theuseMaxQIndex()field.booleanindicates whether the quantizer index values determined by rate control will be clamped to the lower bounds on the quantizer index values specified inminQIndex.useMinQIndex(boolean value) Sets the specified value to theuseMinQIndex()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
USEMINQINDEX
public static final int USEMINQINDEXThe struct member offsets. -
MINQINDEX
public static final int MINQINDEXThe struct member offsets. -
USEMAXQINDEX
public static final int USEMAXQINDEXThe struct member offsets. -
MAXQINDEX
public static final int MAXQINDEXThe struct member offsets. -
USEMAXFRAMESIZE
public static final int USEMAXFRAMESIZEThe struct member offsets. -
MAXFRAMESIZE
public static final int MAXFRAMESIZEThe struct member offsets.
-
-
Constructor Details
-
VkVideoEncodeAV1RateControlLayerInfoKHR
Creates aVkVideoEncodeAV1RateControlLayerInfoKHRinstance at the current position of the specifiedByteBuffercontainer. 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:
sizeofin classorg.lwjgl.system.Struct<VkVideoEncodeAV1RateControlLayerInfoKHR>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
useMinQIndex
public boolean useMinQIndex()indicates whether the quantizer index values determined by rate control will be clamped to the lower bounds on the quantizer index values specified inminQIndex. -
minQIndex
specifies the lower bounds on the quantizer index values, for each rate control group, that the implementation’s rate control algorithm will use whenuseMinQIndexis set toTRUE. -
useMaxQIndex
public boolean useMaxQIndex()indicates whether the quantizer index values determined by rate control will be clamped to the upper bounds on the quantizer index values specified inmaxQIndex. -
maxQIndex
specifies the upper bounds on the quantizer index values, for each rate control group, that the implementation’s rate control algorithm will use whenuseMaxQIndexis set toTRUE. -
useMaxFrameSize
public boolean useMaxFrameSize()indicates whether the implementation’s rate control algorithm should use the values specified inmaxFrameSizeas the upper bounds on the encoded frame size for each rate control group. -
maxFrameSize
specifies the upper bounds on the encoded frame size, for each rate control group, whenuseMaxFrameSizeis set toTRUE. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHRvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
useMinQIndex
Sets the specified value to theuseMinQIndex()field. -
minQIndex
Copies the specifiedVkVideoEncodeAV1QIndexKHRto theminQIndex()field. -
minQIndex
public VkVideoEncodeAV1RateControlLayerInfoKHR minQIndex(Consumer<VkVideoEncodeAV1QIndexKHR> consumer) Passes theminQIndex()field to the specifiedConsumer. -
useMaxQIndex
Sets the specified value to theuseMaxQIndex()field. -
maxQIndex
Copies the specifiedVkVideoEncodeAV1QIndexKHRto themaxQIndex()field. -
maxQIndex
public VkVideoEncodeAV1RateControlLayerInfoKHR maxQIndex(Consumer<VkVideoEncodeAV1QIndexKHR> consumer) Passes themaxQIndex()field to the specifiedConsumer. -
useMaxFrameSize
Sets the specified value to theuseMaxFrameSize()field. -
maxFrameSize
Copies the specifiedVkVideoEncodeAV1FrameSizeKHRto themaxFrameSize()field. -
maxFrameSize
public VkVideoEncodeAV1RateControlLayerInfoKHR maxFrameSize(Consumer<VkVideoEncodeAV1FrameSizeKHR> consumer) Passes themaxFrameSize()field to the specifiedConsumer. -
set
public VkVideoEncodeAV1RateControlLayerInfoKHR set(int sType, long pNext, boolean useMinQIndex, VkVideoEncodeAV1QIndexKHR minQIndex, boolean useMaxQIndex, VkVideoEncodeAV1QIndexKHR maxQIndex, boolean useMaxFrameSize, VkVideoEncodeAV1FrameSizeKHR maxFrameSize) 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
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated withBufferUtils. -
create
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkVideoEncodeAV1RateControlLayerInfoKHR.Buffer createSafe(long address, int capacity) -
malloc
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkVideoEncodeAV1RateControlLayerInfoKHRinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkVideoEncodeAV1RateControlLayerInfoKHR.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkVideoEncodeAV1RateControlLayerInfoKHR.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeAV1RateControlLayerInfoKHR.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nuseMinQIndex
public static int nuseMinQIndex(long struct) Unsafe version ofuseMinQIndex(). -
nminQIndex
Unsafe version ofminQIndex(). -
nuseMaxQIndex
public static int nuseMaxQIndex(long struct) Unsafe version ofuseMaxQIndex(). -
nmaxQIndex
Unsafe version ofmaxQIndex(). -
nuseMaxFrameSize
public static int nuseMaxFrameSize(long struct) Unsafe version ofuseMaxFrameSize(). -
nmaxFrameSize
Unsafe version ofmaxFrameSize(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nuseMinQIndex
public static void nuseMinQIndex(long struct, int value) Unsafe version ofuseMinQIndex. -
nminQIndex
Unsafe version ofminQIndex. -
nuseMaxQIndex
public static void nuseMaxQIndex(long struct, int value) Unsafe version ofuseMaxQIndex. -
nmaxQIndex
Unsafe version ofmaxQIndex. -
nuseMaxFrameSize
public static void nuseMaxFrameSize(long struct, int value) Unsafe version ofuseMaxFrameSize. -
nmaxFrameSize
Unsafe version ofmaxFrameSize.
-