@shopify/react-native-skia 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/android/CMakeLists.txt +10 -0
  2. package/android/build.gradle +2 -1
  3. package/apple/SkiaCVPixelBufferUtils.mm +8 -4
  4. package/cpp/api/JsiSkCanvas.h +10 -8
  5. package/cpp/api/JsiSkFont.h +14 -18
  6. package/cpp/api/JsiSkPath.h +4 -2
  7. package/cpp/api/JsiSkPathEffectFactory.h +2 -2
  8. package/cpp/api/JsiSkTextBlobFactory.h +5 -3
  9. package/cpp/api/JsiSkTypeface.h +5 -4
  10. package/cpp/api/recorder/Drawings.h +26 -20
  11. package/cpp/api/recorder/PathEffects.h +3 -2
  12. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +1 -1
  13. package/cpp/skia/include/android/SkImageAndroid.h +1 -8
  14. package/cpp/skia/include/config/SkUserConfig.h +9 -0
  15. package/cpp/skia/include/core/SkCPUContext.h +31 -0
  16. package/cpp/skia/include/core/SkCPURecorder.h +69 -0
  17. package/cpp/skia/include/core/SkCanvas.h +57 -13
  18. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  19. package/cpp/skia/include/core/SkData.h +63 -37
  20. package/cpp/skia/include/core/SkFont.h +94 -65
  21. package/cpp/skia/include/core/SkImage.h +10 -9
  22. package/cpp/skia/include/core/SkImageGenerator.h +3 -0
  23. package/cpp/skia/include/core/SkMatrix.h +102 -116
  24. package/cpp/skia/include/core/SkMilestone.h +1 -1
  25. package/cpp/skia/include/core/SkPath.h +163 -60
  26. package/cpp/skia/include/core/SkPathBuilder.h +713 -30
  27. package/cpp/skia/include/core/SkPathTypes.h +5 -1
  28. package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
  29. package/cpp/skia/include/core/SkRecorder.h +35 -0
  30. package/cpp/skia/include/core/SkRect.h +57 -27
  31. package/cpp/skia/include/core/SkRegion.h +1 -1
  32. package/cpp/skia/include/core/SkSurface.h +8 -1
  33. package/cpp/skia/include/core/SkTextBlob.h +50 -6
  34. package/cpp/skia/include/core/SkTraceMemoryDump.h +7 -0
  35. package/cpp/skia/include/core/SkTypeface.h +53 -26
  36. package/cpp/skia/include/core/SkTypes.h +6 -0
  37. package/cpp/skia/include/effects/SkDashPathEffect.h +9 -3
  38. package/cpp/skia/include/effects/SkRuntimeEffect.h +1 -1
  39. package/cpp/skia/include/encode/SkEncoder.h +1 -1
  40. package/cpp/skia/include/encode/SkICC.h +1 -1
  41. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +23 -0
  42. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +12 -0
  43. package/cpp/skia/include/gpu/graphite/Context.h +32 -8
  44. package/cpp/skia/include/gpu/graphite/ContextOptions.h +22 -4
  45. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +21 -4
  46. package/cpp/skia/include/gpu/graphite/PrecompileContext.h +16 -2
  47. package/cpp/skia/include/gpu/graphite/Recorder.h +30 -10
  48. package/cpp/skia/include/gpu/graphite/Recording.h +7 -3
  49. package/cpp/skia/include/gpu/graphite/TextureInfo.h +3 -3
  50. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +15 -0
  51. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +89 -13
  52. package/cpp/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +39 -0
  53. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +1 -1
  54. package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +214 -0
  55. package/cpp/skia/include/pathops/SkPathOps.h +7 -111
  56. package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +3 -0
  57. package/cpp/skia/include/private/SkGainmapShader.h +10 -4
  58. package/cpp/skia/include/private/SkPathRef.h +6 -2
  59. package/cpp/skia/include/private/base/SkAlign.h +11 -0
  60. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
  61. package/cpp/skia/include/third_party/vulkan/vulkan/vk_icd.h +255 -0
  62. package/cpp/skia/include/third_party/vulkan/vulkan/vk_layer.h +203 -0
  63. package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +1 -2
  64. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +390 -0
  65. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +106 -0
  66. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +140 -0
  67. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +1 -1
  68. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +1 -1
  69. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +144 -0
  70. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +1 -1
  71. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +1 -1
  72. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +158 -0
  73. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +1 -1
  74. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +1 -1
  75. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +1 -1
  76. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +242 -0
  77. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +10094 -5707
  78. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +55 -0
  79. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +288 -0
  80. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +59 -0
  81. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +1 -1
  82. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +1 -1
  83. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +238 -0
  84. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +110 -0
  85. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +47 -0
  86. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +55 -0
  87. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +1 -1
  88. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +1 -1
  89. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +60 -0
  90. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +46 -0
  91. package/cpp/skia/modules/pathops/include/SkPathOps.h +121 -0
  92. package/cpp/skia/modules/skcms/src/skcms_internals.h +10 -2
  93. package/cpp/skia/modules/skcms/src/skcms_public.h +39 -10
  94. package/lib/commonjs/sksg/Container.d.ts +1 -0
  95. package/lib/commonjs/sksg/Container.js +3 -0
  96. package/lib/commonjs/sksg/Container.js.map +1 -1
  97. package/lib/commonjs/sksg/Reconciler.js +1 -0
  98. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  99. package/lib/module/sksg/Container.d.ts +1 -0
  100. package/lib/module/sksg/Container.js +3 -0
  101. package/lib/module/sksg/Container.js.map +1 -1
  102. package/lib/module/sksg/Reconciler.js +1 -0
  103. package/lib/module/sksg/Reconciler.js.map +1 -1
  104. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -1
  105. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -3
  106. package/lib/typescript/lib/module/sksg/Container.d.ts +2 -1
  107. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -3
  108. package/lib/typescript/src/sksg/Container.d.ts +1 -0
  109. package/libs/android/arm64-v8a/libpathops.a +0 -0
  110. package/libs/android/arm64-v8a/libskia.a +0 -0
  111. package/libs/android/arm64-v8a/libskottie.a +0 -0
  112. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  113. package/libs/android/arm64-v8a/libsksg.a +0 -0
  114. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  115. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  116. package/libs/android/arm64-v8a/libsvg.a +0 -0
  117. package/libs/android/armeabi-v7a/libpathops.a +0 -0
  118. package/libs/android/armeabi-v7a/libskia.a +0 -0
  119. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  120. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  121. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  122. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  123. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  124. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  125. package/libs/android/x86/libpathops.a +0 -0
  126. package/libs/android/x86/libskia.a +0 -0
  127. package/libs/android/x86/libskottie.a +0 -0
  128. package/libs/android/x86/libskparagraph.a +0 -0
  129. package/libs/android/x86/libsksg.a +0 -0
  130. package/libs/android/x86/libskshaper.a +0 -0
  131. package/libs/android/x86/libskunicode_icu.a +0 -0
  132. package/libs/android/x86/libsvg.a +0 -0
  133. package/libs/android/x86_64/libpathops.a +0 -0
  134. package/libs/android/x86_64/libskia.a +0 -0
  135. package/libs/android/x86_64/libskottie.a +0 -0
  136. package/libs/android/x86_64/libskparagraph.a +0 -0
  137. package/libs/android/x86_64/libsksg.a +0 -0
  138. package/libs/android/x86_64/libskshaper.a +0 -0
  139. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  140. package/libs/android/x86_64/libsvg.a +0 -0
  141. package/libs/apple/libpathops.xcframework/Info.plist +94 -0
  142. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
  143. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  144. package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
  145. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
  146. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  147. package/libs/apple/libskia.xcframework/Info.plist +7 -7
  148. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  149. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  150. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  151. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  152. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  153. package/libs/apple/libskottie.xcframework/Info.plist +10 -10
  154. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  155. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  156. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  157. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  158. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  159. package/libs/apple/libskparagraph.xcframework/Info.plist +13 -13
  160. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  161. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  162. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  163. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  164. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  165. package/libs/apple/libsksg.xcframework/Info.plist +11 -11
  166. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  167. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  168. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  169. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  170. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  171. package/libs/apple/libskshaper.xcframework/Info.plist +12 -12
  172. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  173. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  174. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  175. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  176. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  177. package/libs/apple/libskunicode_core.xcframework/Info.plist +14 -14
  178. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  179. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  180. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  181. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +13 -13
  182. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  183. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  184. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  185. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  186. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  187. package/libs/apple/libsvg.xcframework/Info.plist +17 -17
  188. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  189. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  190. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  191. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  192. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  193. package/package.json +1 -1
  194. package/react-native-skia.podspec +2 -1
  195. package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +23 -0
  196. package/src/sksg/Container.ts +4 -0
  197. package/src/sksg/Reconciler.ts +1 -0
@@ -0,0 +1,203 @@
1
+ /*
2
+ * Copyright 2015-2023 The Khronos Group Inc.
3
+ * Copyright 2015-2023 Valve Corporation
4
+ * Copyright 2015-2023 LunarG, Inc.
5
+ *
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ #pragma once
9
+
10
+ /* Need to define dispatch table
11
+ * Core struct can then have ptr to dispatch table at the top
12
+ * Along with object ptrs for current and next OBJ
13
+ */
14
+
15
+ #include "vulkan_core.h"
16
+
17
+ #define MAX_NUM_UNKNOWN_EXTS 250
18
+
19
+ // Loader-Layer version negotiation API. Versions add the following features:
20
+ // Versions 0/1 - Initial. Doesn't support vk_layerGetPhysicalDeviceProcAddr
21
+ // or vk_icdNegotiateLoaderLayerInterfaceVersion.
22
+ // Version 2 - Add support for vk_layerGetPhysicalDeviceProcAddr and
23
+ // vk_icdNegotiateLoaderLayerInterfaceVersion.
24
+ #define CURRENT_LOADER_LAYER_INTERFACE_VERSION 2
25
+ #define MIN_SUPPORTED_LOADER_LAYER_INTERFACE_VERSION 1
26
+
27
+ #define VK_CURRENT_CHAIN_VERSION 1
28
+
29
+ // Typedef for use in the interfaces below
30
+ typedef PFN_vkVoidFunction(VKAPI_PTR* PFN_GetPhysicalDeviceProcAddr)(VkInstance instance,
31
+ const char* pName);
32
+
33
+ // Version negotiation values
34
+ typedef enum VkNegotiateLayerStructType {
35
+ LAYER_NEGOTIATE_UNINTIALIZED = 0,
36
+ LAYER_NEGOTIATE_INTERFACE_STRUCT = 1,
37
+ } VkNegotiateLayerStructType;
38
+
39
+ // Version negotiation structures
40
+ typedef struct VkNegotiateLayerInterface {
41
+ VkNegotiateLayerStructType sType;
42
+ void* pNext;
43
+ uint32_t loaderLayerInterfaceVersion;
44
+ PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr;
45
+ PFN_vkGetDeviceProcAddr pfnGetDeviceProcAddr;
46
+ PFN_GetPhysicalDeviceProcAddr pfnGetPhysicalDeviceProcAddr;
47
+ } VkNegotiateLayerInterface;
48
+
49
+ // Version negotiation functions
50
+ typedef VkResult(VKAPI_PTR* PFN_vkNegotiateLoaderLayerInterfaceVersion)(
51
+ VkNegotiateLayerInterface* pVersionStruct);
52
+
53
+ // Function prototype for unknown physical device extension command
54
+ typedef VkResult(VKAPI_PTR* PFN_PhysDevExt)(VkPhysicalDevice phys_device);
55
+
56
+ // ------------------------------------------------------------------------------------------------
57
+ // CreateInstance and CreateDevice support structures
58
+
59
+ /* Sub type of structure for instance and device loader ext of CreateInfo.
60
+ * When sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
61
+ * or sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
62
+ * then VkLayerFunction indicates struct type pointed to by pNext
63
+ */
64
+ typedef enum VkLayerFunction_ {
65
+ VK_LAYER_LINK_INFO = 0,
66
+ VK_LOADER_DATA_CALLBACK = 1,
67
+ VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2,
68
+ VK_LOADER_FEATURES = 3,
69
+ } VkLayerFunction;
70
+
71
+ typedef struct VkLayerInstanceLink_ {
72
+ struct VkLayerInstanceLink_* pNext;
73
+ PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
74
+ PFN_GetPhysicalDeviceProcAddr pfnNextGetPhysicalDeviceProcAddr;
75
+ } VkLayerInstanceLink;
76
+
77
+ /*
78
+ * When creating the device chain the loader needs to pass
79
+ * down information about it's device structure needed at
80
+ * the end of the chain. Passing the data via the
81
+ * VkLayerDeviceInfo avoids issues with finding the
82
+ * exact instance being used.
83
+ */
84
+ typedef struct VkLayerDeviceInfo_ {
85
+ void* device_info;
86
+ PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
87
+ } VkLayerDeviceInfo;
88
+
89
+ typedef VkResult(VKAPI_PTR* PFN_vkSetInstanceLoaderData)(VkInstance instance, void* object);
90
+ typedef VkResult(VKAPI_PTR* PFN_vkSetDeviceLoaderData)(VkDevice device, void* object);
91
+ typedef VkResult(VKAPI_PTR* PFN_vkLayerCreateDevice)(VkInstance instance,
92
+ VkPhysicalDevice physicalDevice,
93
+ const VkDeviceCreateInfo* pCreateInfo,
94
+ const VkAllocationCallbacks* pAllocator,
95
+ VkDevice* pDevice,
96
+ PFN_vkGetInstanceProcAddr layerGIPA,
97
+ PFN_vkGetDeviceProcAddr* nextGDPA);
98
+ typedef void(VKAPI_PTR* PFN_vkLayerDestroyDevice)(VkDevice physicalDevice,
99
+ const VkAllocationCallbacks* pAllocator,
100
+ PFN_vkDestroyDevice destroyFunction);
101
+
102
+ typedef enum VkLoaderFeastureFlagBits {
103
+ VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001,
104
+ } VkLoaderFlagBits;
105
+ typedef VkFlags VkLoaderFeatureFlags;
106
+
107
+ typedef struct {
108
+ VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
109
+ const void* pNext;
110
+ VkLayerFunction function;
111
+ union {
112
+ VkLayerInstanceLink* pLayerInfo;
113
+ PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData;
114
+ struct {
115
+ PFN_vkLayerCreateDevice pfnLayerCreateDevice;
116
+ PFN_vkLayerDestroyDevice pfnLayerDestroyDevice;
117
+ } layerDevice;
118
+ VkLoaderFeatureFlags loaderFeatures;
119
+ } u;
120
+ } VkLayerInstanceCreateInfo;
121
+
122
+ typedef struct VkLayerDeviceLink_ {
123
+ struct VkLayerDeviceLink_* pNext;
124
+ PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
125
+ PFN_vkGetDeviceProcAddr pfnNextGetDeviceProcAddr;
126
+ } VkLayerDeviceLink;
127
+
128
+ typedef struct {
129
+ VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
130
+ const void* pNext;
131
+ VkLayerFunction function;
132
+ union {
133
+ VkLayerDeviceLink* pLayerInfo;
134
+ PFN_vkSetDeviceLoaderData pfnSetDeviceLoaderData;
135
+ } u;
136
+ } VkLayerDeviceCreateInfo;
137
+
138
+ #ifdef __cplusplus
139
+ extern "C" {
140
+ #endif
141
+
142
+ VKAPI_ATTR VkResult VKAPI_CALL
143
+ vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface* pVersionStruct);
144
+
145
+ typedef enum VkChainType {
146
+ VK_CHAIN_TYPE_UNKNOWN = 0,
147
+ VK_CHAIN_TYPE_ENUMERATE_INSTANCE_EXTENSION_PROPERTIES = 1,
148
+ VK_CHAIN_TYPE_ENUMERATE_INSTANCE_LAYER_PROPERTIES = 2,
149
+ VK_CHAIN_TYPE_ENUMERATE_INSTANCE_VERSION = 3,
150
+ } VkChainType;
151
+
152
+ typedef struct VkChainHeader {
153
+ VkChainType type;
154
+ uint32_t version;
155
+ uint32_t size;
156
+ } VkChainHeader;
157
+
158
+ typedef struct VkEnumerateInstanceExtensionPropertiesChain {
159
+ VkChainHeader header;
160
+ VkResult(VKAPI_PTR* pfnNextLayer)(const struct VkEnumerateInstanceExtensionPropertiesChain*,
161
+ const char*,
162
+ uint32_t*,
163
+ VkExtensionProperties*);
164
+ const struct VkEnumerateInstanceExtensionPropertiesChain* pNextLink;
165
+
166
+ #if defined(__cplusplus)
167
+ inline VkResult CallDown(const char* pLayerName,
168
+ uint32_t* pPropertyCount,
169
+ VkExtensionProperties* pProperties) const {
170
+ return pfnNextLayer(pNextLink, pLayerName, pPropertyCount, pProperties);
171
+ }
172
+ #endif
173
+ } VkEnumerateInstanceExtensionPropertiesChain;
174
+
175
+ typedef struct VkEnumerateInstanceLayerPropertiesChain {
176
+ VkChainHeader header;
177
+ VkResult(VKAPI_PTR* pfnNextLayer)(const struct VkEnumerateInstanceLayerPropertiesChain*,
178
+ uint32_t*,
179
+ VkLayerProperties*);
180
+ const struct VkEnumerateInstanceLayerPropertiesChain* pNextLink;
181
+
182
+ #if defined(__cplusplus)
183
+ inline VkResult CallDown(uint32_t* pPropertyCount, VkLayerProperties* pProperties) const {
184
+ return pfnNextLayer(pNextLink, pPropertyCount, pProperties);
185
+ }
186
+ #endif
187
+ } VkEnumerateInstanceLayerPropertiesChain;
188
+
189
+ typedef struct VkEnumerateInstanceVersionChain {
190
+ VkChainHeader header;
191
+ VkResult(VKAPI_PTR* pfnNextLayer)(const struct VkEnumerateInstanceVersionChain*, uint32_t*);
192
+ const struct VkEnumerateInstanceVersionChain* pNextLink;
193
+
194
+ #if defined(__cplusplus)
195
+ inline VkResult CallDown(uint32_t* pApiVersion) const {
196
+ return pfnNextLayer(pNextLink, pApiVersion);
197
+ }
198
+ #endif
199
+ } VkEnumerateInstanceVersionChain;
200
+
201
+ #ifdef __cplusplus
202
+ }
203
+ #endif
@@ -2,12 +2,11 @@
2
2
  // File: vk_platform.h
3
3
  //
4
4
  /*
5
- ** Copyright 2014-2023 The Khronos Group Inc.
5
+ ** Copyright 2014-2025 The Khronos Group Inc.
6
6
  **
7
7
  ** SPDX-License-Identifier: Apache-2.0
8
8
  */
9
9
 
10
-
11
10
  #ifndef VK_PLATFORM_H_
12
11
  #define VK_PLATFORM_H_
13
12
 
@@ -0,0 +1,390 @@
1
+ #ifndef VULKAN_VIDEO_CODEC_AV1STD_H_
2
+ #define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
3
+
4
+ /*
5
+ ** Copyright 2015-2025 The Khronos Group Inc.
6
+ **
7
+ ** SPDX-License-Identifier: Apache-2.0
8
+ */
9
+
10
+ /*
11
+ ** This header is generated from the Khronos Vulkan XML API Registry.
12
+ **
13
+ */
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ // vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls.
20
+ #define vulkan_video_codec_av1std 1
21
+ #include "vulkan_video_codecs_common.h"
22
+ #define STD_VIDEO_AV1_NUM_REF_FRAMES 8
23
+ #define STD_VIDEO_AV1_REFS_PER_FRAME 7
24
+ #define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8
25
+ #define STD_VIDEO_AV1_MAX_TILE_COLS 64
26
+ #define STD_VIDEO_AV1_MAX_TILE_ROWS 64
27
+ #define STD_VIDEO_AV1_MAX_SEGMENTS 8
28
+ #define STD_VIDEO_AV1_SEG_LVL_MAX 8
29
+ #define STD_VIDEO_AV1_PRIMARY_REF_NONE 7
30
+ #define STD_VIDEO_AV1_SELECT_INTEGER_MV 2
31
+ #define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2
32
+ #define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2
33
+ #define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4
34
+ #define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2
35
+ #define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8
36
+ #define STD_VIDEO_AV1_MAX_NUM_PLANES 3
37
+ #define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6
38
+ #define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14
39
+ #define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10
40
+ #define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10
41
+ #define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24
42
+ #define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25
43
+
44
+ typedef enum StdVideoAV1Profile {
45
+ STD_VIDEO_AV1_PROFILE_MAIN = 0,
46
+ STD_VIDEO_AV1_PROFILE_HIGH = 1,
47
+ STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,
48
+ STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF,
49
+ STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF
50
+ } StdVideoAV1Profile;
51
+
52
+ typedef enum StdVideoAV1Level {
53
+ STD_VIDEO_AV1_LEVEL_2_0 = 0,
54
+ STD_VIDEO_AV1_LEVEL_2_1 = 1,
55
+ STD_VIDEO_AV1_LEVEL_2_2 = 2,
56
+ STD_VIDEO_AV1_LEVEL_2_3 = 3,
57
+ STD_VIDEO_AV1_LEVEL_3_0 = 4,
58
+ STD_VIDEO_AV1_LEVEL_3_1 = 5,
59
+ STD_VIDEO_AV1_LEVEL_3_2 = 6,
60
+ STD_VIDEO_AV1_LEVEL_3_3 = 7,
61
+ STD_VIDEO_AV1_LEVEL_4_0 = 8,
62
+ STD_VIDEO_AV1_LEVEL_4_1 = 9,
63
+ STD_VIDEO_AV1_LEVEL_4_2 = 10,
64
+ STD_VIDEO_AV1_LEVEL_4_3 = 11,
65
+ STD_VIDEO_AV1_LEVEL_5_0 = 12,
66
+ STD_VIDEO_AV1_LEVEL_5_1 = 13,
67
+ STD_VIDEO_AV1_LEVEL_5_2 = 14,
68
+ STD_VIDEO_AV1_LEVEL_5_3 = 15,
69
+ STD_VIDEO_AV1_LEVEL_6_0 = 16,
70
+ STD_VIDEO_AV1_LEVEL_6_1 = 17,
71
+ STD_VIDEO_AV1_LEVEL_6_2 = 18,
72
+ STD_VIDEO_AV1_LEVEL_6_3 = 19,
73
+ STD_VIDEO_AV1_LEVEL_7_0 = 20,
74
+ STD_VIDEO_AV1_LEVEL_7_1 = 21,
75
+ STD_VIDEO_AV1_LEVEL_7_2 = 22,
76
+ STD_VIDEO_AV1_LEVEL_7_3 = 23,
77
+ STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF,
78
+ STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF
79
+ } StdVideoAV1Level;
80
+
81
+ typedef enum StdVideoAV1FrameType {
82
+ STD_VIDEO_AV1_FRAME_TYPE_KEY = 0,
83
+ STD_VIDEO_AV1_FRAME_TYPE_INTER = 1,
84
+ STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2,
85
+ STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3,
86
+ STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF,
87
+ STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF
88
+ } StdVideoAV1FrameType;
89
+
90
+ typedef enum StdVideoAV1ReferenceName {
91
+ STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0,
92
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1,
93
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2,
94
+ STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3,
95
+ STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4,
96
+ STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5,
97
+ STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6,
98
+ STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7,
99
+ STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF,
100
+ STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF
101
+ } StdVideoAV1ReferenceName;
102
+
103
+ typedef enum StdVideoAV1InterpolationFilter {
104
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,
105
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
106
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
107
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3,
108
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,
109
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,
110
+ STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF
111
+ } StdVideoAV1InterpolationFilter;
112
+
113
+ typedef enum StdVideoAV1TxMode {
114
+ STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0,
115
+ STD_VIDEO_AV1_TX_MODE_LARGEST = 1,
116
+ STD_VIDEO_AV1_TX_MODE_SELECT = 2,
117
+ STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF,
118
+ STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF
119
+ } StdVideoAV1TxMode;
120
+
121
+ typedef enum StdVideoAV1FrameRestorationType {
122
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0,
123
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1,
124
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2,
125
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3,
126
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF,
127
+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF
128
+ } StdVideoAV1FrameRestorationType;
129
+
130
+ typedef enum StdVideoAV1ColorPrimaries {
131
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
132
+ STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2,
133
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
134
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
135
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
136
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7,
137
+ STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8,
138
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9,
139
+ STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10,
140
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11,
141
+ STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
142
+ STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
143
+ STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
144
+ // STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a deprecated alias
145
+ STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
146
+ STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
147
+ } StdVideoAV1ColorPrimaries;
148
+
149
+ typedef enum StdVideoAV1TransferCharacteristics {
150
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0,
151
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1,
152
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,
153
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3,
154
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4,
155
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5,
156
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6,
157
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7,
158
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8,
159
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9,
160
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10,
161
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11,
162
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12,
163
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13,
164
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14,
165
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15,
166
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16,
167
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17,
168
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18,
169
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF,
170
+ STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF
171
+ } StdVideoAV1TransferCharacteristics;
172
+
173
+ typedef enum StdVideoAV1MatrixCoefficients {
174
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0,
175
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1,
176
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2,
177
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3,
178
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4,
179
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5,
180
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6,
181
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7,
182
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8,
183
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9,
184
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10,
185
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11,
186
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12,
187
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13,
188
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14,
189
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF,
190
+ STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF
191
+ } StdVideoAV1MatrixCoefficients;
192
+
193
+ typedef enum StdVideoAV1ChromaSamplePosition {
194
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0,
195
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1,
196
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2,
197
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3,
198
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF,
199
+ STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF
200
+ } StdVideoAV1ChromaSamplePosition;
201
+ typedef struct StdVideoAV1ColorConfigFlags {
202
+ uint32_t mono_chrome : 1;
203
+ uint32_t color_range : 1;
204
+ uint32_t separate_uv_delta_q : 1;
205
+ uint32_t color_description_present_flag : 1;
206
+ uint32_t reserved : 28;
207
+ } StdVideoAV1ColorConfigFlags;
208
+
209
+ typedef struct StdVideoAV1ColorConfig {
210
+ StdVideoAV1ColorConfigFlags flags;
211
+ uint8_t BitDepth;
212
+ uint8_t subsampling_x;
213
+ uint8_t subsampling_y;
214
+ uint8_t reserved1;
215
+ StdVideoAV1ColorPrimaries color_primaries;
216
+ StdVideoAV1TransferCharacteristics transfer_characteristics;
217
+ StdVideoAV1MatrixCoefficients matrix_coefficients;
218
+ StdVideoAV1ChromaSamplePosition chroma_sample_position;
219
+ } StdVideoAV1ColorConfig;
220
+
221
+ typedef struct StdVideoAV1TimingInfoFlags {
222
+ uint32_t equal_picture_interval : 1;
223
+ uint32_t reserved : 31;
224
+ } StdVideoAV1TimingInfoFlags;
225
+
226
+ typedef struct StdVideoAV1TimingInfo {
227
+ StdVideoAV1TimingInfoFlags flags;
228
+ uint32_t num_units_in_display_tick;
229
+ uint32_t time_scale;
230
+ uint32_t num_ticks_per_picture_minus_1;
231
+ } StdVideoAV1TimingInfo;
232
+
233
+ typedef struct StdVideoAV1LoopFilterFlags {
234
+ uint32_t loop_filter_delta_enabled : 1;
235
+ uint32_t loop_filter_delta_update : 1;
236
+ uint32_t reserved : 30;
237
+ } StdVideoAV1LoopFilterFlags;
238
+
239
+ typedef struct StdVideoAV1LoopFilter {
240
+ StdVideoAV1LoopFilterFlags flags;
241
+ uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS];
242
+ uint8_t loop_filter_sharpness;
243
+ uint8_t update_ref_delta;
244
+ int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME];
245
+ uint8_t update_mode_delta;
246
+ int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS];
247
+ } StdVideoAV1LoopFilter;
248
+
249
+ typedef struct StdVideoAV1QuantizationFlags {
250
+ uint32_t using_qmatrix : 1;
251
+ uint32_t diff_uv_delta : 1;
252
+ uint32_t reserved : 30;
253
+ } StdVideoAV1QuantizationFlags;
254
+
255
+ typedef struct StdVideoAV1Quantization {
256
+ StdVideoAV1QuantizationFlags flags;
257
+ uint8_t base_q_idx;
258
+ int8_t DeltaQYDc;
259
+ int8_t DeltaQUDc;
260
+ int8_t DeltaQUAc;
261
+ int8_t DeltaQVDc;
262
+ int8_t DeltaQVAc;
263
+ uint8_t qm_y;
264
+ uint8_t qm_u;
265
+ uint8_t qm_v;
266
+ } StdVideoAV1Quantization;
267
+
268
+ typedef struct StdVideoAV1Segmentation {
269
+ uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS];
270
+ int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX];
271
+ } StdVideoAV1Segmentation;
272
+
273
+ typedef struct StdVideoAV1TileInfoFlags {
274
+ uint32_t uniform_tile_spacing_flag : 1;
275
+ uint32_t reserved : 31;
276
+ } StdVideoAV1TileInfoFlags;
277
+
278
+ typedef struct StdVideoAV1TileInfo {
279
+ StdVideoAV1TileInfoFlags flags;
280
+ uint8_t TileCols;
281
+ uint8_t TileRows;
282
+ uint16_t context_update_tile_id;
283
+ uint8_t tile_size_bytes_minus_1;
284
+ uint8_t reserved1[7];
285
+ const uint16_t* pMiColStarts;
286
+ const uint16_t* pMiRowStarts;
287
+ const uint16_t* pWidthInSbsMinus1;
288
+ const uint16_t* pHeightInSbsMinus1;
289
+ } StdVideoAV1TileInfo;
290
+
291
+ typedef struct StdVideoAV1CDEF {
292
+ uint8_t cdef_damping_minus_3;
293
+ uint8_t cdef_bits;
294
+ uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
295
+ uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
296
+ uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
297
+ uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
298
+ } StdVideoAV1CDEF;
299
+
300
+ typedef struct StdVideoAV1LoopRestoration {
301
+ StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES];
302
+ uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES];
303
+ } StdVideoAV1LoopRestoration;
304
+
305
+ typedef struct StdVideoAV1GlobalMotion {
306
+ uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES];
307
+ int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS];
308
+ } StdVideoAV1GlobalMotion;
309
+
310
+ typedef struct StdVideoAV1FilmGrainFlags {
311
+ uint32_t chroma_scaling_from_luma : 1;
312
+ uint32_t overlap_flag : 1;
313
+ uint32_t clip_to_restricted_range : 1;
314
+ uint32_t update_grain : 1;
315
+ uint32_t reserved : 28;
316
+ } StdVideoAV1FilmGrainFlags;
317
+
318
+ typedef struct StdVideoAV1FilmGrain {
319
+ StdVideoAV1FilmGrainFlags flags;
320
+ uint8_t grain_scaling_minus_8;
321
+ uint8_t ar_coeff_lag;
322
+ uint8_t ar_coeff_shift_minus_6;
323
+ uint8_t grain_scale_shift;
324
+ uint16_t grain_seed;
325
+ uint8_t film_grain_params_ref_idx;
326
+ uint8_t num_y_points;
327
+ uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
328
+ uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
329
+ uint8_t num_cb_points;
330
+ uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
331
+ uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
332
+ uint8_t num_cr_points;
333
+ uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
334
+ uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
335
+ int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA];
336
+ int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
337
+ int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
338
+ uint8_t cb_mult;
339
+ uint8_t cb_luma_mult;
340
+ uint16_t cb_offset;
341
+ uint8_t cr_mult;
342
+ uint8_t cr_luma_mult;
343
+ uint16_t cr_offset;
344
+ } StdVideoAV1FilmGrain;
345
+
346
+ typedef struct StdVideoAV1SequenceHeaderFlags {
347
+ uint32_t still_picture : 1;
348
+ uint32_t reduced_still_picture_header : 1;
349
+ uint32_t use_128x128_superblock : 1;
350
+ uint32_t enable_filter_intra : 1;
351
+ uint32_t enable_intra_edge_filter : 1;
352
+ uint32_t enable_interintra_compound : 1;
353
+ uint32_t enable_masked_compound : 1;
354
+ uint32_t enable_warped_motion : 1;
355
+ uint32_t enable_dual_filter : 1;
356
+ uint32_t enable_order_hint : 1;
357
+ uint32_t enable_jnt_comp : 1;
358
+ uint32_t enable_ref_frame_mvs : 1;
359
+ uint32_t frame_id_numbers_present_flag : 1;
360
+ uint32_t enable_superres : 1;
361
+ uint32_t enable_cdef : 1;
362
+ uint32_t enable_restoration : 1;
363
+ uint32_t film_grain_params_present : 1;
364
+ uint32_t timing_info_present_flag : 1;
365
+ uint32_t initial_display_delay_present_flag : 1;
366
+ uint32_t reserved : 13;
367
+ } StdVideoAV1SequenceHeaderFlags;
368
+
369
+ typedef struct StdVideoAV1SequenceHeader {
370
+ StdVideoAV1SequenceHeaderFlags flags;
371
+ StdVideoAV1Profile seq_profile;
372
+ uint8_t frame_width_bits_minus_1;
373
+ uint8_t frame_height_bits_minus_1;
374
+ uint16_t max_frame_width_minus_1;
375
+ uint16_t max_frame_height_minus_1;
376
+ uint8_t delta_frame_id_length_minus_2;
377
+ uint8_t additional_frame_id_length_minus_1;
378
+ uint8_t order_hint_bits_minus_1;
379
+ uint8_t seq_force_integer_mv;
380
+ uint8_t seq_force_screen_content_tools;
381
+ uint8_t reserved1[5];
382
+ const StdVideoAV1ColorConfig* pColorConfig;
383
+ const StdVideoAV1TimingInfo* pTimingInfo;
384
+ } StdVideoAV1SequenceHeader;
385
+
386
+ #ifdef __cplusplus
387
+ }
388
+ #endif
389
+
390
+ #endif