1// Copyright 2018-2022 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2022-09-18 11*IP Status*:: 12 No known IP claims. 13*Contributors*:: 14 - Ahmed Abdelkhalek, AMD 15 - George Hao, AMD 16 - Jake Beju, AMD 17 - Peter Fang, AMD 18 - Ping Liu, Intel 19 - Srinath Kumarapuram, NVIDIA 20 - Tony Zlatinski, NVIDIA 21 - Yang Liu, AMD 22 - Daniel Rakos, RasterGrid 23 24=== Description 25 26This extension builds upon the `apiext:VK_KHR_video_encode_queue` extension 27by adding support for encoding elementary video stream sequences compliant 28with the H.264/AVC video compression standard. 29 30include::{generated}/interfaces/VK_EXT_video_encode_h264.adoc[] 31 32=== Version History 33 34 * Revision 0, 2018-7-23 (Ahmed Abdelkhalek) 35 ** Initial draft 36 * Revision 0.5, 2020-02-13 (Tony Zlatinski) 37 ** General Spec cleanup 38 ** Added DPB structures 39 ** Change the VCL frame encode structure 40 ** Added a common Non-VCL Picture Paramarameters structure 41 * Revision 1, 2021-03-29 (Tony Zlatinski) 42 ** Spec and API updates 43 * Revision 2, August 1 2021 (Srinath Kumarapuram) 44 ** Rename `VkVideoEncodeH264CapabilitiesFlagsEXT` to 45 `VkVideoEncodeH264CapabilityFlagsEXT` and 46 `VkVideoEncodeH264CapabilitiesFlagsEXT` to 47 `VkVideoEncodeH264CapabilityFlagsEXT`, following Vulkan naming 48 conventions. 49 * Revision 3, 2021-12-08 (Ahmed Abdelkhalek) 50 ** Rate control updates 51 * Revision 4, 2022-02-04 (Ahmed Abdelkhalek) 52 ** Align VkVideoEncodeH264VclFrameInfoEXT structure to similar one in 53 VK_EXT_video_encode_h265 extension 54 * Revision 5, 2022-02-10 (Ahmed Abdelkhalek) 55 ** Updates to encode capability interface 56 * Revision 6, 2022-03-16 (Ahmed Abdelkhalek) 57 ** Relocate Std header version reporting/requesting from this extension to 58 VK_KHR_video_queue extension. 59 ** Remove redundant maxPictureSizeInMbs from 60 VkVideoEncodeH264SessionCreateInfoEXT. 61 ** Remove the now empty VkVideoEncodeH264SessionCreateInfoEXT. 62 * Revision 7, 2022-04-06 (Ahmed Abdelkhalek) 63 ** Add capability flag to report support to use B frame in L1 reference 64 list. 65 ** Add capability flag to report support for disabling SPS 66 direct_8x8_inference_flag. 67 * Revision 8, 2022-07-18 (Daniel Rakos) 68 ** Replace `VkVideoEncodeH264RateControlStructureFlagBitsEXT` bit enum 69 with `VkVideoEncodeH264RateControlStructureEXT` enum 70 ** Rename `VkVideoEncodeH264ProfileEXT` to 71 `VkVideoEncodeH264ProfileInfoEXT` 72 ** Rename `VkVideoEncodeH264ReferenceListsEXT` to 73 `VkVideoEncodeH264ReferenceListsInfoEXT` 74 ** Rename `VkVideoEncodeH264EmitPictureParametersEXT` to 75 `VkVideoEncodeH264EmitPictureParametersInfoEXT` 76 ** Rename `VkVideoEncodeH264NaluSliceEXT` to 77 `VkVideoEncodeH264NaluSliceInfoEXT` 78 * Revision 9, 2022-09-18 (Daniel Rakos) 79 ** Rename `spsStdCount`, `pSpsStd`, `ppsStdCount`, and `pPpsStd` to 80 `stdSPSCount`, `pStdSPSs`, `stdPPSCount`, and `pStdPPSs`, respectively, 81 in `VkVideoEncodeH264SessionParametersAddInfoEXT` 82 ** Rename `maxSpsStdCount` and `maxPpsStdCount` to `maxStdSPSCount` and 83 `maxStdPPSCount`, respectively, in 84 `VkVideoEncodeH264SessionParametersCreateInfoEXT` 85