org.lwjgl.vulkan.EXTVideoEncodeH264 Maven / Gradle / Ivy
Show all versions of lwjgl-vulkan Show documentation
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
/**
*
* - {@link VkVideoEncodeH264DpbSlotInfoEXT}
* - {@link VkVideoEncodeH264NaluSliceEXT}
* - Extending {@link VkVideoCapabilitiesKHR}:
*
*
* - {@link VkVideoEncodeH264CapabilitiesEXT}
*
*
* - Extending {@link VkVideoEncodeInfoKHR}:
*
*
* - {@link VkVideoEncodeH264EmitPictureParametersEXT}
* - {@link VkVideoEncodeH264VclFrameInfoEXT}
*
*
* - Extending {@link VkVideoProfileKHR}, {@link VkQueryPoolCreateInfo}, {@link VkFormatProperties2}, {@link VkImageCreateInfo}, {@link VkImageViewCreateInfo}, {@link VkBufferCreateInfo}:
*
*
* - {@link VkVideoEncodeH264ProfileEXT}
*
*
* - Extending {@link VkVideoSessionCreateInfoKHR}:
*
*
* - {@link VkVideoEncodeH264SessionCreateInfoEXT}
*
*
* - Extending {@link VkVideoSessionParametersCreateInfoKHR}:
*
*
* - {@link VkVideoEncodeH264SessionParametersCreateInfoEXT}
*
*
* - Extending {@link VkVideoSessionParametersUpdateInfoKHR}:
*
*
* - {@link VkVideoEncodeH264SessionParametersAddInfoEXT}
*
*
*
*
* VK_EXT_video_encode_h264
*
*
* - Name String
* - {@code VK_EXT_video_encode_h264}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 39
* - Revision
* - 2
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
* - Requires {@link KHRVideoEncodeQueue VK_KHR_video_encode_queue}
* - This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.
*
* - Contact
*
* - Ahmed Abdelkhalek aabdelkh
*
*
*
* Other Extension Metadata
*
*
* - Last Modified Date
* - 2021-03-29
* - IP Status
* - No known IP claims.
* - Contributors
*
* - Ahmed Abdelkhalek, AMD
* - Daniel Rakos, AMD
* - George Hao, AMD
* - Jake Beju, AMD
* - Peter Fang, AMD
* - Ping Liu, Intel
* - Srinath Kumarapuram, NVIDIA
* - Tony Zlatinski, NVIDIA
* - Yang Liu, AMD
*
*
*/
public final class EXTVideoEncodeH264 {
/** The extension specification version. */
public static final int VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION = 2;
/** The extension name. */
public static final String VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME = "VK_EXT_video_encode_h264";
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT}
*
*/
public static final int
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008;
/** Extends {@code VkVideoCodecOperationFlagBitsKHR}. */
public static final int VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x10000;
/**
* VkVideoEncodeH264CapabilityFlagBitsEXT - Video encode H.264 capability flags
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT} reports if CABAC entropy coding is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT} reports if CAVLC entropy coding is supported. An implementation must support at least one entropy coding mode.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT} reports if using weighted_bipred_idc_flag from StdVideoH264PpsFlags is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT} reports if enabling transform_8x8_mode_flag in StdVideoH264PpsFlags is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT} reports if setting chroma_qp_index_offset in StdVideoH264PictureParameterSet is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT} reports if setting second_chroma_qp_index_offset in StdVideoH264PictureParameterSet is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT} reports if using STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED from StdVideoH264DisableDeblockingFilterIdc is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT} reports if using STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED from StdVideoH264DisableDeblockingFilterIdc is supported.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT} reports if using STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL from StdVideoH264DisableDeblockingFilterIdc is supported. An implementation must support at least one deblocking filter mode.
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT}
* - {@link #VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT}
*
*/
public static final int
VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x4,
VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x8,
VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x10,
VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x20,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x40,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x80,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x100,
VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x200,
VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x400;
/**
* VkVideoEncodeH264InputModeFlagBitsEXT - Video encode H.264 input modes
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT} indicates that a single command buffer must at least encode an entire frame. Any non-VCL NALUs must be encoded using the same command buffer as the frame if {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT} indicates that a single command buffer must at least encode a single slice. Any non-VCL NALUs must be encoded using the same command buffer as the first slice of the frame if {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT} indicates that a single command buffer may encode a non-VCL NALU by itself.
*
*
* An implementation must support at least one of {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT} or {@link #VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT}.
*/
public static final int
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x4;
/**
* VkVideoEncodeH264OutputModeFlagBitsEXT - Video encode H.264 output modes
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT} indicates that calls to generate all NALUs of a frame must be included within a single begin/end pair. Any non-VCL NALUs must be encoded within the same begin/end pair if {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT} indicates that each begin/end pair must encode at least one slice. Any non-VCL NALUs must be encoded within the same begin/end pair as the first slice of the frame if {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT} indicates that each begin/end pair may encode only a non-VCL NALU by itself. An implementation must support at least one of {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT} or {@link #VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT}.
*
*
* A single begin/end pair must not encode more than a single frame.
*
* The bitstreams of NALUs generated within a single begin/end pair are written continuously into the same bitstream buffer (any padding between the NALUs must be compliant to the H.264 standard).
*
* The supported input modes must be coarser or equal to the supported output modes. For example, it is illegal to report slice input is supported but only frame output is supported.
*
* An implementation must report one of the following combinations of input/output modes:
*
*
* - Input: Frame, Output: Frame
* - Input: Frame, Output: Frame and Non-VCL
* - Input: Frame, Output: Slice
* - Input: Frame, Output: Slice and Non-VCL
* - Input: Slice, Output: Slice
* - Input: Slice, Output: Slice and Non-VCL
* - Input: Frame and Non-VCL, Output: Frame and Non-VCL
* - Input: Frame and Non-VCL, Output: Slice and Non-VCL
* - Input: Slice and Non-VCL, Output: Slice and Non-VCL
*
*/
public static final int
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x4;
/**
* VkVideoEncodeH264CreateFlagBitsEXT - Video encode session creation flags
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT} is 0, and specifies no additional creation flags.
* - {@link #VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT} The current version of the specification has reserved this value for future use.
*
*/
public static final int
VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT = 0,
VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT = 0x1;
private EXTVideoEncodeH264() {}
}