VkVideoEncodeH265OutputModeFlagBitsEXT(3)

# VkVideoEncodeH265OutputModeFlagBitsEXT(3) Manual Page

## Name

VkVideoEncodeH265OutputModeFlagBitsEXT - Video encode H.265 output modes

Loading… please wait.

## C Specification

Bits which may be set in VkVideoEncodeH265CapabilitiesEXT::`outputModeFlags`, indicating the minimum bitstream generation commands that must be included between each vkCmdBeginVideoCodingKHR and vkCmdEndVideoCodingKHR pair (henceforth simply begin/end pair), are:

    // Provided by VK_EXT_video_encode_h265
    typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT {
        VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
        VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
        VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
    } VkVideoEncodeH265OutputModeFlagBitsEXT;

## Description

- `VK_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 `VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT` is not supported.

- `VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT` indicates that each begin/end pair must encode at least one slice segment. Any non-VCL NALUs must be encoded within the same begin/end pair as the first slice segment of the frame if `VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT` is not supported.

- `VK_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 `VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT` or `VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_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 segment 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 Segment

- Input: Frame, Output: Slice Segment and Non-VCL

- Input: Slice Segment, Output: Slice Segment

- Input: Slice Segment, Output: Slice Segment and Non-VCL

- Input: Frame and Non-VCL, Output: Frame and Non-VCL

- Input: Frame and Non-VCL, Output: Slice Segment and Non-VCL

- Input: Slice Segment and Non-VCL, Output: Slice Segment and Non-VCL

## See Also

VK_EXT_video_encode_h265, VkVideoEncodeH265OutputModeFlagsEXT

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0