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

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

=== Other Extension Metadata

*Last Modified Date*::
    2021-03-29
*IP Status*::
    No known IP claims.
*Contributors*::
  - Ahmed Abdelkhalek, AMD
  - George Hao, AMD
  - Jake Beju, AMD
  - Piers Daniell, NVIDIA
  - Srinath Kumarapuram, NVIDIA
  - Tobias Hector, AMD
  - Tony Zlatinski, NVIDIA

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

=== Version History

  * Revision 0.1, 2019-11-21 (Tony Zlatinski)
    - Initial draft
  * Revision 0.2, 2019-11-27 (Tony Zlatinski)
    - Make vulkan video core common between decode and encode
  * Revision 1, March 29 2021 (Tony Zlatinski)
    - Spec and API updates.
  * Revision 2, August 1 2021 (Srinath Kumarapuram)
   - Rename `VkVideoCapabilitiesFlagBitsKHR` to
     `VkVideoCapabilityFlagBitsKHR` (along with the names of enumerants it
     defines) and `VkVideoCapabilitiesFlagsKHR` to
     `VkVideoCapabilityFlagsKHR`, following Vulkan naming conventions.
