// Copyright 2018-2022 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.adoc[] === Other Extension Metadata *Last Modified Date*:: 2022-09-18 *IP Status*:: No known IP claims. *Contributors*:: - Ahmed Abdelkhalek, AMD - George Hao, AMD - Jake Beju, AMD - Peter Fang, AMD - Ping Liu, Intel - Srinath Kumarapuram, NVIDIA - Tony Zlatinski, NVIDIA - Yang Liu, AMD - Daniel Rakos, RasterGrid === Description This extension builds upon the `apiext:VK_KHR_video_encode_queue` extension by adding support for encoding elementary video stream sequences compliant with the H.264/AVC video compression standard. include::{generated}/interfaces/VK_EXT_video_encode_h264.adoc[] === Version History * Revision 0, 2018-7-23 (Ahmed Abdelkhalek) ** Initial draft * Revision 0.5, 2020-02-13 (Tony Zlatinski) ** General Spec cleanup ** Added DPB structures ** Change the VCL frame encode structure ** Added a common Non-VCL Picture Paramarameters structure * Revision 1, 2021-03-29 (Tony Zlatinski) ** Spec and API updates * Revision 2, August 1 2021 (Srinath Kumarapuram) ** Rename `VkVideoEncodeH264CapabilitiesFlagsEXT` to `VkVideoEncodeH264CapabilityFlagsEXT` and `VkVideoEncodeH264CapabilitiesFlagsEXT` to `VkVideoEncodeH264CapabilityFlagsEXT`, following Vulkan naming conventions. * Revision 3, 2021-12-08 (Ahmed Abdelkhalek) ** Rate control updates * Revision 4, 2022-02-04 (Ahmed Abdelkhalek) ** Align VkVideoEncodeH264VclFrameInfoEXT structure to similar one in VK_EXT_video_encode_h265 extension * Revision 5, 2022-02-10 (Ahmed Abdelkhalek) ** Updates to encode capability interface * Revision 6, 2022-03-16 (Ahmed Abdelkhalek) ** Relocate Std header version reporting/requesting from this extension to VK_KHR_video_queue extension. ** Remove redundant maxPictureSizeInMbs from VkVideoEncodeH264SessionCreateInfoEXT. ** Remove the now empty VkVideoEncodeH264SessionCreateInfoEXT. * Revision 7, 2022-04-06 (Ahmed Abdelkhalek) ** Add capability flag to report support to use B frame in L1 reference list. ** Add capability flag to report support for disabling SPS direct_8x8_inference_flag. * Revision 8, 2022-07-18 (Daniel Rakos) ** Replace `VkVideoEncodeH264RateControlStructureFlagBitsEXT` bit enum with `VkVideoEncodeH264RateControlStructureEXT` enum ** Rename `VkVideoEncodeH264ProfileEXT` to `VkVideoEncodeH264ProfileInfoEXT` ** Rename `VkVideoEncodeH264ReferenceListsEXT` to `VkVideoEncodeH264ReferenceListsInfoEXT` ** Rename `VkVideoEncodeH264EmitPictureParametersEXT` to `VkVideoEncodeH264EmitPictureParametersInfoEXT` ** Rename `VkVideoEncodeH264NaluSliceEXT` to `VkVideoEncodeH264NaluSliceInfoEXT` * Revision 9, 2022-09-18 (Daniel Rakos) ** Rename `spsStdCount`, `pSpsStd`, `ppsStdCount`, and `pPpsStd` to `stdSPSCount`, `pStdSPSs`, `stdPPSCount`, and `pStdPPSs`, respectively, in `VkVideoEncodeH264SessionParametersAddInfoEXT` ** Rename `maxSpsStdCount` and `maxPpsStdCount` to `maxStdSPSCount` and `maxStdPPSCount`, respectively, in `VkVideoEncodeH264SessionParametersCreateInfoEXT`