mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 22:58:46 +00:00
Merge branch 'master' of https://github.com/odin-lang/Odin
This commit is contained in:
@@ -52,6 +52,8 @@ foreign user32 {
|
|||||||
TranslateMessage :: proc(lpMsg: ^MSG) -> BOOL ---
|
TranslateMessage :: proc(lpMsg: ^MSG) -> BOOL ---
|
||||||
DispatchMessageW :: proc(lpMsg: ^MSG) -> LRESULT ---
|
DispatchMessageW :: proc(lpMsg: ^MSG) -> LRESULT ---
|
||||||
|
|
||||||
|
WaitMessage :: proc() -> BOOL ---
|
||||||
|
|
||||||
PeekMessageA :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL ---
|
PeekMessageA :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL ---
|
||||||
PeekMessageW :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL ---
|
PeekMessageW :: proc(lpMsg: ^MSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL ---
|
||||||
|
|
||||||
@@ -222,6 +224,7 @@ foreign user32 {
|
|||||||
|
|
||||||
GetWindowInfo :: proc(hwnd: HWND, pwi: PWINDOWINFO) -> BOOL ---
|
GetWindowInfo :: proc(hwnd: HWND, pwi: PWINDOWINFO) -> BOOL ---
|
||||||
GetWindowPlacement :: proc(hWnd: HWND, lpwndpl: ^WINDOWPLACEMENT) -> BOOL ---
|
GetWindowPlacement :: proc(hWnd: HWND, lpwndpl: ^WINDOWPLACEMENT) -> BOOL ---
|
||||||
|
SetWindowPlacement :: proc(hwnd: HWND, lpwndpl: ^WINDOWPLACEMENT) -> BOOL ---
|
||||||
SetWindowRgn :: proc(hWnd: HWND, hRgn: HRGN, bRedraw: BOOL) -> int ---
|
SetWindowRgn :: proc(hWnd: HWND, hRgn: HRGN, bRedraw: BOOL) -> int ---
|
||||||
CreateRectRgnIndirect :: proc(lprect: ^RECT) -> HRGN ---
|
CreateRectRgnIndirect :: proc(lprect: ^RECT) -> HRGN ---
|
||||||
GetSystemMetricsForDpi :: proc(nIndex: int, dpi: UINT) -> int ---
|
GetSystemMetricsForDpi :: proc(nIndex: int, dpi: UINT) -> int ---
|
||||||
@@ -463,7 +466,6 @@ WINDOWPLACEMENT :: struct {
|
|||||||
ptMinPosition: POINT,
|
ptMinPosition: POINT,
|
||||||
ptMaxPosition: POINT,
|
ptMaxPosition: POINT,
|
||||||
rcNormalPosition: RECT,
|
rcNormalPosition: RECT,
|
||||||
rcDevice: RECT,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WINDOWINFO :: struct {
|
WINDOWINFO :: struct {
|
||||||
|
|||||||
+72
-25
@@ -16,6 +16,11 @@ file_and_urls = [
|
|||||||
("vulkan_macos.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_macos.h', False),
|
("vulkan_macos.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_macos.h', False),
|
||||||
("vulkan_ios.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_ios.h', False),
|
("vulkan_ios.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_ios.h', False),
|
||||||
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
|
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
|
||||||
|
# Vulkan Video
|
||||||
|
("vulkan_video_codec_h264std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std.h', False),
|
||||||
|
("vulkan_video_codec_h265std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std.h', False),
|
||||||
|
("vulkan_video_codec_h264std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_decode.h', False),
|
||||||
|
("vulkan_video_codec_h265std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_decode.h', False),
|
||||||
]
|
]
|
||||||
|
|
||||||
for file, url, _ in file_and_urls:
|
for file, url, _ in file_and_urls:
|
||||||
@@ -37,11 +42,15 @@ def no_vk(t):
|
|||||||
t = t.replace('PFN_', 'Proc')
|
t = t.replace('PFN_', 'Proc')
|
||||||
t = t.replace('PFN_', 'Proc')
|
t = t.replace('PFN_', 'Proc')
|
||||||
t = t.replace('VK_', '')
|
t = t.replace('VK_', '')
|
||||||
|
# Vulkan Video
|
||||||
|
t = t.replace('STD_', '')
|
||||||
|
t = t.replace('Std', '')
|
||||||
return t
|
return t
|
||||||
|
|
||||||
OPAQUE_STRUCTS = """
|
OPAQUE_STRUCTS = """
|
||||||
wl_surface :: struct {} // Opaque struct defined by Wayland
|
wl_surface :: struct {} // Opaque struct defined by Wayland
|
||||||
wl_display :: struct {} // Opaque struct defined by Wayland
|
wl_display :: struct {} // Opaque struct defined by Wayland
|
||||||
|
IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def convert_type(t, prev_name, curr_name):
|
def convert_type(t, prev_name, curr_name):
|
||||||
@@ -56,6 +65,7 @@ def convert_type(t, prev_name, curr_name):
|
|||||||
'int64_t': 'i64',
|
'int64_t': 'i64',
|
||||||
'int': 'c.int',
|
'int': 'c.int',
|
||||||
'uint8_t': 'u8',
|
'uint8_t': 'u8',
|
||||||
|
'int8_t': 'i8',
|
||||||
"uint16_t": 'u16',
|
"uint16_t": 'u16',
|
||||||
"char": "byte",
|
"char": "byte",
|
||||||
"void": "void",
|
"void": "void",
|
||||||
@@ -70,6 +80,7 @@ def convert_type(t, prev_name, curr_name):
|
|||||||
"const void* const *": "[^]rawptr",
|
"const void* const *": "[^]rawptr",
|
||||||
"const AccelerationStructureGeometryKHR* const*": "^[^]AccelerationStructureGeometryKHR",
|
"const AccelerationStructureGeometryKHR* const*": "^[^]AccelerationStructureGeometryKHR",
|
||||||
"const AccelerationStructureBuildRangeInfoKHR* const*": "^[^]AccelerationStructureBuildRangeInfoKHR",
|
"const AccelerationStructureBuildRangeInfoKHR* const*": "^[^]AccelerationStructureBuildRangeInfoKHR",
|
||||||
|
"const MicromapUsageEXT* const*": "^[^]MicromapUsageEXT",
|
||||||
"struct BaseOutStructure": "BaseOutStructure",
|
"struct BaseOutStructure": "BaseOutStructure",
|
||||||
"struct BaseInStructure": "BaseInStructure",
|
"struct BaseInStructure": "BaseInStructure",
|
||||||
"struct wl_display": "wl_display",
|
"struct wl_display": "wl_display",
|
||||||
@@ -261,6 +272,12 @@ def parse_constants(f):
|
|||||||
for name, value in allowed_data:
|
for name, value in allowed_data:
|
||||||
f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
|
f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
|
||||||
|
|
||||||
|
f.write("\n// Vulkan Video Constants\n")
|
||||||
|
vulkan_video_data = re.findall(r"#define STD_(\w+)\s*(.*?)U?\n", src, re.S)
|
||||||
|
max_len = max(len(name) for name, value in vulkan_video_data)
|
||||||
|
for name, value in vulkan_video_data:
|
||||||
|
f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
|
||||||
|
|
||||||
f.write("\n// Vendor Constants\n")
|
f.write("\n// Vendor Constants\n")
|
||||||
fixes = '|'.join(ext_suffixes)
|
fixes = '|'.join(ext_suffixes)
|
||||||
inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+" + fixes + r"))"
|
inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+" + fixes + r"))"
|
||||||
@@ -284,6 +301,7 @@ def parse_enums(f):
|
|||||||
f.write("// Enums\n")
|
f.write("// Enums\n")
|
||||||
|
|
||||||
data = re.findall(r"typedef enum Vk(\w+) {(.+?)} \w+;", src, re.S)
|
data = re.findall(r"typedef enum Vk(\w+) {(.+?)} \w+;", src, re.S)
|
||||||
|
data += re.findall(r"typedef enum Std(\w+) {(.+?)} \w+;", src, re.S)
|
||||||
|
|
||||||
data.sort(key=lambda x: x[0])
|
data.sort(key=lambda x: x[0])
|
||||||
|
|
||||||
@@ -384,7 +402,16 @@ def parse_enums(f):
|
|||||||
used_flags.append('.'+flags[i])
|
used_flags.append('.'+flags[i])
|
||||||
else:
|
else:
|
||||||
used_flags.append('{}({})'.format(enum_name, i))
|
used_flags.append('{}({})'.format(enum_name, i))
|
||||||
s = "{enum_name}s_{n} :: {enum_name}s{{".format(enum_name=enum_name, n=n)
|
# Make sure the 's' is after Flags and not the extension name.
|
||||||
|
ext_suffix = ''
|
||||||
|
for suffix in ext_suffixes:
|
||||||
|
if not enum_name.endswith(suffix):
|
||||||
|
continue
|
||||||
|
|
||||||
|
ext_suffix = suffix
|
||||||
|
enum_name = remove_suffix(enum_name, ext_suffix)
|
||||||
|
break
|
||||||
|
s = "{enum_name}s{ext_suffix}_{n} :: {enum_name}s{ext_suffix}{{".format(enum_name=enum_name, ext_suffix=ext_suffix, n=n)
|
||||||
s += ', '.join(used_flags)
|
s += ', '.join(used_flags)
|
||||||
s += "}\n"
|
s += "}\n"
|
||||||
f.write(s)
|
f.write(s)
|
||||||
@@ -406,6 +433,7 @@ def parse_enums(f):
|
|||||||
|
|
||||||
def parse_structs(f):
|
def parse_structs(f):
|
||||||
data = re.findall(r"typedef (struct|union) Vk(\w+?) {(.+?)} \w+?;", src, re.S)
|
data = re.findall(r"typedef (struct|union) Vk(\w+?) {(.+?)} \w+?;", src, re.S)
|
||||||
|
data += re.findall(r"typedef (struct|union) Std(\w+?) {(.+?)} \w+?;", src, re.S)
|
||||||
|
|
||||||
for _type, name, fields in data:
|
for _type, name, fields in data:
|
||||||
fields = re.findall(r"\s+(.+?)\s+([_a-zA-Z0-9[\]]+);", fields)
|
fields = re.findall(r"\s+(.+?)\s+([_a-zA-Z0-9[\]]+);", fields)
|
||||||
@@ -417,6 +445,18 @@ def parse_structs(f):
|
|||||||
prev_name = ""
|
prev_name = ""
|
||||||
ffields = []
|
ffields = []
|
||||||
for type_, fname in fields:
|
for type_, fname in fields:
|
||||||
|
|
||||||
|
# If the typename has a colon in it, then it is a C bit field.
|
||||||
|
if ":" in type_:
|
||||||
|
bit_field = type_.split(' ')
|
||||||
|
# Get rid of empty spaces
|
||||||
|
bit_field = list(filter(bool, bit_field))
|
||||||
|
# [type, typename, :]
|
||||||
|
assert len(bit_field) == 3, "Failed to parse the bit field!"
|
||||||
|
bit_field_type = do_type(bit_field[0], prev_name, fname)
|
||||||
|
f.write("\tbit_field: {},{}\n".format(bit_field_type, comment or ""))
|
||||||
|
break
|
||||||
|
|
||||||
if '[' in fname:
|
if '[' in fname:
|
||||||
fname, type_ = parse_array(fname, type_)
|
fname, type_ = parse_array(fname, type_)
|
||||||
comment = None
|
comment = None
|
||||||
@@ -430,7 +470,7 @@ def parse_structs(f):
|
|||||||
ffields.append(tuple([n, t, comment]))
|
ffields.append(tuple([n, t, comment]))
|
||||||
prev_name = fname
|
prev_name = fname
|
||||||
|
|
||||||
max_len = max(len(n) for n, _, _ in ffields)
|
max_len = max([len(n) for n, _, _ in ffields], default=0)
|
||||||
|
|
||||||
for n, t, comment in ffields:
|
for n, t, comment in ffields:
|
||||||
k = max_len-len(n)+len(t)
|
k = max_len-len(n)+len(t)
|
||||||
@@ -660,27 +700,28 @@ SetProcAddressType :: #type proc(p: rawptr, name: cstring)
|
|||||||
RemoteAddressNV :: distinct rawptr // Declared inline before MemoryGetRemoteAddressInfoNV
|
RemoteAddressNV :: distinct rawptr // Declared inline before MemoryGetRemoteAddressInfoNV
|
||||||
|
|
||||||
// Base constants
|
// Base constants
|
||||||
LOD_CLAMP_NONE :: 1000.0
|
LOD_CLAMP_NONE :: 1000.0
|
||||||
REMAINING_MIP_LEVELS :: ~u32(0)
|
REMAINING_MIP_LEVELS :: ~u32(0)
|
||||||
REMAINING_ARRAY_LAYERS :: ~u32(0)
|
REMAINING_ARRAY_LAYERS :: ~u32(0)
|
||||||
WHOLE_SIZE :: ~u64(0)
|
WHOLE_SIZE :: ~u64(0)
|
||||||
ATTACHMENT_UNUSED :: ~u32(0)
|
ATTACHMENT_UNUSED :: ~u32(0)
|
||||||
TRUE :: 1
|
TRUE :: 1
|
||||||
FALSE :: 0
|
FALSE :: 0
|
||||||
QUEUE_FAMILY_IGNORED :: ~u32(0)
|
QUEUE_FAMILY_IGNORED :: ~u32(0)
|
||||||
SUBPASS_EXTERNAL :: ~u32(0)
|
SUBPASS_EXTERNAL :: ~u32(0)
|
||||||
MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256
|
MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256
|
||||||
UUID_SIZE :: 16
|
MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: 32
|
||||||
MAX_MEMORY_TYPES :: 32
|
UUID_SIZE :: 16
|
||||||
MAX_MEMORY_HEAPS :: 16
|
MAX_MEMORY_TYPES :: 32
|
||||||
MAX_EXTENSION_NAME_SIZE :: 256
|
MAX_MEMORY_HEAPS :: 16
|
||||||
MAX_DESCRIPTION_SIZE :: 256
|
MAX_EXTENSION_NAME_SIZE :: 256
|
||||||
MAX_DEVICE_GROUP_SIZE :: 32
|
MAX_DESCRIPTION_SIZE :: 256
|
||||||
LUID_SIZE_KHX :: 8
|
MAX_DEVICE_GROUP_SIZE :: 32
|
||||||
LUID_SIZE :: 8
|
LUID_SIZE_KHX :: 8
|
||||||
MAX_QUEUE_FAMILY_EXTERNAL :: ~u32(1)
|
LUID_SIZE :: 8
|
||||||
MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16
|
MAX_QUEUE_FAMILY_EXTERNAL :: ~u32(1)
|
||||||
QUEUE_FAMILY_EXTERNAL :: MAX_QUEUE_FAMILY_EXTERNAL
|
MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16
|
||||||
|
QUEUE_FAMILY_EXTERNAL :: MAX_QUEUE_FAMILY_EXTERNAL
|
||||||
|
|
||||||
"""[1::])
|
"""[1::])
|
||||||
parse_constants(f)
|
parse_constants(f)
|
||||||
@@ -726,6 +767,12 @@ when ODIN_OS == .Windows {
|
|||||||
|
|
||||||
CAMetalLayer :: struct {}
|
CAMetalLayer :: struct {}
|
||||||
|
|
||||||
|
MTLBuffer_id :: rawptr
|
||||||
|
MTLTexture_id :: rawptr
|
||||||
|
MTLSharedEvent_id :: rawptr
|
||||||
|
MTLDevice_id :: rawptr
|
||||||
|
MTLCommandQueue_id :: rawptr
|
||||||
|
|
||||||
/********************************/
|
/********************************/
|
||||||
""")
|
""")
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
|
|||||||
Vendored
+22
-9
@@ -2,9 +2,9 @@
|
|||||||
// File: vk_icd.h
|
// File: vk_icd.h
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2016 The Khronos Group Inc.
|
* Copyright (c) 2015-2023 LunarG, Inc.
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
* Copyright (c) 2015-2023 The Khronos Group Inc.
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
* Copyright (c) 2015-2023 Valve Corporation
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,9 +19,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
#ifndef VKICD_H
|
|
||||||
#define VKICD_H
|
|
||||||
|
|
||||||
#include "vulkan.h"
|
#include "vulkan.h"
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
@@ -42,7 +40,17 @@
|
|||||||
// call for any API version > 1.0. Otherwise, the loader will
|
// call for any API version > 1.0. Otherwise, the loader will
|
||||||
// manually determine if it can support the expected version.
|
// manually determine if it can support the expected version.
|
||||||
// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices.
|
// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices.
|
||||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6
|
// Version 7 - If an ICD supports any of the following functions, they must be
|
||||||
|
// queryable with vk_icdGetInstanceProcAddr:
|
||||||
|
// vk_icdNegotiateLoaderICDInterfaceVersion
|
||||||
|
// vk_icdGetPhysicalDeviceProcAddr
|
||||||
|
// vk_icdEnumerateAdapterPhysicalDevices (Windows only)
|
||||||
|
// In addition, these functions no longer need to be exported directly.
|
||||||
|
// This version allows drivers provided through the extension
|
||||||
|
// VK_LUNARG_direct_driver_loading be able to support the entire
|
||||||
|
// Driver-Loader interface.
|
||||||
|
|
||||||
|
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 7
|
||||||
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||||
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
||||||
|
|
||||||
@@ -70,7 +78,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion);
|
VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion);
|
||||||
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName);
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName);
|
||||||
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName);
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char* pName);
|
||||||
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||||
VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID,
|
VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID,
|
||||||
uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
|
uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
|
||||||
@@ -123,6 +131,7 @@ typedef enum {
|
|||||||
VK_ICD_WSI_PLATFORM_VI,
|
VK_ICD_WSI_PLATFORM_VI,
|
||||||
VK_ICD_WSI_PLATFORM_GGP,
|
VK_ICD_WSI_PLATFORM_GGP,
|
||||||
VK_ICD_WSI_PLATFORM_SCREEN,
|
VK_ICD_WSI_PLATFORM_SCREEN,
|
||||||
|
VK_ICD_WSI_PLATFORM_FUCHSIA,
|
||||||
} VkIcdWsiPlatform;
|
} VkIcdWsiPlatform;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -242,4 +251,8 @@ typedef struct {
|
|||||||
} VkIcdSurfaceScreen;
|
} VkIcdSurfaceScreen;
|
||||||
#endif // VK_USE_PLATFORM_SCREEN_QNX
|
#endif // VK_USE_PLATFORM_SCREEN_QNX
|
||||||
|
|
||||||
#endif // VKICD_H
|
#ifdef VK_USE_PLATFORM_FUCHSIA
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
} VkIcdSurfaceImagePipe;
|
||||||
|
#endif // VK_USE_PLATFORM_FUCHSIA
|
||||||
|
|||||||
Vendored
+5
-12
@@ -2,9 +2,9 @@
|
|||||||
// File: vk_layer.h
|
// File: vk_layer.h
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2017 The Khronos Group Inc.
|
* Copyright (c) 2015-2023 LunarG, Inc.
|
||||||
* Copyright (c) 2015-2017 Valve Corporation
|
* Copyright (c) 2015-2023 The Khronos Group Inc.
|
||||||
* Copyright (c) 2015-2017 LunarG, Inc.
|
* Copyright (c) 2015-2023 Valve Corporation
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,21 +19,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
/* Need to define dispatch table
|
/* Need to define dispatch table
|
||||||
* Core struct can then have ptr to dispatch table at the top
|
* Core struct can then have ptr to dispatch table at the top
|
||||||
* Along with object ptrs for current and next OBJ
|
* Along with object ptrs for current and next OBJ
|
||||||
*/
|
*/
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "vulkan.h"
|
#include "vulkan_core.h"
|
||||||
#if defined(__GNUC__) && __GNUC__ >= 4
|
|
||||||
#define VK_LAYER_EXPORT __attribute__((visibility("default")))
|
|
||||||
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
|
|
||||||
#define VK_LAYER_EXPORT __attribute__((visibility("default")))
|
|
||||||
#else
|
|
||||||
#define VK_LAYER_EXPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAX_NUM_UNKNOWN_EXTS 250
|
#define MAX_NUM_UNKNOWN_EXTS 250
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
// File: vk_platform.h
|
// File: vk_platform.h
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
** Copyright 2014-2022 The Khronos Group Inc.
|
** Copyright 2014-2023 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
Vendored
+3024
-244
File diff suppressed because it is too large
Load Diff
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#define VULKAN_IOS_H_ 1
|
#define VULKAN_IOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2022 The Khronos Group Inc.
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#define VULKAN_MACOS_H_ 1
|
#define VULKAN_MACOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2022 The Khronos Group Inc.
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
Vendored
+141
-2
@@ -2,7 +2,7 @@
|
|||||||
#define VULKAN_METAL_H_ 1
|
#define VULKAN_METAL_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2022 The Khronos Group Inc.
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -20,7 +20,6 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
#define VK_EXT_metal_surface 1
|
#define VK_EXT_metal_surface 1
|
||||||
|
|
||||||
#ifdef __OBJC__
|
#ifdef __OBJC__
|
||||||
@class CAMetalLayer;
|
@class CAMetalLayer;
|
||||||
#else
|
#else
|
||||||
@@ -47,6 +46,146 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT(
|
|||||||
VkSurfaceKHR* pSurface);
|
VkSurfaceKHR* pSurface);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_metal_objects 1
|
||||||
|
#ifdef __OBJC__
|
||||||
|
@protocol MTLDevice;
|
||||||
|
typedef id<MTLDevice> MTLDevice_id;
|
||||||
|
#else
|
||||||
|
typedef void* MTLDevice_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
@protocol MTLCommandQueue;
|
||||||
|
typedef id<MTLCommandQueue> MTLCommandQueue_id;
|
||||||
|
#else
|
||||||
|
typedef void* MTLCommandQueue_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
@protocol MTLBuffer;
|
||||||
|
typedef id<MTLBuffer> MTLBuffer_id;
|
||||||
|
#else
|
||||||
|
typedef void* MTLBuffer_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
@protocol MTLTexture;
|
||||||
|
typedef id<MTLTexture> MTLTexture_id;
|
||||||
|
#else
|
||||||
|
typedef void* MTLTexture_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct __IOSurface* IOSurfaceRef;
|
||||||
|
#ifdef __OBJC__
|
||||||
|
@protocol MTLSharedEvent;
|
||||||
|
typedef id<MTLSharedEvent> MTLSharedEvent_id;
|
||||||
|
#else
|
||||||
|
typedef void* MTLSharedEvent_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1
|
||||||
|
#define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects"
|
||||||
|
|
||||||
|
typedef enum VkExportMetalObjectTypeFlagBitsEXT {
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x00000001,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x00000004,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x00000008,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x00000010,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x00000020,
|
||||||
|
VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkExportMetalObjectTypeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkExportMetalObjectTypeFlagsEXT;
|
||||||
|
typedef struct VkExportMetalObjectCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkExportMetalObjectTypeFlagBitsEXT exportObjectType;
|
||||||
|
} VkExportMetalObjectCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalObjectsInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
} VkExportMetalObjectsInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalDeviceInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
MTLDevice_id mtlDevice;
|
||||||
|
} VkExportMetalDeviceInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalCommandQueueInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkQueue queue;
|
||||||
|
MTLCommandQueue_id mtlCommandQueue;
|
||||||
|
} VkExportMetalCommandQueueInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalBufferInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkDeviceMemory memory;
|
||||||
|
MTLBuffer_id mtlBuffer;
|
||||||
|
} VkExportMetalBufferInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkImportMetalBufferInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
MTLBuffer_id mtlBuffer;
|
||||||
|
} VkImportMetalBufferInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalTextureInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkImage image;
|
||||||
|
VkImageView imageView;
|
||||||
|
VkBufferView bufferView;
|
||||||
|
VkImageAspectFlagBits plane;
|
||||||
|
MTLTexture_id mtlTexture;
|
||||||
|
} VkExportMetalTextureInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkImportMetalTextureInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkImageAspectFlagBits plane;
|
||||||
|
MTLTexture_id mtlTexture;
|
||||||
|
} VkImportMetalTextureInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalIOSurfaceInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkImage image;
|
||||||
|
IOSurfaceRef ioSurface;
|
||||||
|
} VkExportMetalIOSurfaceInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkImportMetalIOSurfaceInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
IOSurfaceRef ioSurface;
|
||||||
|
} VkImportMetalIOSurfaceInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkExportMetalSharedEventInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkSemaphore semaphore;
|
||||||
|
VkEvent event;
|
||||||
|
MTLSharedEvent_id mtlSharedEvent;
|
||||||
|
} VkExportMetalSharedEventInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkImportMetalSharedEventInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
MTLSharedEvent_id mtlSharedEvent;
|
||||||
|
} VkImportMetalSharedEventInfoEXT;
|
||||||
|
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT(
|
||||||
|
VkDevice device,
|
||||||
|
VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+310
@@ -0,0 +1,310 @@
|
|||||||
|
#ifndef VULKAN_VIDEO_CODEC_H264STD_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define vulkan_video_codec_h264std 1
|
||||||
|
#include <stdint.h>
|
||||||
|
#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
|
||||||
|
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
|
||||||
|
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
|
||||||
|
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6
|
||||||
|
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
||||||
|
#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
|
||||||
|
#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
|
||||||
|
|
||||||
|
typedef enum StdVideoH264ChromaFormatIdc {
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1,
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2,
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3,
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264ChromaFormatIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264ProfileIdc {
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66,
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_MAIN = 77,
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_HIGH = 100,
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244,
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264ProfileIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264LevelIdc {
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_1_0 = 0,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_1_1 = 1,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_1_2 = 2,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_1_3 = 3,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_2_0 = 4,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_2_1 = 5,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_2_2 = 6,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_3_0 = 7,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_3_1 = 8,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_3_2 = 9,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_4_0 = 10,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_4_1 = 11,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_4_2 = 12,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_5_0 = 13,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_5_1 = 14,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_5_2 = 15,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_6_0 = 16,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_6_1 = 17,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_6_2 = 18,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264LevelIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264PocType {
|
||||||
|
STD_VIDEO_H264_POC_TYPE_0 = 0,
|
||||||
|
STD_VIDEO_H264_POC_TYPE_1 = 1,
|
||||||
|
STD_VIDEO_H264_POC_TYPE_2 = 2,
|
||||||
|
STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264PocType;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264AspectRatioIdc {
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264AspectRatioIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264WeightedBipredIdc {
|
||||||
|
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0,
|
||||||
|
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1,
|
||||||
|
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2,
|
||||||
|
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264WeightedBipredIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264ModificationOfPicNumsIdc {
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0,
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1,
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2,
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3,
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264ModificationOfPicNumsIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264MemMgmtControlOp {
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264MemMgmtControlOp;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264CabacInitIdc {
|
||||||
|
STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0,
|
||||||
|
STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1,
|
||||||
|
STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2,
|
||||||
|
STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264CabacInitIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264DisableDeblockingFilterIdc {
|
||||||
|
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0,
|
||||||
|
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1,
|
||||||
|
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2,
|
||||||
|
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264DisableDeblockingFilterIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264SliceType {
|
||||||
|
STD_VIDEO_H264_SLICE_TYPE_P = 0,
|
||||||
|
STD_VIDEO_H264_SLICE_TYPE_B = 1,
|
||||||
|
STD_VIDEO_H264_SLICE_TYPE_I = 2,
|
||||||
|
STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264SliceType;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264PictureType {
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_P = 0,
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_B = 1,
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_I = 2,
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_IDR = 5,
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264PictureType;
|
||||||
|
|
||||||
|
typedef enum StdVideoH264NonVclNaluType {
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH264NonVclNaluType;
|
||||||
|
typedef struct StdVideoH264SpsVuiFlags {
|
||||||
|
uint32_t aspect_ratio_info_present_flag : 1;
|
||||||
|
uint32_t overscan_info_present_flag : 1;
|
||||||
|
uint32_t overscan_appropriate_flag : 1;
|
||||||
|
uint32_t video_signal_type_present_flag : 1;
|
||||||
|
uint32_t video_full_range_flag : 1;
|
||||||
|
uint32_t color_description_present_flag : 1;
|
||||||
|
uint32_t chroma_loc_info_present_flag : 1;
|
||||||
|
uint32_t timing_info_present_flag : 1;
|
||||||
|
uint32_t fixed_frame_rate_flag : 1;
|
||||||
|
uint32_t bitstream_restriction_flag : 1;
|
||||||
|
uint32_t nal_hrd_parameters_present_flag : 1;
|
||||||
|
uint32_t vcl_hrd_parameters_present_flag : 1;
|
||||||
|
} StdVideoH264SpsVuiFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264HrdParameters {
|
||||||
|
uint8_t cpb_cnt_minus1;
|
||||||
|
uint8_t bit_rate_scale;
|
||||||
|
uint8_t cpb_size_scale;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
|
||||||
|
uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t initial_cpb_removal_delay_length_minus1;
|
||||||
|
uint32_t cpb_removal_delay_length_minus1;
|
||||||
|
uint32_t dpb_output_delay_length_minus1;
|
||||||
|
uint32_t time_offset_length;
|
||||||
|
} StdVideoH264HrdParameters;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264SequenceParameterSetVui {
|
||||||
|
StdVideoH264SpsVuiFlags flags;
|
||||||
|
StdVideoH264AspectRatioIdc aspect_ratio_idc;
|
||||||
|
uint16_t sar_width;
|
||||||
|
uint16_t sar_height;
|
||||||
|
uint8_t video_format;
|
||||||
|
uint8_t colour_primaries;
|
||||||
|
uint8_t transfer_characteristics;
|
||||||
|
uint8_t matrix_coefficients;
|
||||||
|
uint32_t num_units_in_tick;
|
||||||
|
uint32_t time_scale;
|
||||||
|
uint8_t max_num_reorder_frames;
|
||||||
|
uint8_t max_dec_frame_buffering;
|
||||||
|
uint8_t chroma_sample_loc_type_top_field;
|
||||||
|
uint8_t chroma_sample_loc_type_bottom_field;
|
||||||
|
uint32_t reserved1;
|
||||||
|
const StdVideoH264HrdParameters* pHrdParameters;
|
||||||
|
} StdVideoH264SequenceParameterSetVui;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264SpsFlags {
|
||||||
|
uint32_t constraint_set0_flag : 1;
|
||||||
|
uint32_t constraint_set1_flag : 1;
|
||||||
|
uint32_t constraint_set2_flag : 1;
|
||||||
|
uint32_t constraint_set3_flag : 1;
|
||||||
|
uint32_t constraint_set4_flag : 1;
|
||||||
|
uint32_t constraint_set5_flag : 1;
|
||||||
|
uint32_t direct_8x8_inference_flag : 1;
|
||||||
|
uint32_t mb_adaptive_frame_field_flag : 1;
|
||||||
|
uint32_t frame_mbs_only_flag : 1;
|
||||||
|
uint32_t delta_pic_order_always_zero_flag : 1;
|
||||||
|
uint32_t separate_colour_plane_flag : 1;
|
||||||
|
uint32_t gaps_in_frame_num_value_allowed_flag : 1;
|
||||||
|
uint32_t qpprime_y_zero_transform_bypass_flag : 1;
|
||||||
|
uint32_t frame_cropping_flag : 1;
|
||||||
|
uint32_t seq_scaling_matrix_present_flag : 1;
|
||||||
|
uint32_t vui_parameters_present_flag : 1;
|
||||||
|
} StdVideoH264SpsFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264ScalingLists {
|
||||||
|
uint16_t scaling_list_present_mask;
|
||||||
|
uint16_t use_default_scaling_matrix_mask;
|
||||||
|
uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
|
||||||
|
uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
|
||||||
|
} StdVideoH264ScalingLists;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264SequenceParameterSet {
|
||||||
|
StdVideoH264SpsFlags flags;
|
||||||
|
StdVideoH264ProfileIdc profile_idc;
|
||||||
|
StdVideoH264LevelIdc level_idc;
|
||||||
|
StdVideoH264ChromaFormatIdc chroma_format_idc;
|
||||||
|
uint8_t seq_parameter_set_id;
|
||||||
|
uint8_t bit_depth_luma_minus8;
|
||||||
|
uint8_t bit_depth_chroma_minus8;
|
||||||
|
uint8_t log2_max_frame_num_minus4;
|
||||||
|
StdVideoH264PocType pic_order_cnt_type;
|
||||||
|
int32_t offset_for_non_ref_pic;
|
||||||
|
int32_t offset_for_top_to_bottom_field;
|
||||||
|
uint8_t log2_max_pic_order_cnt_lsb_minus4;
|
||||||
|
uint8_t num_ref_frames_in_pic_order_cnt_cycle;
|
||||||
|
uint8_t max_num_ref_frames;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint32_t pic_width_in_mbs_minus1;
|
||||||
|
uint32_t pic_height_in_map_units_minus1;
|
||||||
|
uint32_t frame_crop_left_offset;
|
||||||
|
uint32_t frame_crop_right_offset;
|
||||||
|
uint32_t frame_crop_top_offset;
|
||||||
|
uint32_t frame_crop_bottom_offset;
|
||||||
|
uint32_t reserved2;
|
||||||
|
const int32_t* pOffsetForRefFrame;
|
||||||
|
const StdVideoH264ScalingLists* pScalingLists;
|
||||||
|
const StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui;
|
||||||
|
} StdVideoH264SequenceParameterSet;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264PpsFlags {
|
||||||
|
uint32_t transform_8x8_mode_flag : 1;
|
||||||
|
uint32_t redundant_pic_cnt_present_flag : 1;
|
||||||
|
uint32_t constrained_intra_pred_flag : 1;
|
||||||
|
uint32_t deblocking_filter_control_present_flag : 1;
|
||||||
|
uint32_t weighted_pred_flag : 1;
|
||||||
|
uint32_t bottom_field_pic_order_in_frame_present_flag : 1;
|
||||||
|
uint32_t entropy_coding_mode_flag : 1;
|
||||||
|
uint32_t pic_scaling_matrix_present_flag : 1;
|
||||||
|
} StdVideoH264PpsFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH264PictureParameterSet {
|
||||||
|
StdVideoH264PpsFlags flags;
|
||||||
|
uint8_t seq_parameter_set_id;
|
||||||
|
uint8_t pic_parameter_set_id;
|
||||||
|
uint8_t num_ref_idx_l0_default_active_minus1;
|
||||||
|
uint8_t num_ref_idx_l1_default_active_minus1;
|
||||||
|
StdVideoH264WeightedBipredIdc weighted_bipred_idc;
|
||||||
|
int8_t pic_init_qp_minus26;
|
||||||
|
int8_t pic_init_qs_minus26;
|
||||||
|
int8_t chroma_qp_index_offset;
|
||||||
|
int8_t second_chroma_qp_index_offset;
|
||||||
|
const StdVideoH264ScalingLists* pScalingLists;
|
||||||
|
} StdVideoH264PictureParameterSet;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define vulkan_video_codec_h264std_decode 1
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
|
||||||
|
|
||||||
|
#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
|
||||||
|
|
||||||
|
typedef enum StdVideoDecodeH264FieldOrderCount {
|
||||||
|
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
|
||||||
|
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1,
|
||||||
|
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoDecodeH264FieldOrderCount;
|
||||||
|
typedef struct StdVideoDecodeH264PictureInfoFlags {
|
||||||
|
uint32_t field_pic_flag : 1;
|
||||||
|
uint32_t is_intra : 1;
|
||||||
|
uint32_t IdrPicFlag : 1;
|
||||||
|
uint32_t bottom_field_flag : 1;
|
||||||
|
uint32_t is_reference : 1;
|
||||||
|
uint32_t complementary_field_pair : 1;
|
||||||
|
} StdVideoDecodeH264PictureInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH264PictureInfo {
|
||||||
|
StdVideoDecodeH264PictureInfoFlags flags;
|
||||||
|
uint8_t seq_parameter_set_id;
|
||||||
|
uint8_t pic_parameter_set_id;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint16_t frame_num;
|
||||||
|
uint16_t idr_pic_id;
|
||||||
|
int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
|
||||||
|
} StdVideoDecodeH264PictureInfo;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH264ReferenceInfoFlags {
|
||||||
|
uint32_t top_field_flag : 1;
|
||||||
|
uint32_t bottom_field_flag : 1;
|
||||||
|
uint32_t used_for_long_term_reference : 1;
|
||||||
|
uint32_t is_non_existing : 1;
|
||||||
|
} StdVideoDecodeH264ReferenceInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH264ReferenceInfo {
|
||||||
|
StdVideoDecodeH264ReferenceInfoFlags flags;
|
||||||
|
uint16_t FrameNum;
|
||||||
|
uint16_t reserved;
|
||||||
|
int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
|
||||||
|
} StdVideoDecodeH264ReferenceInfo;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
+443
@@ -0,0 +1,443 @@
|
|||||||
|
#ifndef VULKAN_VIDEO_CODEC_H265STD_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define vulkan_video_codec_h265std 1
|
||||||
|
#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
|
||||||
|
#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
|
||||||
|
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
|
||||||
|
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
|
||||||
|
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
|
||||||
|
#define STD_VIDEO_H265_MAX_DPB_SIZE 16
|
||||||
|
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
|
||||||
|
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
|
||||||
|
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
|
||||||
|
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
|
||||||
|
#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
|
||||||
|
#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
|
||||||
|
#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
|
||||||
|
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
|
||||||
|
#define STD_VIDEO_H265_MAX_DELTA_POC 48
|
||||||
|
|
||||||
|
typedef enum StdVideoH265ChromaFormatIdc {
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1,
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2,
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3,
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265ChromaFormatIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH265ProfileIdc {
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_MAIN = 1,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265ProfileIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH265LevelIdc {
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_1_0 = 0,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_2_0 = 1,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_2_1 = 2,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_3_0 = 3,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_3_1 = 4,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_4_0 = 5,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_4_1 = 6,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_5_0 = 7,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_5_1 = 8,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_5_2 = 9,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_6_0 = 10,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_6_1 = 11,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_6_2 = 12,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265LevelIdc;
|
||||||
|
|
||||||
|
typedef enum StdVideoH265SliceType {
|
||||||
|
STD_VIDEO_H265_SLICE_TYPE_B = 0,
|
||||||
|
STD_VIDEO_H265_SLICE_TYPE_P = 1,
|
||||||
|
STD_VIDEO_H265_SLICE_TYPE_I = 2,
|
||||||
|
STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265SliceType;
|
||||||
|
|
||||||
|
typedef enum StdVideoH265PictureType {
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_P = 0,
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_B = 1,
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_I = 2,
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_IDR = 3,
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265PictureType;
|
||||||
|
|
||||||
|
typedef enum StdVideoH265AspectRatioIdc {
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoH265AspectRatioIdc;
|
||||||
|
typedef struct StdVideoH265DecPicBufMgr {
|
||||||
|
uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
|
||||||
|
uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
|
||||||
|
uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
|
||||||
|
} StdVideoH265DecPicBufMgr;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265SubLayerHrdParameters {
|
||||||
|
uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||||
|
uint32_t cbr_flag;
|
||||||
|
} StdVideoH265SubLayerHrdParameters;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265HrdFlags {
|
||||||
|
uint32_t nal_hrd_parameters_present_flag : 1;
|
||||||
|
uint32_t vcl_hrd_parameters_present_flag : 1;
|
||||||
|
uint32_t sub_pic_hrd_params_present_flag : 1;
|
||||||
|
uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1;
|
||||||
|
uint32_t fixed_pic_rate_general_flag : 8;
|
||||||
|
uint32_t fixed_pic_rate_within_cvs_flag : 8;
|
||||||
|
uint32_t low_delay_hrd_flag : 8;
|
||||||
|
} StdVideoH265HrdFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265HrdParameters {
|
||||||
|
StdVideoH265HrdFlags flags;
|
||||||
|
uint8_t tick_divisor_minus2;
|
||||||
|
uint8_t du_cpb_removal_delay_increment_length_minus1;
|
||||||
|
uint8_t dpb_output_delay_du_length_minus1;
|
||||||
|
uint8_t bit_rate_scale;
|
||||||
|
uint8_t cpb_size_scale;
|
||||||
|
uint8_t cpb_size_du_scale;
|
||||||
|
uint8_t initial_cpb_removal_delay_length_minus1;
|
||||||
|
uint8_t au_cpb_removal_delay_length_minus1;
|
||||||
|
uint8_t dpb_output_delay_length_minus1;
|
||||||
|
uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
|
||||||
|
uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
|
||||||
|
uint16_t reserved[3];
|
||||||
|
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal;
|
||||||
|
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl;
|
||||||
|
} StdVideoH265HrdParameters;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265VpsFlags {
|
||||||
|
uint32_t vps_temporal_id_nesting_flag : 1;
|
||||||
|
uint32_t vps_sub_layer_ordering_info_present_flag : 1;
|
||||||
|
uint32_t vps_timing_info_present_flag : 1;
|
||||||
|
uint32_t vps_poc_proportional_to_timing_flag : 1;
|
||||||
|
} StdVideoH265VpsFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265ProfileTierLevelFlags {
|
||||||
|
uint32_t general_tier_flag : 1;
|
||||||
|
uint32_t general_progressive_source_flag : 1;
|
||||||
|
uint32_t general_interlaced_source_flag : 1;
|
||||||
|
uint32_t general_non_packed_constraint_flag : 1;
|
||||||
|
uint32_t general_frame_only_constraint_flag : 1;
|
||||||
|
} StdVideoH265ProfileTierLevelFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265ProfileTierLevel {
|
||||||
|
StdVideoH265ProfileTierLevelFlags flags;
|
||||||
|
StdVideoH265ProfileIdc general_profile_idc;
|
||||||
|
StdVideoH265LevelIdc general_level_idc;
|
||||||
|
} StdVideoH265ProfileTierLevel;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265VideoParameterSet {
|
||||||
|
StdVideoH265VpsFlags flags;
|
||||||
|
uint8_t vps_video_parameter_set_id;
|
||||||
|
uint8_t vps_max_sub_layers_minus1;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint32_t vps_num_units_in_tick;
|
||||||
|
uint32_t vps_time_scale;
|
||||||
|
uint32_t vps_num_ticks_poc_diff_one_minus1;
|
||||||
|
uint32_t reserved3;
|
||||||
|
const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
|
||||||
|
const StdVideoH265HrdParameters* pHrdParameters;
|
||||||
|
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
|
||||||
|
} StdVideoH265VideoParameterSet;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265ScalingLists {
|
||||||
|
uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
|
||||||
|
uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
|
||||||
|
uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
|
||||||
|
uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
|
||||||
|
uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
|
||||||
|
uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
|
||||||
|
} StdVideoH265ScalingLists;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265SpsVuiFlags {
|
||||||
|
uint32_t aspect_ratio_info_present_flag : 1;
|
||||||
|
uint32_t overscan_info_present_flag : 1;
|
||||||
|
uint32_t overscan_appropriate_flag : 1;
|
||||||
|
uint32_t video_signal_type_present_flag : 1;
|
||||||
|
uint32_t video_full_range_flag : 1;
|
||||||
|
uint32_t colour_description_present_flag : 1;
|
||||||
|
uint32_t chroma_loc_info_present_flag : 1;
|
||||||
|
uint32_t neutral_chroma_indication_flag : 1;
|
||||||
|
uint32_t field_seq_flag : 1;
|
||||||
|
uint32_t frame_field_info_present_flag : 1;
|
||||||
|
uint32_t default_display_window_flag : 1;
|
||||||
|
uint32_t vui_timing_info_present_flag : 1;
|
||||||
|
uint32_t vui_poc_proportional_to_timing_flag : 1;
|
||||||
|
uint32_t vui_hrd_parameters_present_flag : 1;
|
||||||
|
uint32_t bitstream_restriction_flag : 1;
|
||||||
|
uint32_t tiles_fixed_structure_flag : 1;
|
||||||
|
uint32_t motion_vectors_over_pic_boundaries_flag : 1;
|
||||||
|
uint32_t restricted_ref_pic_lists_flag : 1;
|
||||||
|
} StdVideoH265SpsVuiFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265SequenceParameterSetVui {
|
||||||
|
StdVideoH265SpsVuiFlags flags;
|
||||||
|
StdVideoH265AspectRatioIdc aspect_ratio_idc;
|
||||||
|
uint16_t sar_width;
|
||||||
|
uint16_t sar_height;
|
||||||
|
uint8_t video_format;
|
||||||
|
uint8_t colour_primaries;
|
||||||
|
uint8_t transfer_characteristics;
|
||||||
|
uint8_t matrix_coeffs;
|
||||||
|
uint8_t chroma_sample_loc_type_top_field;
|
||||||
|
uint8_t chroma_sample_loc_type_bottom_field;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint16_t def_disp_win_left_offset;
|
||||||
|
uint16_t def_disp_win_right_offset;
|
||||||
|
uint16_t def_disp_win_top_offset;
|
||||||
|
uint16_t def_disp_win_bottom_offset;
|
||||||
|
uint32_t vui_num_units_in_tick;
|
||||||
|
uint32_t vui_time_scale;
|
||||||
|
uint32_t vui_num_ticks_poc_diff_one_minus1;
|
||||||
|
uint16_t min_spatial_segmentation_idc;
|
||||||
|
uint16_t reserved3;
|
||||||
|
uint8_t max_bytes_per_pic_denom;
|
||||||
|
uint8_t max_bits_per_min_cu_denom;
|
||||||
|
uint8_t log2_max_mv_length_horizontal;
|
||||||
|
uint8_t log2_max_mv_length_vertical;
|
||||||
|
const StdVideoH265HrdParameters* pHrdParameters;
|
||||||
|
} StdVideoH265SequenceParameterSetVui;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265PredictorPaletteEntries {
|
||||||
|
uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
|
||||||
|
} StdVideoH265PredictorPaletteEntries;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265SpsFlags {
|
||||||
|
uint32_t sps_temporal_id_nesting_flag : 1;
|
||||||
|
uint32_t separate_colour_plane_flag : 1;
|
||||||
|
uint32_t conformance_window_flag : 1;
|
||||||
|
uint32_t sps_sub_layer_ordering_info_present_flag : 1;
|
||||||
|
uint32_t scaling_list_enabled_flag : 1;
|
||||||
|
uint32_t sps_scaling_list_data_present_flag : 1;
|
||||||
|
uint32_t amp_enabled_flag : 1;
|
||||||
|
uint32_t sample_adaptive_offset_enabled_flag : 1;
|
||||||
|
uint32_t pcm_enabled_flag : 1;
|
||||||
|
uint32_t pcm_loop_filter_disabled_flag : 1;
|
||||||
|
uint32_t long_term_ref_pics_present_flag : 1;
|
||||||
|
uint32_t sps_temporal_mvp_enabled_flag : 1;
|
||||||
|
uint32_t strong_intra_smoothing_enabled_flag : 1;
|
||||||
|
uint32_t vui_parameters_present_flag : 1;
|
||||||
|
uint32_t sps_extension_present_flag : 1;
|
||||||
|
uint32_t sps_range_extension_flag : 1;
|
||||||
|
uint32_t transform_skip_rotation_enabled_flag : 1;
|
||||||
|
uint32_t transform_skip_context_enabled_flag : 1;
|
||||||
|
uint32_t implicit_rdpcm_enabled_flag : 1;
|
||||||
|
uint32_t explicit_rdpcm_enabled_flag : 1;
|
||||||
|
uint32_t extended_precision_processing_flag : 1;
|
||||||
|
uint32_t intra_smoothing_disabled_flag : 1;
|
||||||
|
uint32_t high_precision_offsets_enabled_flag : 1;
|
||||||
|
uint32_t persistent_rice_adaptation_enabled_flag : 1;
|
||||||
|
uint32_t cabac_bypass_alignment_enabled_flag : 1;
|
||||||
|
uint32_t sps_scc_extension_flag : 1;
|
||||||
|
uint32_t sps_curr_pic_ref_enabled_flag : 1;
|
||||||
|
uint32_t palette_mode_enabled_flag : 1;
|
||||||
|
uint32_t sps_palette_predictor_initializers_present_flag : 1;
|
||||||
|
uint32_t intra_boundary_filtering_disabled_flag : 1;
|
||||||
|
} StdVideoH265SpsFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265ShortTermRefPicSetFlags {
|
||||||
|
uint32_t inter_ref_pic_set_prediction_flag : 1;
|
||||||
|
uint32_t delta_rps_sign : 1;
|
||||||
|
} StdVideoH265ShortTermRefPicSetFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265ShortTermRefPicSet {
|
||||||
|
StdVideoH265ShortTermRefPicSetFlags flags;
|
||||||
|
uint32_t delta_idx_minus1;
|
||||||
|
uint16_t use_delta_flag;
|
||||||
|
uint16_t abs_delta_rps_minus1;
|
||||||
|
uint16_t used_by_curr_pic_flag;
|
||||||
|
uint16_t used_by_curr_pic_s0_flag;
|
||||||
|
uint16_t used_by_curr_pic_s1_flag;
|
||||||
|
uint16_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint8_t reserved3;
|
||||||
|
uint8_t num_negative_pics;
|
||||||
|
uint8_t num_positive_pics;
|
||||||
|
uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
|
||||||
|
uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
|
||||||
|
} StdVideoH265ShortTermRefPicSet;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265LongTermRefPicsSps {
|
||||||
|
uint32_t used_by_curr_pic_lt_sps_flag;
|
||||||
|
uint32_t lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
|
||||||
|
} StdVideoH265LongTermRefPicsSps;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265SequenceParameterSet {
|
||||||
|
StdVideoH265SpsFlags flags;
|
||||||
|
StdVideoH265ChromaFormatIdc chroma_format_idc;
|
||||||
|
uint32_t pic_width_in_luma_samples;
|
||||||
|
uint32_t pic_height_in_luma_samples;
|
||||||
|
uint8_t sps_video_parameter_set_id;
|
||||||
|
uint8_t sps_max_sub_layers_minus1;
|
||||||
|
uint8_t sps_seq_parameter_set_id;
|
||||||
|
uint8_t bit_depth_luma_minus8;
|
||||||
|
uint8_t bit_depth_chroma_minus8;
|
||||||
|
uint8_t log2_max_pic_order_cnt_lsb_minus4;
|
||||||
|
uint8_t log2_min_luma_coding_block_size_minus3;
|
||||||
|
uint8_t log2_diff_max_min_luma_coding_block_size;
|
||||||
|
uint8_t log2_min_luma_transform_block_size_minus2;
|
||||||
|
uint8_t log2_diff_max_min_luma_transform_block_size;
|
||||||
|
uint8_t max_transform_hierarchy_depth_inter;
|
||||||
|
uint8_t max_transform_hierarchy_depth_intra;
|
||||||
|
uint8_t num_short_term_ref_pic_sets;
|
||||||
|
uint8_t num_long_term_ref_pics_sps;
|
||||||
|
uint8_t pcm_sample_bit_depth_luma_minus1;
|
||||||
|
uint8_t pcm_sample_bit_depth_chroma_minus1;
|
||||||
|
uint8_t log2_min_pcm_luma_coding_block_size_minus3;
|
||||||
|
uint8_t log2_diff_max_min_pcm_luma_coding_block_size;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint8_t palette_max_size;
|
||||||
|
uint8_t delta_palette_max_predictor_size;
|
||||||
|
uint8_t motion_vector_resolution_control_idc;
|
||||||
|
uint8_t sps_num_palette_predictor_initializers_minus1;
|
||||||
|
uint32_t conf_win_left_offset;
|
||||||
|
uint32_t conf_win_right_offset;
|
||||||
|
uint32_t conf_win_top_offset;
|
||||||
|
uint32_t conf_win_bottom_offset;
|
||||||
|
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
|
||||||
|
const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
|
||||||
|
const StdVideoH265ScalingLists* pScalingLists;
|
||||||
|
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
|
||||||
|
const StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps;
|
||||||
|
const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui;
|
||||||
|
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
|
||||||
|
} StdVideoH265SequenceParameterSet;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265PpsFlags {
|
||||||
|
uint32_t dependent_slice_segments_enabled_flag : 1;
|
||||||
|
uint32_t output_flag_present_flag : 1;
|
||||||
|
uint32_t sign_data_hiding_enabled_flag : 1;
|
||||||
|
uint32_t cabac_init_present_flag : 1;
|
||||||
|
uint32_t constrained_intra_pred_flag : 1;
|
||||||
|
uint32_t transform_skip_enabled_flag : 1;
|
||||||
|
uint32_t cu_qp_delta_enabled_flag : 1;
|
||||||
|
uint32_t pps_slice_chroma_qp_offsets_present_flag : 1;
|
||||||
|
uint32_t weighted_pred_flag : 1;
|
||||||
|
uint32_t weighted_bipred_flag : 1;
|
||||||
|
uint32_t transquant_bypass_enabled_flag : 1;
|
||||||
|
uint32_t tiles_enabled_flag : 1;
|
||||||
|
uint32_t entropy_coding_sync_enabled_flag : 1;
|
||||||
|
uint32_t uniform_spacing_flag : 1;
|
||||||
|
uint32_t loop_filter_across_tiles_enabled_flag : 1;
|
||||||
|
uint32_t pps_loop_filter_across_slices_enabled_flag : 1;
|
||||||
|
uint32_t deblocking_filter_control_present_flag : 1;
|
||||||
|
uint32_t deblocking_filter_override_enabled_flag : 1;
|
||||||
|
uint32_t pps_deblocking_filter_disabled_flag : 1;
|
||||||
|
uint32_t pps_scaling_list_data_present_flag : 1;
|
||||||
|
uint32_t lists_modification_present_flag : 1;
|
||||||
|
uint32_t slice_segment_header_extension_present_flag : 1;
|
||||||
|
uint32_t pps_extension_present_flag : 1;
|
||||||
|
uint32_t cross_component_prediction_enabled_flag : 1;
|
||||||
|
uint32_t chroma_qp_offset_list_enabled_flag : 1;
|
||||||
|
uint32_t pps_curr_pic_ref_enabled_flag : 1;
|
||||||
|
uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
|
||||||
|
uint32_t pps_slice_act_qp_offsets_present_flag : 1;
|
||||||
|
uint32_t pps_palette_predictor_initializers_present_flag : 1;
|
||||||
|
uint32_t monochrome_palette_flag : 1;
|
||||||
|
uint32_t pps_range_extension_flag : 1;
|
||||||
|
} StdVideoH265PpsFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoH265PictureParameterSet {
|
||||||
|
StdVideoH265PpsFlags flags;
|
||||||
|
uint8_t pps_pic_parameter_set_id;
|
||||||
|
uint8_t pps_seq_parameter_set_id;
|
||||||
|
uint8_t sps_video_parameter_set_id;
|
||||||
|
uint8_t num_extra_slice_header_bits;
|
||||||
|
uint8_t num_ref_idx_l0_default_active_minus1;
|
||||||
|
uint8_t num_ref_idx_l1_default_active_minus1;
|
||||||
|
int8_t init_qp_minus26;
|
||||||
|
uint8_t diff_cu_qp_delta_depth;
|
||||||
|
int8_t pps_cb_qp_offset;
|
||||||
|
int8_t pps_cr_qp_offset;
|
||||||
|
int8_t pps_beta_offset_div2;
|
||||||
|
int8_t pps_tc_offset_div2;
|
||||||
|
uint8_t log2_parallel_merge_level_minus2;
|
||||||
|
uint8_t log2_max_transform_skip_block_size_minus2;
|
||||||
|
uint8_t diff_cu_chroma_qp_offset_depth;
|
||||||
|
uint8_t chroma_qp_offset_list_len_minus1;
|
||||||
|
int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
|
||||||
|
int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
|
||||||
|
uint8_t log2_sao_offset_scale_luma;
|
||||||
|
uint8_t log2_sao_offset_scale_chroma;
|
||||||
|
int8_t pps_act_y_qp_offset_plus5;
|
||||||
|
int8_t pps_act_cb_qp_offset_plus5;
|
||||||
|
int8_t pps_act_cr_qp_offset_plus3;
|
||||||
|
uint8_t pps_num_palette_predictor_initializers;
|
||||||
|
uint8_t luma_bit_depth_entry_minus8;
|
||||||
|
uint8_t chroma_bit_depth_entry_minus8;
|
||||||
|
uint8_t num_tile_columns_minus1;
|
||||||
|
uint8_t num_tile_rows_minus1;
|
||||||
|
uint8_t reserved1;
|
||||||
|
uint8_t reserved2;
|
||||||
|
uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
|
||||||
|
uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
|
||||||
|
uint32_t reserved3;
|
||||||
|
const StdVideoH265ScalingLists* pScalingLists;
|
||||||
|
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
|
||||||
|
} StdVideoH265PictureParameterSet;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
#ifndef VULKAN_VIDEO_CODEC_H265STD_DECODE_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define vulkan_video_codec_h265std_decode 1
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
|
||||||
|
|
||||||
|
#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
|
||||||
|
typedef struct StdVideoDecodeH265PictureInfoFlags {
|
||||||
|
uint32_t IrapPicFlag : 1;
|
||||||
|
uint32_t IdrPicFlag : 1;
|
||||||
|
uint32_t IsReference : 1;
|
||||||
|
uint32_t short_term_ref_pic_set_sps_flag : 1;
|
||||||
|
} StdVideoDecodeH265PictureInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH265PictureInfo {
|
||||||
|
StdVideoDecodeH265PictureInfoFlags flags;
|
||||||
|
uint8_t sps_video_parameter_set_id;
|
||||||
|
uint8_t pps_seq_parameter_set_id;
|
||||||
|
uint8_t pps_pic_parameter_set_id;
|
||||||
|
uint8_t NumDeltaPocsOfRefRpsIdx;
|
||||||
|
int32_t PicOrderCntVal;
|
||||||
|
uint16_t NumBitsForSTRefPicSetInSlice;
|
||||||
|
uint16_t reserved;
|
||||||
|
uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
|
||||||
|
uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
|
||||||
|
uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
|
||||||
|
} StdVideoDecodeH265PictureInfo;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH265ReferenceInfoFlags {
|
||||||
|
uint32_t used_for_long_term_reference : 1;
|
||||||
|
uint32_t unused_for_reference : 1;
|
||||||
|
} StdVideoDecodeH265ReferenceInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeH265ReferenceInfo {
|
||||||
|
StdVideoDecodeH265ReferenceInfoFlags flags;
|
||||||
|
int32_t PicOrderCntVal;
|
||||||
|
} StdVideoDecodeH265ReferenceInfo;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
Vendored
+19
-1
@@ -2,7 +2,7 @@
|
|||||||
#define VULKAN_WIN32_H_ 1
|
#define VULKAN_WIN32_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2022 The Khronos Group Inc.
|
** Copyright 2015-2023 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -308,6 +308,24 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(
|
|||||||
VkDeviceGroupPresentModeFlagsKHR* pModes);
|
VkDeviceGroupPresentModeFlagsKHR* pModes);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_NV_acquire_winrt_display 1
|
||||||
|
#define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
|
||||||
|
#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
VkDisplayKHR display);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t deviceRelativeId,
|
||||||
|
VkDisplayKHR* pDisplay);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Vendored
+924
-756
File diff suppressed because it is too large
Load Diff
Vendored
+1603
-955
File diff suppressed because it is too large
Load Diff
Vendored
+3628
-2912
File diff suppressed because it is too large
Load Diff
Vendored
+2050
-263
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user