// Copyright 2018-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_video_decode_h264.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
    2023-12-05
*IP Status*::
    No known IP claims.
*Contributors*::
  - Ahmed Abdelkhalek, AMD
  - Chunbo Chen, Intel
  - HoHin Lau, AMD
  - Jake Beju, AMD
  - Peter Fang, AMD
  - Ping Liu, Intel
  - Srinath Kumarapuram, NVIDIA
  - Tony Zlatinski, NVIDIA
  - Daniel Rakos, RasterGrid

=== Description

This extension builds upon the `apiext:VK_KHR_video_decode_queue` extension
by adding support for decoding elementary video stream sequences compliant
with the H.264/AVC video compression standard.

[NOTE]
.Note
====
This extension was promoted to `KHR` from the provisional extension
`VK_EXT_video_decode_h264`.
====

include::{generated}/interfaces/VK_KHR_video_decode_h264.adoc[]

=== Version History

  * Revision 1, 2018-6-11 (Peter Fang)
  ** Initial draft
  * Revision 2, March 29 2021 (Tony Zlatinski)
  ** Spec and API Updates
  * Revision 3, August 1 2021 (Srinath Kumarapuram)
  ** Rename `VkVideoDecodeH264FieldLayoutFlagsEXT` to
     `VkVideoDecodeH264PictureLayoutFlagsEXT`,
     `VkVideoDecodeH264FieldLayoutFlagBitsEXT` to
     `VkVideoDecodeH264PictureLayoutFlagBitsEXT` (along with the names of
     enumerants it defines), and `VkVideoDecodeH264ProfileEXT.fieldLayout`
     to `VkVideoDecodeH264ProfileEXT.pictureLayout`, following Vulkan naming
     conventions.
  * Revision 4, 2022-03-16 (Ahmed Abdelkhalek)
  ** Relocate Std header version reporting/requesting from this extension to
     VK_KHR_video_queue extension.
  ** Remove the now empty VkVideoDecodeH264SessionCreateInfoEXT.
  * Revision 5, 2022-03-31 (Ahmed Abdelkhalek)
  ** Use type StdVideoH264Level for VkVideoDecodeH264Capabilities.maxLevel
  * Revision 6, 2022-08-09 (Daniel Rakos)
  ** Rename `VkVideoDecodeH264ProfileEXT` to
     `VkVideoDecodeH264ProfileInfoEXT`
  ** Rename `VkVideoDecodeH264MvcEXT` to `VkVideoDecodeH264MvcInfoEXT`
  * Revision 7, 2022-09-18 (Daniel Rakos)
  ** Change type of `VkVideoDecodeH264ProfileInfoEXT::pictureLayout` to
     `VkVideoDecodeH264PictureLayoutFlagBitsEXT`
  ** Remove MVC support and related `VkVideoDecodeH264MvcInfoEXT` structure
  ** Rename `spsStdCount`, `pSpsStd`, `ppsStdCount`, and `pPpsStd` to
     `stdSPSCount`, `pStdSPSs`, `stdPPSCount`, and `pStdPPSs`, respectively,
     in `VkVideoDecodeH264SessionParametersAddInfoEXT`
  ** Rename `maxSpsStdCount` and `maxPpsStdCount` to `maxStdSPSCount` and
     `maxStdPPSCount`, respectively, in
     `VkVideoDecodeH264SessionParametersCreateInfoEXT`
  ** Rename `slicesCount` and `pSlicesDataOffsets` to `sliceCount` and
     `pSliceOffsets`, respectively, in `VkVideoDecodeH264PictureInfoEXT`
  * Revision 8, 2022-09-29 (Daniel Rakos)
  ** Change extension from `EXT` to `KHR`
  ** Extension is no longer provisional
  * Revision 9, 2023-12-05 (Daniel Rakos)
  ** Condition reference picture setup based on the value of
     `StdVideoDecodeH264PictureInfo::flags.is_reference`
