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

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

=== Other Extension Metadata

*Last Modified Date*::
    2021-03-29
*IP Status*::
    No known IP claims.
*Contributors*::
  - HoHin Lau, AMD
  - Jake Beju, AMD
  - Peter Fang, AMD
  - Ping Liu, Intel
  - Srinath Kumarapuram, NVIDIA
  - Tony Zlatinski, NVIDIA

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

=== Version History

 * Revision 1, 2018-6-11 (Peter Fang)
   - Initial draft
 * Revision 1.6, March 29 2021 (Tony Zlatinski)
   - Spec and API updates.
