Class VkVideoEncodeH265RateControlInfoEXT
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkVideoEncodeH265RateControlInfoEXT
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class VkVideoEncodeH265RateControlInfoEXT extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure describing H.265 stream rate control parameters.Description
In order to provide H.265-specific stream rate control parameters, add a
VkVideoEncodeH265RateControlInfoEXTstructure to thepNextchain of theVkVideoEncodeRateControlInfoKHRstructure in thepNextchain of theVkVideoCodingControlInfoKHRstructure passed to theCmdControlVideoCodingKHRcommand.The parameters from this structure act as a guidance for implementations to apply various rate control heuristics.
It is possible to infer the picture type to be used when encoding a frame, on the basis of the values provided for
consecutiveBFrameCount,idrPeriod, andgopFrameCount, but this inferred picture type will not be used by implementations to override the picture type provided inCmdEncodeVideoKHR. Additionally, it is not required for the video session to be reset if the inferred picture type does not match the actual picture type.Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXTrateControlStructuremust be a validVkVideoEncodeH265RateControlStructureFlagBitsEXTvalue
Layout
struct VkVideoEncodeH265RateControlInfoEXT { VkStructureTypesType(); void const *pNext(); uint32_tgopFrameCount(); uint32_tidrPeriod(); uint32_tconsecutiveBFrameCount(); VkVideoEncodeH265RateControlStructureFlagBitsEXTrateControlStructure(); uint8_tsubLayerCount(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkVideoEncodeH265RateControlInfoEXT.BufferAn array ofVkVideoEncodeH265RateControlInfoEXTstructs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intCONSECUTIVEBFRAMECOUNT
GOPFRAMECOUNT
IDRPERIOD
PNEXT
RATECONTROLSTRUCTUREThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSTYPE
SUBLAYERCOUNTThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkVideoEncodeH265RateControlInfoEXT(java.nio.ByteBuffer container)Creates aVkVideoEncodeH265RateControlInfoEXTinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkVideoEncodeH265RateControlInfoEXTcalloc()Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withmemCalloc.static VkVideoEncodeH265RateControlInfoEXT.Buffercalloc(int capacity)Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withmemCalloc.static VkVideoEncodeH265RateControlInfoEXT.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkVideoEncodeH265RateControlInfoEXTcalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.intconsecutiveBFrameCount()the number of consecutive B-frames between I- and/or P-frames within the GOP.VkVideoEncodeH265RateControlInfoEXTconsecutiveBFrameCount(int value)Sets the specified value to theconsecutiveBFrameCount()field.static VkVideoEncodeH265RateControlInfoEXTcreate()Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withBufferUtils.static VkVideoEncodeH265RateControlInfoEXT.Buffercreate(int capacity)Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withBufferUtils.static VkVideoEncodeH265RateControlInfoEXTcreate(long address)Returns a newVkVideoEncodeH265RateControlInfoEXTinstance for the specified memory address.static VkVideoEncodeH265RateControlInfoEXT.Buffercreate(long address, int capacity)Create aVkVideoEncodeH265RateControlInfoEXT.Bufferinstance at the specified memory.static VkVideoEncodeH265RateControlInfoEXTcreateSafe(long address)static VkVideoEncodeH265RateControlInfoEXT.BuffercreateSafe(long address, int capacity)intgopFrameCount()the number of frames contained within the group of pictures (GOP), starting from an intra frame and until the next intra frame.VkVideoEncodeH265RateControlInfoEXTgopFrameCount(int value)Sets the specified value to thegopFrameCount()field.intidrPeriod()the interval, in terms of number of frames, between two IDR frames.VkVideoEncodeH265RateControlInfoEXTidrPeriod(int value)Sets the specified value to theidrPeriod()field.static VkVideoEncodeH265RateControlInfoEXTmalloc()Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withmemAlloc.static VkVideoEncodeH265RateControlInfoEXT.Buffermalloc(int capacity)Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withmemAlloc.static VkVideoEncodeH265RateControlInfoEXT.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated on the specifiedMemoryStack.static VkVideoEncodeH265RateControlInfoEXTmalloc(org.lwjgl.system.MemoryStack stack)Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated on the specifiedMemoryStack.static intnconsecutiveBFrameCount(long struct)Unsafe version ofconsecutiveBFrameCount().static voidnconsecutiveBFrameCount(long struct, int value)Unsafe version ofconsecutiveBFrameCount.static intngopFrameCount(long struct)Unsafe version ofgopFrameCount().static voidngopFrameCount(long struct, int value)Unsafe version ofgopFrameCount.static intnidrPeriod(long struct)Unsafe version ofidrPeriod().static voidnidrPeriod(long struct, int value)Unsafe version ofidrPeriod.static longnpNext(long struct)Unsafe version ofpNext().static voidnpNext(long struct, long value)Unsafe version ofpNext.static intnrateControlStructure(long struct)Unsafe version ofrateControlStructure().static voidnrateControlStructure(long struct, int value)Unsafe version ofrateControlStructure.static intnsType(long struct)Unsafe version ofsType().static voidnsType(long struct, int value)Unsafe version ofsType.static bytensubLayerCount(long struct)Unsafe version ofsubLayerCount().static voidnsubLayerCount(long struct, byte value)Unsafe version ofsubLayerCount.longpNext()NULLor a pointer to a structure extending this structure.VkVideoEncodeH265RateControlInfoEXTpNext(long value)Sets the specified value to thepNext()field.intrateControlStructure()aVkVideoEncodeH265RateControlStructureFlagBitsEXTvalue specifying the expected encode stream reference structure, to aid in rate control calculations.VkVideoEncodeH265RateControlInfoEXTrateControlStructure(int value)Sets the specified value to therateControlStructure()field.VkVideoEncodeH265RateControlInfoEXTset(int sType, long pNext, int gopFrameCount, int idrPeriod, int consecutiveBFrameCount, int rateControlStructure, byte subLayerCount)Initializes this struct with the specified values.VkVideoEncodeH265RateControlInfoEXTset(VkVideoEncodeH265RateControlInfoEXT src)Copies the specified struct data to this struct.intsizeof()intsType()the type of this structure.VkVideoEncodeH265RateControlInfoEXTsType(int value)Sets the specified value to thesType()field.VkVideoEncodeH265RateControlInfoEXTsType$Default()Sets theSTRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXTvalue to thesType()field.bytesubLayerCount()specifies the number of sub layers enabled in the stream.VkVideoEncodeH265RateControlInfoEXTsubLayerCount(byte value)Sets the specified value to thesubLayerCount()field.
-
-
-
Constructor Detail
-
VkVideoEncodeH265RateControlInfoEXT
public VkVideoEncodeH265RateControlInfoEXT(java.nio.ByteBuffer container)
Creates aVkVideoEncodeH265RateControlInfoEXTinstance 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 Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
sType
public int sType()
the type of this structure.
-
pNext
public long pNext()
NULLor a pointer to a structure extending this structure.
-
gopFrameCount
public int gopFrameCount()
the number of frames contained within the group of pictures (GOP), starting from an intra frame and until the next intra frame. If it is set to 0, the implementation chooses a suitable value. If it is set toUINT32_MAX, the GOP length is treated as infinite.
-
idrPeriod
public int idrPeriod()
the interval, in terms of number of frames, between two IDR frames. If it is set to 0, the implementation chooses a suitable value. If it is set toUINT32_MAX, the IDR period is treated as infinite.
-
consecutiveBFrameCount
public int consecutiveBFrameCount()
the number of consecutive B-frames between I- and/or P-frames within the GOP.
-
rateControlStructure
public int rateControlStructure()
aVkVideoEncodeH265RateControlStructureFlagBitsEXTvalue specifying the expected encode stream reference structure, to aid in rate control calculations.
-
subLayerCount
public byte subLayerCount()
specifies the number of sub layers enabled in the stream.
-
sType
public VkVideoEncodeH265RateControlInfoEXT sType(int value)
Sets the specified value to thesType()field.
-
sType$Default
public VkVideoEncodeH265RateControlInfoEXT sType$Default()
Sets theSTRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXTvalue to thesType()field.
-
pNext
public VkVideoEncodeH265RateControlInfoEXT pNext(long value)
Sets the specified value to thepNext()field.
-
gopFrameCount
public VkVideoEncodeH265RateControlInfoEXT gopFrameCount(int value)
Sets the specified value to thegopFrameCount()field.
-
idrPeriod
public VkVideoEncodeH265RateControlInfoEXT idrPeriod(int value)
Sets the specified value to theidrPeriod()field.
-
consecutiveBFrameCount
public VkVideoEncodeH265RateControlInfoEXT consecutiveBFrameCount(int value)
Sets the specified value to theconsecutiveBFrameCount()field.
-
rateControlStructure
public VkVideoEncodeH265RateControlInfoEXT rateControlStructure(int value)
Sets the specified value to therateControlStructure()field.
-
subLayerCount
public VkVideoEncodeH265RateControlInfoEXT subLayerCount(byte value)
Sets the specified value to thesubLayerCount()field.
-
set
public VkVideoEncodeH265RateControlInfoEXT set(int sType, long pNext, int gopFrameCount, int idrPeriod, int consecutiveBFrameCount, int rateControlStructure, byte subLayerCount)
Initializes this struct with the specified values.
-
set
public VkVideoEncodeH265RateControlInfoEXT set(VkVideoEncodeH265RateControlInfoEXT src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkVideoEncodeH265RateControlInfoEXT malloc()
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkVideoEncodeH265RateControlInfoEXT calloc()
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkVideoEncodeH265RateControlInfoEXT create()
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated withBufferUtils.
-
create
public static VkVideoEncodeH265RateControlInfoEXT create(long address)
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance for the specified memory address.
-
createSafe
@Nullable public static VkVideoEncodeH265RateControlInfoEXT createSafe(long address)
-
malloc
public static VkVideoEncodeH265RateControlInfoEXT.Buffer malloc(int capacity)
Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkVideoEncodeH265RateControlInfoEXT.Buffer calloc(int capacity)
Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkVideoEncodeH265RateControlInfoEXT.Buffer create(int capacity)
Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkVideoEncodeH265RateControlInfoEXT.Buffer create(long address, int capacity)
Create aVkVideoEncodeH265RateControlInfoEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkVideoEncodeH265RateControlInfoEXT.Buffer createSafe(long address, int capacity)
-
malloc
public static VkVideoEncodeH265RateControlInfoEXT malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkVideoEncodeH265RateControlInfoEXT calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkVideoEncodeH265RateControlInfoEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkVideoEncodeH265RateControlInfoEXT.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkVideoEncodeH265RateControlInfoEXT.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkVideoEncodeH265RateControlInfoEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType().
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext().
-
ngopFrameCount
public static int ngopFrameCount(long struct)
Unsafe version ofgopFrameCount().
-
nidrPeriod
public static int nidrPeriod(long struct)
Unsafe version ofidrPeriod().
-
nconsecutiveBFrameCount
public static int nconsecutiveBFrameCount(long struct)
Unsafe version ofconsecutiveBFrameCount().
-
nrateControlStructure
public static int nrateControlStructure(long struct)
Unsafe version ofrateControlStructure().
-
nsubLayerCount
public static byte nsubLayerCount(long struct)
Unsafe version ofsubLayerCount().
-
nsType
public static void nsType(long struct, int value)Unsafe version ofsType.
-
npNext
public static void npNext(long struct, long value)Unsafe version ofpNext.
-
ngopFrameCount
public static void ngopFrameCount(long struct, int value)Unsafe version ofgopFrameCount.
-
nidrPeriod
public static void nidrPeriod(long struct, int value)Unsafe version ofidrPeriod.
-
nconsecutiveBFrameCount
public static void nconsecutiveBFrameCount(long struct, int value)Unsafe version ofconsecutiveBFrameCount.
-
nrateControlStructure
public static void nrateControlStructure(long struct, int value)Unsafe version ofrateControlStructure.
-
nsubLayerCount
public static void nsubLayerCount(long struct, byte value)Unsafe version ofsubLayerCount.
-
-