In order to provide H.264-specific stream rate control parameters, add a VkVideoEncodeH264RateControlInfoEXT structure to the pNext chain of the VkVideoEncodeRateControlInfoKHR structure in the pNext chain of the VkVideoCodingControlInfoKHR structure passed to the CmdControlVideoCodingKHR command.
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, and gopFrameCount, but this inferred picture type will not be used by implementations to override the picture type provided in CmdEncodeVideoKHR. Additionally, it is not required for the video session to be reset if the inferred picture type does not match the actual picture type.
sType must be STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXTflags must be a valid combination of VkVideoEncodeH264RateControlFlagBitsEXT values
struct VkVideoEncodeH264RateControlInfoEXT {
VkStructureType sType;
void const * pNext;
VkVideoEncodeH264RateControlFlagsEXT flags;
uint32_t gopFrameCount;
uint32_t idrPeriod;
uint32_t consecutiveBFrameCount;
uint32_t temporalLayerCount;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkVideoEncodeH264RateControlInfoEXT.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | CONSECUTIVEBFRAMECOUNT
The struct member offsets. |
| public static final int | FLAGS
The struct member offsets. |
| public static final int | GOPFRAMECOUNT
The struct member offsets. |
| public static final int | IDRPERIOD
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| public static final int | TEMPORALLAYERCOUNT
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkVideoEncodeH264RateControlInfoEXT(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT | |
| public static VkVideoEncodeH264RateControlInfoEXT. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public int | consecutiveBFrameCount()
the number of consecutive B-frames between I- and/or P-frames within the GOP. |
| public VkVideoEncodeH264RateControlInfoEXT | |
| protected VkVideoEncodeH264RateControlInfoEXT | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkVideoEncodeH264RateControlInfoEXT | |
| public static VkVideoEncodeH264RateControlInfoEXT | create(long address)
Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT. | create(int
the buffer capacity capacity)Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkVideoEncodeH264RateControlInfoEXT | |
| public static VkVideoEncodeH264RateControlInfoEXT. | |
| public int | |
| public VkVideoEncodeH264RateControlInfoEXT | |
| 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. |
| public VkVideoEncodeH264RateControlInfoEXT | |
| public int | |
| public VkVideoEncodeH264RateControlInfoEXT | |
| public static VkVideoEncodeH264RateControlInfoEXT | |
| public static VkVideoEncodeH264RateControlInfoEXT. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkVideoEncodeH264RateControlInfoEXT. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public long | |
| public VkVideoEncodeH264RateControlInfoEXT | |
| public VkVideoEncodeH264RateControlInfoEXT | set(int sType, long pNext, int flags, int gopFrameCount, int idrPeriod, int consecutiveBFrameCount, int temporalLayerCount)
Initializes this struct with the specified values. |
| public VkVideoEncodeH264RateControlInfoEXT | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkVideoEncodeH264RateControlInfoEXT | |
| public VkVideoEncodeH264RateControlInfoEXT | sType$Default()
Sets the |
| public int | |
| public VkVideoEncodeH264RateControlInfoEXT |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| CONSECUTIVEBFRAMECOUNT | back to summary |
|---|---|
| public static final int CONSECUTIVEBFRAMECOUNT The struct member offsets. | |
| FLAGS | back to summary |
|---|---|
| public static final int FLAGS The struct member offsets. | |
| GOPFRAMECOUNT | back to summary |
|---|---|
| public static final int GOPFRAMECOUNT The struct member offsets. | |
| IDRPERIOD | back to summary |
|---|---|
| public static final int IDRPERIOD The struct member offsets. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| TEMPORALLAYERCOUNT | back to summary |
|---|---|
| public static final int TEMPORALLAYERCOUNT The struct member offsets. | |
| VkVideoEncodeH264RateControlInfoEXT | back to summary |
|---|---|
| protected VkVideoEncodeH264RateControlInfoEXT(long address, ByteBuffer container) | |
| VkVideoEncodeH264RateControlInfoEXT | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| calloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Returns a new
| |
| consecutiveBFrameCount | back to summary |
|---|---|
| public int consecutiveBFrameCount() the number of consecutive B-frames between I- and/or P-frames within the GOP.
| |
| consecutiveBFrameCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT consecutiveBFrameCount(int value) Sets the specified value to the | |
| create | back to summary |
|---|---|
| protected VkVideoEncodeH264RateControlInfoEXT create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Create a
| |
| createSafe | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Like
| |
| flags | back to summary |
|---|---|
| public int flags() a bitmask of
| |
| flags | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT flags(int value) Sets the specified value to the | |
| gopFrameCount | back to summary |
|---|---|
| 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 to
| |
| gopFrameCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT gopFrameCount(int value) Sets the specified value to the | |
| idrPeriod | back to summary |
|---|---|
| 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 to
| |
| idrPeriod | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT idrPeriod(int value) Sets the specified value to the | |
| malloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkVideoEncodeH264RateControlInfoEXT. Returns a new
| |
| nconsecutiveBFrameCount | back to summary |
|---|---|
| public static int nconsecutiveBFrameCount(long struct) Unsafe version of | |
| nconsecutiveBFrameCount | back to summary |
|---|---|
| public static void nconsecutiveBFrameCount(long struct, int value) Unsafe version of | |
| nflags | back to summary |
|---|---|
| public static int nflags(long struct) Unsafe version of | |
| nflags | back to summary |
|---|---|
| public static void nflags(long struct, int value) Unsafe version of | |
| ngopFrameCount | back to summary |
|---|---|
| public static int ngopFrameCount(long struct) Unsafe version of | |
| ngopFrameCount | back to summary |
|---|---|
| public static void ngopFrameCount(long struct, int value) Unsafe version of | |
| nidrPeriod | back to summary |
|---|---|
| public static int nidrPeriod(long struct) Unsafe version of | |
| nidrPeriod | back to summary |
|---|---|
| public static void nidrPeriod(long struct, int value) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| ntemporalLayerCount | back to summary |
|---|---|
| public static int ntemporalLayerCount(long struct) Unsafe version of | |
| ntemporalLayerCount | back to summary |
|---|---|
| public static void ntemporalLayerCount(long struct, int value) Unsafe version of | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT pNext(long value) Sets the specified value to the | |
| set | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT set(int sType, long pNext, int flags, int gopFrameCount, int idrPeriod, int consecutiveBFrameCount, int temporalLayerCount) Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT set(VkVideoEncodeH264RateControlInfoEXT src) Copies the specified struct data to this struct.
| |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT sType$Default() Sets the | |
| temporalLayerCount | back to summary |
|---|---|
| public int temporalLayerCount() specifies the number of temporal layers enabled in the stream.
| |
| temporalLayerCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT temporalLayerCount(int value) Sets the specified value to the | |
VkVideoEncodeH264RateControlInfoEXT structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkVideoEncodeH264RateControlInfoEXT |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkVideoEncodeH264RateControlInfoEXT ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| consecutiveBFrameCount | back to summary |
|---|---|
public int consecutiveBFrameCount()
| |
| consecutiveBFrameCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| flags | back to summary |
|---|---|
public int flags()
| |
| flags | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| getElementFactory | back to summary |
|---|---|
| protected VkVideoEncodeH264RateControlInfoEXT getElementFactory() Implements abstract org.
| |
| gopFrameCount | back to summary |
|---|---|
public int gopFrameCount()
| |
| gopFrameCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| idrPeriod | back to summary |
|---|---|
public int idrPeriod()
| |
| idrPeriod | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| self | back to summary |
|---|---|
| protected VkVideoEncodeH264RateControlInfoEXT. Implements abstract org.
| |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the | |
| temporalLayerCount | back to summary |
|---|---|
public int temporalLayerCount()
| |
| temporalLayerCount | back to summary |
|---|---|
| public VkVideoEncodeH264RateControlInfoEXT. Sets the specified value to the | |