Class VkVideoEncodeH265PictureInfoKHR
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
This structure is specified in the pNext chain of the VkVideoEncodeInfoKHR structure passed to CmdEncodeVideoKHR to specify the codec-specific picture information for an H.265 encode operation.
- Encode Input Picture Information
- The image subregion used is determined according to the H.265 Encode Picture Data Access section.
- The encode input picture is associated with the H.265 picture information provided in
pStdPictureInfo.
- Std Picture Information
flags.reservedandreserved1are used only for padding purposes and are otherwise ignored;flags.is_referenceas defined in section 3.132 of the ITU-T H.265 Specification;flags.IrapPicFlagas defined in section 3.73 of the ITU-T H.265 Specification;flags.used_for_long_term_referenceis used to indicate whether the picture is marked as “used for long-term reference” as defined in section 8.3.2 of the ITU-T H.265 Specification;flags.discardable_flagandcross_layer_bla_flagas defined in section F.7.4.7.1 of the ITU-T H.265 Specification;pic_typeas defined in section 7.4.3.5 of the ITU-T H.265 Specification;sps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idare used to identify the active parameter sets, as described below;PicOrderCntValas defined in section 8.3.1 of the ITU-T H.265 Specification;TemporalIdas defined in section 7.4.2.2 of the ITU-T H.265 Specification;- if
pRefListsis notNULL, then it is a pointer to aStdVideoEncodeH265ReferenceListsInfostructure that is interpreted as follows:flags.reservedis used only for padding purposes and is otherwise ignored;ref_pic_list_modification_flag_l0andref_pic_list_modification_flag_l1as defined in section 7.4.7.2 of the ITU-T H.265 Specification;num_ref_idx_l0_active_minus1andnum_ref_idx_l1_active_minus1as defined in section 7.4.7.1 of the ITU-T H.265 Specification;RefPicList0andRefPicList1as defined in section 8.3.4 of the ITU-T H.265 Specification where each element of these arrays either identifies an active reference picture using its DPB slot index or contains the valueSTD_VIDEO_H265_NO_REFERENCE_PICTUREto indicate “no reference picture”;list_entry_l0andlist_entry_l1as defined in section 7.4.7.2 of the ITU-T H.265 Specification;
- if
flags.short_term_ref_pic_set_sps_flagis set, then theStdVideoH265ShortTermRefPicSetstructure pointed to bypShortTermRefPicSetis interpreted as defined for the elements of thepShortTermRefPicSetarray specified in H.265 sequence parameter sets. - if
flags.long_term_ref_pics_present_flagis set in the active SPS, then theStdVideoEncodeH265LongTermRefPicsstructure pointed to bypLongTermRefPicsis interpreted as follows:used_by_curr_pic_lt_flagis a bitmask where bit indexicorresponds toused_by_curr_pic_lt_flag[i]as defined in section 7.4.7.1 of the ITU-T H.265 Specification;- all other members of
StdVideoEncodeH265LongTermRefPicsare interpreted as defined in section 7.4.7.1 of the ITU-T H.265 Specification;
- all other members are interpreted as defined in section 7.4.7.1 of the ITU-T H.265 Specification.
Reference picture setup is controlled by the value of StdVideoEncodeH265PictureInfo::flags.is_reference. If it is set and a reconstructed picture is specified, then the latter is used as the target of picture reconstruction to activate the DPB slot specified in pEncodeInfo→pSetupReferenceSlot→slotIndex. If StdVideoEncodeH265PictureInfo::flags.is_reference is not set, but a reconstructed picture is specified, then the corresponding picture reference associated with the DPB slot is invalidated, as described in the DPB Slot States section.
- Active Parameter Sets
- The active VPS is the VPS identified by the key specified in
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id. - The active SPS is the SPS identified by the key specified by the pair constructed from
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_idandStdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id. - The active PPS is the PPS identified by the key specified by the triplet constructed from
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id,StdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, andStdVideoEncodeH265PictureInfo::pps_pic_parameter_set_id.
- The active VPS is the VPS identified by the key specified in
H.265 encoding uses explicit weighted sample prediction for a slice segment, as defined in section 8.5.3.3.4 of the ITU-T H.265 Specification, if any of the following conditions are true for the active PPS and the pStdSliceSegmentHeader member of the corresponding element of pNaluSliceSegmentEntries:
pStdSliceSegmentHeader→slice_typeisSTD_VIDEO_H265_SLICE_TYPE_Pandweighted_pred_flagis enabled in the active PPS.pStdSliceSegmentHeader→slice_typeisSTD_VIDEO_H265_SLICE_TYPE_Bandweighted_bipred_flagis enabled in the active PPS.
The number of H.265 tiles, as defined in section 3.174 of the ITU-T H.265 Specification, is derived from the num_tile_columns_minus1 and num_tile_rows_minus1 members of the active PPS as follows:
(num_tile_columns_minus1 + 1) × (num_tile_rows_minus1 + 1)
Valid Usage
naluSliceSegmentEntryCountmust be between 1 andVkVideoEncodeH265CapabilitiesKHR::maxSliceSegmentCount, inclusive, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile- If
VkVideoEncodeH265CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR, thennaluSliceSegmentEntryCountmust be greater than or equal to the number of H.265 tiles in the picture - If
VkVideoEncodeH265CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR, thennaluSliceSegmentEntryCountmust be less than or equal to the number of H.265 tiles in the picture - If
VkVideoEncodeH265CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHRand the slice segment corresponding to any element ofpNaluSliceSegmentEntriesuses explicit weighted sample prediction, thenVkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader→pWeightTablemust not beNULLfor that element ofpNaluSliceSegmentEntries - If
VkVideoEncodeH265CapabilitiesKHR::flags, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the used video profile, does not includeVIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR, thenVkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader→slice_typemust be identical for all elements ofpNaluSliceSegmentEntries
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHRpNaluSliceSegmentEntriesmust be a valid pointer to an array ofnaluSliceSegmentEntryCountvalidVkVideoEncodeH265NaluSliceSegmentInfoKHRstructurespStdPictureInfomust be a valid pointer to a validStdVideoEncodeH265PictureInfovaluenaluSliceSegmentEntryCountmust be greater than 0
See Also
VkVideoEncodeH265NaluSliceSegmentInfoKHR
Layout
struct VkVideoEncodeH265PictureInfoKHR {
VkStructureType sType();
void const * pNext();
uint32_t naluSliceSegmentEntryCount();
VkVideoEncodeH265NaluSliceSegmentInfoKHR const * pNaluSliceSegmentEntries();
StdVideoEncodeH265PictureInfo const * pStdPictureInfo();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkVideoEncodeH265PictureInfoKHRstructs.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.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkVideoEncodeH265PictureInfoKHR(ByteBuffer container) Creates aVkVideoEncodeH265PictureInfoKHRinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptioncalloc()Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.create()Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated withBufferUtils.create(int capacity) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkVideoEncodeH265PictureInfoKHRinstance for the specified memory address.create(long address, int capacity) Create aVkVideoEncodeH265PictureInfoKHR.Bufferinstance at the specified memory.static @Nullable VkVideoEncodeH265PictureInfoKHRcreateSafe(long address) static @Nullable VkVideoEncodeH265PictureInfoKHR.BuffercreateSafe(long address, int capacity) malloc()Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated on the specifiedMemoryStack.intthe number of elements inpNaluSliceSegmentEntries.static intnnaluSliceSegmentEntryCount(long struct) Unsafe version ofnaluSliceSegmentEntryCount().static voidnnaluSliceSegmentEntryCount(long struct, int value) Sets the specified value to thenaluSliceSegmentEntryCountfield of the specifiedstruct.npNaluSliceSegmentEntries(long struct) Unsafe version ofpNaluSliceSegmentEntries().static voidnpNaluSliceSegmentEntries(long struct, VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer value) Unsafe version ofpNaluSliceSegmentEntries.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.npStdPictureInfo(long struct) Unsafe version ofpStdPictureInfo().static voidnpStdPictureInfo(long struct, StdVideoEncodeH265PictureInfo value) Unsafe version ofpStdPictureInfo.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.a pointer to an array ofnaluSliceSegmentEntryCountVkVideoEncodeH265NaluSliceSegmentInfoKHRstructures specifying the parameters of the individual H.265 slice segments to encode for the input picture.Sets the address of the specifiedVkVideoEncodeH265NaluSliceSegmentInfoKHR.Bufferto thepNaluSliceSegmentEntries()field.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.a pointer to aStdVideoEncodeH265PictureInfostructure specifying H.265 picture information.Sets the address of the specifiedStdVideoEncodeH265PictureInfoto thepStdPictureInfo()field.set(int sType, long pNext, VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer pNaluSliceSegmentEntries, StdVideoEncodeH265PictureInfo pStdPictureInfo) 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_H265_PICTURE_INFO_KHRvalue to thesType()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.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. -
NALUSLICESEGMENTENTRYCOUNT
public static final int NALUSLICESEGMENTENTRYCOUNTThe struct member offsets. -
PNALUSLICESEGMENTENTRIES
public static final int PNALUSLICESEGMENTENTRIESThe struct member offsets. -
PSTDPICTUREINFO
public static final int PSTDPICTUREINFOThe struct member offsets.
-
-
Constructor Details
-
VkVideoEncodeH265PictureInfoKHR
Creates aVkVideoEncodeH265PictureInfoKHRinstance 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<VkVideoEncodeH265PictureInfoKHR>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. -
naluSliceSegmentEntryCount
public int naluSliceSegmentEntryCount()the number of elements inpNaluSliceSegmentEntries. -
pNaluSliceSegmentEntries
a pointer to an array ofnaluSliceSegmentEntryCountVkVideoEncodeH265NaluSliceSegmentInfoKHRstructures specifying the parameters of the individual H.265 slice segments to encode for the input picture. -
pStdPictureInfo
a pointer to aStdVideoEncodeH265PictureInfostructure specifying H.265 picture information. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHRvalue to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
pNaluSliceSegmentEntries
public VkVideoEncodeH265PictureInfoKHR pNaluSliceSegmentEntries(VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer value) Sets the address of the specifiedVkVideoEncodeH265NaluSliceSegmentInfoKHR.Bufferto thepNaluSliceSegmentEntries()field. -
pStdPictureInfo
Sets the address of the specifiedStdVideoEncodeH265PictureInfoto thepStdPictureInfo()field. -
set
public VkVideoEncodeH265PictureInfoKHR set(int sType, long pNext, VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer pNaluSliceSegmentEntries, StdVideoEncodeH265PictureInfo pStdPictureInfo) 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 newVkVideoEncodeH265PictureInfoKHRinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated withBufferUtils. -
create
Returns a newVkVideoEncodeH265PictureInfoKHRinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkVideoEncodeH265PictureInfoKHR.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkVideoEncodeH265PictureInfoKHR.Buffer createSafe(long address, int capacity) -
malloc
Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkVideoEncodeH265PictureInfoKHRinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkVideoEncodeH265PictureInfoKHR.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHR.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkVideoEncodeH265PictureInfoKHR.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkVideoEncodeH265PictureInfoKHR.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(). -
nnaluSliceSegmentEntryCount
public static int nnaluSliceSegmentEntryCount(long struct) Unsafe version ofnaluSliceSegmentEntryCount(). -
npNaluSliceSegmentEntries
public static VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer npNaluSliceSegmentEntries(long struct) Unsafe version ofpNaluSliceSegmentEntries(). -
npStdPictureInfo
Unsafe version ofpStdPictureInfo(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nnaluSliceSegmentEntryCount
public static void nnaluSliceSegmentEntryCount(long struct, int value) Sets the specified value to thenaluSliceSegmentEntryCountfield of the specifiedstruct. -
npNaluSliceSegmentEntries
public static void npNaluSliceSegmentEntries(long struct, VkVideoEncodeH265NaluSliceSegmentInfoKHR.Buffer value) Unsafe version ofpNaluSliceSegmentEntries. -
npStdPictureInfo
Unsafe version ofpStdPictureInfo. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-