// Copyright (c) 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.txt[]

=== 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

include::{generated}/interfaces/VK_EXT_video_encode_h264.txt[]

=== 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.
