@pproenca/ffmpeg-darwin-arm64 0.1.7 → 0.1.9

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 (218) hide show
  1. package/LICENSE +28 -0
  2. package/lib/libSvtAv1Enc.a +0 -0
  3. package/lib/libaom.a +0 -0
  4. package/lib/libavcodec.a +0 -0
  5. package/lib/libavdevice.a +0 -0
  6. package/lib/libavfilter.a +0 -0
  7. package/lib/libavformat.a +0 -0
  8. package/lib/libavutil.a +0 -0
  9. package/lib/libdav1d.a +0 -0
  10. package/lib/libogg.a +0 -0
  11. package/lib/libopus.a +0 -0
  12. package/lib/libswresample.a +0 -0
  13. package/lib/libswscale.a +0 -0
  14. package/lib/libvorbis.a +0 -0
  15. package/lib/libvorbisenc.a +0 -0
  16. package/lib/libvorbisfile.a +0 -0
  17. package/lib/libvpx.a +0 -0
  18. package/lib/pkgconfig/SvtAv1Enc.pc +12 -0
  19. package/lib/pkgconfig/aom.pc +14 -0
  20. package/lib/pkgconfig/dav1d.pc +9 -0
  21. package/lib/pkgconfig/libavcodec.pc +14 -0
  22. package/lib/pkgconfig/libavdevice.pc +14 -0
  23. package/lib/pkgconfig/libavfilter.pc +14 -0
  24. package/lib/pkgconfig/libavformat.pc +14 -0
  25. package/lib/pkgconfig/libavutil.pc +14 -0
  26. package/lib/pkgconfig/libswresample.pc +14 -0
  27. package/lib/pkgconfig/libswscale.pc +14 -0
  28. package/lib/pkgconfig/ogg.pc +14 -0
  29. package/lib/pkgconfig/opus.pc +16 -0
  30. package/lib/pkgconfig/vorbis.pc +15 -0
  31. package/lib/pkgconfig/vorbisenc.pc +14 -0
  32. package/lib/pkgconfig/vorbisfile.pc +14 -0
  33. package/lib/pkgconfig/vpx.pc +14 -0
  34. package/package.json +2 -3
  35. package/include/aom/aom.h +0 -127
  36. package/include/aom/aom_codec.h +0 -594
  37. package/include/aom/aom_decoder.h +0 -257
  38. package/include/aom/aom_encoder.h +0 -1154
  39. package/include/aom/aom_external_partition.h +0 -452
  40. package/include/aom/aom_frame_buffer.h +0 -84
  41. package/include/aom/aom_image.h +0 -462
  42. package/include/aom/aom_integer.h +0 -60
  43. package/include/aom/aomcx.h +0 -2288
  44. package/include/aom/aomdx.h +0 -607
  45. package/include/dav1d/common.h +0 -94
  46. package/include/dav1d/data.h +0 -117
  47. package/include/dav1d/dav1d.h +0 -329
  48. package/include/dav1d/headers.h +0 -444
  49. package/include/dav1d/picture.h +0 -157
  50. package/include/dav1d/version.h +0 -50
  51. package/include/libavcodec/ac3_parser.h +0 -36
  52. package/include/libavcodec/adts_parser.h +0 -37
  53. package/include/libavcodec/avcodec.h +0 -3128
  54. package/include/libavcodec/avdct.h +0 -88
  55. package/include/libavcodec/avfft.h +0 -149
  56. package/include/libavcodec/bsf.h +0 -332
  57. package/include/libavcodec/codec.h +0 -382
  58. package/include/libavcodec/codec_desc.h +0 -134
  59. package/include/libavcodec/codec_id.h +0 -669
  60. package/include/libavcodec/codec_par.h +0 -248
  61. package/include/libavcodec/d3d11va.h +0 -109
  62. package/include/libavcodec/defs.h +0 -337
  63. package/include/libavcodec/dirac.h +0 -135
  64. package/include/libavcodec/dv_profile.h +0 -82
  65. package/include/libavcodec/dxva2.h +0 -90
  66. package/include/libavcodec/jni.h +0 -67
  67. package/include/libavcodec/mediacodec.h +0 -103
  68. package/include/libavcodec/packet.h +0 -887
  69. package/include/libavcodec/qsv.h +0 -109
  70. package/include/libavcodec/vdpau.h +0 -171
  71. package/include/libavcodec/version.h +0 -45
  72. package/include/libavcodec/version_major.h +0 -52
  73. package/include/libavcodec/videotoolbox.h +0 -85
  74. package/include/libavcodec/vorbis_parser.h +0 -74
  75. package/include/libavdevice/avdevice.h +0 -397
  76. package/include/libavdevice/version.h +0 -45
  77. package/include/libavdevice/version_major.h +0 -43
  78. package/include/libavfilter/avfilter.h +0 -1379
  79. package/include/libavfilter/buffersink.h +0 -173
  80. package/include/libavfilter/buffersrc.h +0 -215
  81. package/include/libavfilter/version.h +0 -48
  82. package/include/libavfilter/version_major.h +0 -40
  83. package/include/libavformat/avformat.h +0 -3107
  84. package/include/libavformat/avio.h +0 -831
  85. package/include/libavformat/version.h +0 -47
  86. package/include/libavformat/version_major.h +0 -54
  87. package/include/libavutil/adler32.h +0 -63
  88. package/include/libavutil/aes.h +0 -69
  89. package/include/libavutil/aes_ctr.h +0 -99
  90. package/include/libavutil/ambient_viewing_environment.h +0 -72
  91. package/include/libavutil/attributes.h +0 -173
  92. package/include/libavutil/audio_fifo.h +0 -187
  93. package/include/libavutil/avassert.h +0 -78
  94. package/include/libavutil/avconfig.h +0 -6
  95. package/include/libavutil/avstring.h +0 -428
  96. package/include/libavutil/avutil.h +0 -362
  97. package/include/libavutil/base64.h +0 -72
  98. package/include/libavutil/blowfish.h +0 -82
  99. package/include/libavutil/bprint.h +0 -254
  100. package/include/libavutil/bswap.h +0 -105
  101. package/include/libavutil/buffer.h +0 -322
  102. package/include/libavutil/camellia.h +0 -70
  103. package/include/libavutil/cast5.h +0 -80
  104. package/include/libavutil/channel_layout.h +0 -751
  105. package/include/libavutil/common.h +0 -589
  106. package/include/libavutil/cpu.h +0 -145
  107. package/include/libavutil/crc.h +0 -102
  108. package/include/libavutil/csp.h +0 -150
  109. package/include/libavutil/des.h +0 -81
  110. package/include/libavutil/detection_bbox.h +0 -108
  111. package/include/libavutil/dict.h +0 -241
  112. package/include/libavutil/display.h +0 -109
  113. package/include/libavutil/dovi_meta.h +0 -396
  114. package/include/libavutil/downmix_info.h +0 -115
  115. package/include/libavutil/encryption_info.h +0 -205
  116. package/include/libavutil/error.h +0 -129
  117. package/include/libavutil/eval.h +0 -140
  118. package/include/libavutil/executor.h +0 -67
  119. package/include/libavutil/ffversion.h +0 -5
  120. package/include/libavutil/fifo.h +0 -242
  121. package/include/libavutil/file.h +0 -62
  122. package/include/libavutil/film_grain_params.h +0 -322
  123. package/include/libavutil/frame.h +0 -1175
  124. package/include/libavutil/hash.h +0 -264
  125. package/include/libavutil/hdr_dynamic_metadata.h +0 -376
  126. package/include/libavutil/hdr_dynamic_vivid_metadata.h +0 -346
  127. package/include/libavutil/hmac.h +0 -99
  128. package/include/libavutil/hwcontext.h +0 -598
  129. package/include/libavutil/hwcontext_cuda.h +0 -74
  130. package/include/libavutil/hwcontext_d3d11va.h +0 -178
  131. package/include/libavutil/hwcontext_d3d12va.h +0 -142
  132. package/include/libavutil/hwcontext_drm.h +0 -169
  133. package/include/libavutil/hwcontext_dxva2.h +0 -75
  134. package/include/libavutil/hwcontext_mediacodec.h +0 -61
  135. package/include/libavutil/hwcontext_opencl.h +0 -100
  136. package/include/libavutil/hwcontext_qsv.h +0 -87
  137. package/include/libavutil/hwcontext_vaapi.h +0 -117
  138. package/include/libavutil/hwcontext_vdpau.h +0 -44
  139. package/include/libavutil/hwcontext_videotoolbox.h +0 -106
  140. package/include/libavutil/hwcontext_vulkan.h +0 -382
  141. package/include/libavutil/iamf.h +0 -690
  142. package/include/libavutil/imgutils.h +0 -377
  143. package/include/libavutil/intfloat.h +0 -77
  144. package/include/libavutil/intreadwrite.h +0 -677
  145. package/include/libavutil/lfg.h +0 -81
  146. package/include/libavutil/log.h +0 -387
  147. package/include/libavutil/lzo.h +0 -66
  148. package/include/libavutil/macros.h +0 -80
  149. package/include/libavutil/mastering_display_metadata.h +0 -137
  150. package/include/libavutil/mathematics.h +0 -300
  151. package/include/libavutil/md5.h +0 -89
  152. package/include/libavutil/mem.h +0 -607
  153. package/include/libavutil/motion_vector.h +0 -57
  154. package/include/libavutil/murmur3.h +0 -115
  155. package/include/libavutil/opt.h +0 -1187
  156. package/include/libavutil/parseutils.h +0 -197
  157. package/include/libavutil/pixdesc.h +0 -440
  158. package/include/libavutil/pixelutils.h +0 -51
  159. package/include/libavutil/pixfmt.h +0 -716
  160. package/include/libavutil/random_seed.h +0 -57
  161. package/include/libavutil/rational.h +0 -225
  162. package/include/libavutil/rc4.h +0 -69
  163. package/include/libavutil/replaygain.h +0 -50
  164. package/include/libavutil/ripemd.h +0 -83
  165. package/include/libavutil/samplefmt.h +0 -269
  166. package/include/libavutil/sha.h +0 -90
  167. package/include/libavutil/sha512.h +0 -92
  168. package/include/libavutil/spherical.h +0 -243
  169. package/include/libavutil/stereo3d.h +0 -325
  170. package/include/libavutil/tea.h +0 -71
  171. package/include/libavutil/threadmessage.h +0 -115
  172. package/include/libavutil/time.h +0 -56
  173. package/include/libavutil/timecode.h +0 -199
  174. package/include/libavutil/timestamp.h +0 -85
  175. package/include/libavutil/tree.h +0 -137
  176. package/include/libavutil/twofish.h +0 -70
  177. package/include/libavutil/tx.h +0 -210
  178. package/include/libavutil/uuid.h +0 -146
  179. package/include/libavutil/version.h +0 -124
  180. package/include/libavutil/video_enc_params.h +0 -171
  181. package/include/libavutil/video_hint.h +0 -107
  182. package/include/libavutil/xtea.h +0 -94
  183. package/include/libswresample/swresample.h +0 -587
  184. package/include/libswresample/version.h +0 -46
  185. package/include/libswresample/version_major.h +0 -31
  186. package/include/libswscale/swscale.h +0 -460
  187. package/include/libswscale/version.h +0 -44
  188. package/include/libswscale/version_major.h +0 -35
  189. package/include/ogg/config_types.h +0 -26
  190. package/include/ogg/ogg.h +0 -209
  191. package/include/ogg/os_types.h +0 -158
  192. package/include/opus/opus.h +0 -1099
  193. package/include/opus/opus_defines.h +0 -830
  194. package/include/opus/opus_multistream.h +0 -660
  195. package/include/opus/opus_projection.h +0 -568
  196. package/include/opus/opus_types.h +0 -166
  197. package/include/svt-av1/EbDebugMacros.h +0 -88
  198. package/include/svt-av1/EbSvtAv1.h +0 -462
  199. package/include/svt-av1/EbSvtAv1Enc.h +0 -1112
  200. package/include/svt-av1/EbSvtAv1ErrorCodes.h +0 -67
  201. package/include/svt-av1/EbSvtAv1ExtFrameBuf.h +0 -64
  202. package/include/svt-av1/EbSvtAv1Formats.h +0 -126
  203. package/include/svt-av1/EbSvtAv1Metadata.h +0 -156
  204. package/include/vorbis/codec.h +0 -242
  205. package/include/vorbis/vorbisenc.h +0 -435
  206. package/include/vorbis/vorbisfile.h +0 -205
  207. package/include/vpx/vp8.h +0 -136
  208. package/include/vpx/vp8cx.h +0 -1118
  209. package/include/vpx/vp8dx.h +0 -228
  210. package/include/vpx/vpx_codec.h +0 -475
  211. package/include/vpx/vpx_decoder.h +0 -367
  212. package/include/vpx/vpx_encoder.h +0 -1150
  213. package/include/vpx/vpx_ext_ratectrl.h +0 -590
  214. package/include/vpx/vpx_frame_buffer.h +0 -83
  215. package/include/vpx/vpx_image.h +0 -221
  216. package/include/vpx/vpx_integer.h +0 -40
  217. package/include/vpx/vpx_tpl.h +0 -68
  218. /package/{include → lib/pkgconfig}/index.js +0 -0
@@ -1,382 +0,0 @@
1
- /*
2
- * This file is part of FFmpeg.
3
- *
4
- * FFmpeg is free software; you can redistribute it and/or
5
- * modify it under the terms of the GNU Lesser General Public
6
- * License as published by the Free Software Foundation; either
7
- * version 2.1 of the License, or (at your option) any later version.
8
- *
9
- * FFmpeg is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- * Lesser General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Lesser General Public
15
- * License along with FFmpeg; if not, write to the Free Software
16
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
- */
18
-
19
- #ifndef AVUTIL_HWCONTEXT_VULKAN_H
20
- #define AVUTIL_HWCONTEXT_VULKAN_H
21
-
22
- #if defined(_WIN32) && !defined(VK_USE_PLATFORM_WIN32_KHR)
23
- #define VK_USE_PLATFORM_WIN32_KHR
24
- #endif
25
- #include <vulkan/vulkan.h>
26
-
27
- #include "pixfmt.h"
28
- #include "frame.h"
29
- #include "hwcontext.h"
30
-
31
- typedef struct AVVkFrame AVVkFrame;
32
-
33
- typedef struct AVVulkanDeviceQueueFamily {
34
- /* Queue family index */
35
- int idx;
36
- /* Number of queues in the queue family in use */
37
- int num;
38
- /* Queue family capabilities. Must be non-zero.
39
- * Flags may be removed to indicate the queue family may not be used
40
- * for a given purpose. */
41
- VkQueueFlagBits flags;
42
- /* Vulkan implementations are allowed to list multiple video queues
43
- * which differ in what they can encode or decode. */
44
- VkVideoCodecOperationFlagBitsKHR video_caps;
45
- } AVVulkanDeviceQueueFamily;
46
-
47
- /**
48
- * @file
49
- * API-specific header for AV_HWDEVICE_TYPE_VULKAN.
50
- *
51
- * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs
52
- * with the data pointer set to an AVVkFrame.
53
- */
54
-
55
- /**
56
- * Main Vulkan context, allocated as AVHWDeviceContext.hwctx.
57
- * All of these can be set before init to change what the context uses
58
- */
59
- typedef struct AVVulkanDeviceContext {
60
- /**
61
- * Custom memory allocator, else NULL
62
- */
63
- const VkAllocationCallbacks *alloc;
64
-
65
- /**
66
- * Pointer to a vkGetInstanceProcAddr loading function.
67
- * If unset, will dynamically load and use libvulkan.
68
- */
69
- PFN_vkGetInstanceProcAddr get_proc_addr;
70
-
71
- /**
72
- * Vulkan instance. Must be at least version 1.3.
73
- */
74
- VkInstance inst;
75
-
76
- /**
77
- * Physical device
78
- */
79
- VkPhysicalDevice phys_dev;
80
-
81
- /**
82
- * Active device
83
- */
84
- VkDevice act_dev;
85
-
86
- /**
87
- * This structure should be set to the set of features that present and enabled
88
- * during device creation. When a device is created by FFmpeg, it will default to
89
- * enabling all that are present of the shaderImageGatherExtended,
90
- * fragmentStoresAndAtomics, shaderInt64 and vertexPipelineStoresAndAtomics features.
91
- */
92
- VkPhysicalDeviceFeatures2 device_features;
93
-
94
- /**
95
- * Enabled instance extensions.
96
- * If supplying your own device context, set this to an array of strings, with
97
- * each entry containing the specified Vulkan extension string to enable.
98
- * Duplicates are possible and accepted.
99
- * If no extensions are enabled, set these fields to NULL, and 0 respectively.
100
- */
101
- const char * const *enabled_inst_extensions;
102
- int nb_enabled_inst_extensions;
103
-
104
- /**
105
- * Enabled device extensions. By default, VK_KHR_external_memory_fd,
106
- * VK_EXT_external_memory_dma_buf, VK_EXT_image_drm_format_modifier,
107
- * VK_KHR_external_semaphore_fd and VK_EXT_external_memory_host are enabled if found.
108
- * If supplying your own device context, these fields takes the same format as
109
- * the above fields, with the same conditions that duplicates are possible
110
- * and accepted, and that NULL and 0 respectively means no extensions are enabled.
111
- */
112
- const char * const *enabled_dev_extensions;
113
- int nb_enabled_dev_extensions;
114
-
115
- #if FF_API_VULKAN_FIXED_QUEUES
116
- /**
117
- * Queue family index for graphics operations, and the number of queues
118
- * enabled for it. If unavaiable, will be set to -1. Not required.
119
- * av_hwdevice_create() will attempt to find a dedicated queue for each
120
- * queue family, or pick the one with the least unrelated flags set.
121
- * Queue indices here may overlap if a queue has to share capabilities.
122
- */
123
- attribute_deprecated
124
- int queue_family_index;
125
- attribute_deprecated
126
- int nb_graphics_queues;
127
-
128
- /**
129
- * Queue family index for transfer operations and the number of queues
130
- * enabled. Required.
131
- */
132
- attribute_deprecated
133
- int queue_family_tx_index;
134
- attribute_deprecated
135
- int nb_tx_queues;
136
-
137
- /**
138
- * Queue family index for compute operations and the number of queues
139
- * enabled. Required.
140
- */
141
- attribute_deprecated
142
- int queue_family_comp_index;
143
- attribute_deprecated
144
- int nb_comp_queues;
145
-
146
- /**
147
- * Queue family index for video encode ops, and the amount of queues enabled.
148
- * If the device doesn't support such, queue_family_encode_index will be -1.
149
- * Not required.
150
- */
151
- attribute_deprecated
152
- int queue_family_encode_index;
153
- attribute_deprecated
154
- int nb_encode_queues;
155
-
156
- /**
157
- * Queue family index for video decode ops, and the amount of queues enabled.
158
- * If the device doesn't support such, queue_family_decode_index will be -1.
159
- * Not required.
160
- */
161
- attribute_deprecated
162
- int queue_family_decode_index;
163
- attribute_deprecated
164
- int nb_decode_queues;
165
- #endif
166
-
167
- /**
168
- * Locks a queue, preventing other threads from submitting any command
169
- * buffers to this queue.
170
- * If set to NULL, will be set to lavu-internal functions that utilize a
171
- * mutex.
172
- */
173
- void (*lock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index);
174
-
175
- /**
176
- * Similar to lock_queue(), unlocks a queue. Must only be called after locking.
177
- */
178
- void (*unlock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index);
179
-
180
- /**
181
- * Queue families used. Must be preferentially ordered. List may contain
182
- * duplicates.
183
- *
184
- * For compatibility reasons, all the enabled queue families listed above
185
- * (queue_family_(tx/comp/encode/decode)_index) must also be included in
186
- * this list until they're removed after deprecation.
187
- */
188
- AVVulkanDeviceQueueFamily qf[64];
189
- int nb_qf;
190
- } AVVulkanDeviceContext;
191
-
192
- /**
193
- * Defines the behaviour of frame allocation.
194
- */
195
- typedef enum AVVkFrameFlags {
196
- /* Unless this flag is set, autodetected flags will be OR'd based on the
197
- * device and tiling during av_hwframe_ctx_init(). */
198
- AV_VK_FRAME_FLAG_NONE = (1ULL << 0),
199
-
200
- #if FF_API_VULKAN_CONTIGUOUS_MEMORY
201
- /* DEPRECATED: does nothing. Replaced by multiplane images. */
202
- AV_VK_FRAME_FLAG_CONTIGUOUS_MEMORY = (1ULL << 1),
203
- #endif
204
-
205
- /* Disables multiplane images.
206
- * This is required to export/import images from CUDA. */
207
- AV_VK_FRAME_FLAG_DISABLE_MULTIPLANE = (1ULL << 2),
208
- } AVVkFrameFlags;
209
-
210
- /**
211
- * Allocated as AVHWFramesContext.hwctx, used to set pool-specific options
212
- */
213
- typedef struct AVVulkanFramesContext {
214
- /**
215
- * Controls the tiling of allocated frames.
216
- * If left as VK_IMAGE_TILING_OPTIMAL (0), will use optimal tiling.
217
- * Can be set to VK_IMAGE_TILING_LINEAR to force linear images,
218
- * or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT to force DMABUF-backed
219
- * images.
220
- * @note Imported frames from other APIs ignore this.
221
- */
222
- VkImageTiling tiling;
223
-
224
- /**
225
- * Defines extra usage of output frames. If non-zero, all flags MUST be
226
- * supported by the VkFormat. Otherwise, will use supported flags amongst:
227
- * - VK_IMAGE_USAGE_SAMPLED_BIT
228
- * - VK_IMAGE_USAGE_STORAGE_BIT
229
- * - VK_IMAGE_USAGE_TRANSFER_SRC_BIT
230
- * - VK_IMAGE_USAGE_TRANSFER_DST_BIT
231
- */
232
- VkImageUsageFlagBits usage;
233
-
234
- /**
235
- * Extension data for image creation.
236
- * If DRM tiling is used, a VkImageDrmFormatModifierListCreateInfoEXT structure
237
- * can be added to specify the exact modifier to use.
238
- *
239
- * Additional structures may be added at av_hwframe_ctx_init() time,
240
- * which will be freed automatically on uninit(), so users must only free
241
- * any structures they've allocated themselves.
242
- */
243
- void *create_pnext;
244
-
245
- /**
246
- * Extension data for memory allocation. Must have as many entries as
247
- * the number of planes of the sw_format.
248
- * This will be chained to VkExportMemoryAllocateInfo, which is used
249
- * to make all pool images exportable to other APIs if the necessary
250
- * extensions are present in enabled_dev_extensions.
251
- */
252
- void *alloc_pnext[AV_NUM_DATA_POINTERS];
253
-
254
- /**
255
- * A combination of AVVkFrameFlags. Unless AV_VK_FRAME_FLAG_NONE is set,
256
- * autodetected flags will be OR'd based on the device and tiling during
257
- * av_hwframe_ctx_init().
258
- */
259
- AVVkFrameFlags flags;
260
-
261
- /**
262
- * Flags to set during image creation. If unset, defaults to
263
- * VK_IMAGE_CREATE_ALIAS_BIT.
264
- */
265
- VkImageCreateFlags img_flags;
266
-
267
- /**
268
- * Vulkan format for each image. MUST be compatible with the pixel format.
269
- * If unset, will be automatically set.
270
- * There are at most two compatible formats for a frame - a multiplane
271
- * format, and a single-plane multi-image format.
272
- */
273
- VkFormat format[AV_NUM_DATA_POINTERS];
274
-
275
- /**
276
- * Number of layers each image will have.
277
- */
278
- int nb_layers;
279
-
280
- /**
281
- * Locks a frame, preventing other threads from changing frame properties.
282
- * Users SHOULD only ever lock just before command submission in order
283
- * to get accurate frame properties, and unlock immediately after command
284
- * submission without waiting for it to finish.
285
- *
286
- * If unset, will be set to lavu-internal functions that utilize a mutex.
287
- */
288
- void (*lock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf);
289
-
290
- /**
291
- * Similar to lock_frame(), unlocks a frame. Must only be called after locking.
292
- */
293
- void (*unlock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf);
294
- } AVVulkanFramesContext;
295
-
296
- /*
297
- * Frame structure.
298
- *
299
- * @note the size of this structure is not part of the ABI, to allocate
300
- * you must use @av_vk_frame_alloc().
301
- */
302
- struct AVVkFrame {
303
- /**
304
- * Vulkan images to which the memory is bound to.
305
- * May be one for multiplane formats, or multiple.
306
- */
307
- VkImage img[AV_NUM_DATA_POINTERS];
308
-
309
- /**
310
- * Tiling for the frame.
311
- */
312
- VkImageTiling tiling;
313
-
314
- /**
315
- * Memory backing the images. Either one, or as many as there are planes
316
- * in the sw_format.
317
- * In case of having multiple VkImages, but one memory, the offset field
318
- * will indicate the bound offset for each image.
319
- */
320
- VkDeviceMemory mem[AV_NUM_DATA_POINTERS];
321
- size_t size[AV_NUM_DATA_POINTERS];
322
-
323
- /**
324
- * OR'd flags for all memory allocated
325
- */
326
- VkMemoryPropertyFlagBits flags;
327
-
328
- /**
329
- * Updated after every barrier. One per VkImage.
330
- */
331
- VkAccessFlagBits access[AV_NUM_DATA_POINTERS];
332
- VkImageLayout layout[AV_NUM_DATA_POINTERS];
333
-
334
- /**
335
- * Synchronization timeline semaphores, one for each VkImage.
336
- * Must not be freed manually. Must be waited on at every submission using
337
- * the value in sem_value, and must be signalled at every submission,
338
- * using an incremented value.
339
- */
340
- VkSemaphore sem[AV_NUM_DATA_POINTERS];
341
-
342
- /**
343
- * Up to date semaphore value at which each image becomes accessible.
344
- * One per VkImage.
345
- * Clients must wait on this value when submitting a command queue,
346
- * and increment it when signalling.
347
- */
348
- uint64_t sem_value[AV_NUM_DATA_POINTERS];
349
-
350
- /**
351
- * Internal data.
352
- */
353
- struct AVVkFrameInternal *internal;
354
-
355
- /**
356
- * Describes the binding offset of each image to the VkDeviceMemory.
357
- * One per VkImage.
358
- */
359
- ptrdiff_t offset[AV_NUM_DATA_POINTERS];
360
-
361
- /**
362
- * Queue family of the images. Must be VK_QUEUE_FAMILY_IGNORED if
363
- * the image was allocated with the CONCURRENT concurrency option.
364
- * One per VkImage.
365
- */
366
- uint32_t queue_family[AV_NUM_DATA_POINTERS];
367
- };
368
-
369
- /**
370
- * Allocates a single AVVkFrame and initializes everything as 0.
371
- * @note Must be freed via av_free()
372
- */
373
- AVVkFrame *av_vk_frame_alloc(void);
374
-
375
- /**
376
- * Returns the optimal per-plane Vulkan format for a given sw_format,
377
- * one for each plane.
378
- * Returns NULL on unsupported formats.
379
- */
380
- const VkFormat *av_vkfmt_from_pixfmt(enum AVPixelFormat p);
381
-
382
- #endif /* AVUTIL_HWCONTEXT_VULKAN_H */