org.lwjgl.vulkan.EXTVideoEncodeH265 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;
/**
* This extension allows applications to compress a raw video sequence by using the H.265/HEVC video compression standard.
*
* VK_EXT_video_encode_h265
*
*
* - Name String
* - {@code VK_EXT_video_encode_h265}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 40
* - 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
* - 2020-01-22
* - IP Status
* - No known IP claims.
* - Contributors
*
* - Ahmed Abdelkhalek, AMD
* - George Hao, AMD
* - Jake Beju, AMD
* - Chunbo Chen, Intel
* - Ping Liu, Intel
* - Srinath Kumarapuram, NVIDIA
* - Tony Zlatinski, NVIDIA
*
*
*/
public final class EXTVideoEncodeH265 {
/** The extension specification version. */
public static final int VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION = 2;
/** The extension name. */
public static final String VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME = "VK_EXT_video_encode_h265";
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT}
*
*/
public static final int
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT = 1000039001,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039002,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039003,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039004,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039008,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009;
/** Extends {@code VkVideoCodecOperationFlagBitsKHR}. */
public static final int VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0x20000;
/**
* VkVideoEncodeH265InputModeFlagBitsEXT - Video encode H.265 input modes
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H265_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_H265_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H265_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_H265_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_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_H265_INPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT} or {@link #VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT}.
*/
public static final int
VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x4;
/**
* VkVideoEncodeH265OutputModeFlagBitsEXT - Video encode H.265 output modes
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H265_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_H265_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H265_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_H265_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT} is not supported.
* - {@link #VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT VIDEO_ENCODE_H265_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_H265_OUTPUT_MODE_FRAME_BIT_EXT VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT} or {@link #VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT VIDEO_ENCODE_H265_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.265 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_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x4;
/**
* VkVideoEncodeH265CtbSizeFlagBitsEXT - Supported CTB sizes for H.265 video encode
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT} specifies that a CTB size of 8x8 is supported.
* - {@link #VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT} specifies that a CTB size of 16x16 is supported.
* - {@link #VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT} specifies that a CTB size of 32x32 is supported.
* - {@link #VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT} specifies that a CTB size of 64x64 is supported.
*
*/
public static final int
VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT = 0x1,
VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x2,
VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x4,
VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x8;
private EXTVideoEncodeH265() {}
}