@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,178 +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_D3D11VA_H
20
- #define AVUTIL_HWCONTEXT_D3D11VA_H
21
-
22
- /**
23
- * @file
24
- * An API-specific header for AV_HWDEVICE_TYPE_D3D11VA.
25
- *
26
- * The default pool implementation will be fixed-size if initial_pool_size is
27
- * set (and allocate elements from an array texture). Otherwise it will allocate
28
- * individual textures. Be aware that decoding requires a single array texture.
29
- *
30
- * Using sw_format==AV_PIX_FMT_YUV420P has special semantics, and maps to
31
- * DXGI_FORMAT_420_OPAQUE. av_hwframe_transfer_data() is not supported for
32
- * this format. Refer to MSDN for details.
33
- *
34
- * av_hwdevice_ctx_create() for this device type supports a key named "debug"
35
- * for the AVDictionary entry. If this is set to any value, the device creation
36
- * code will try to load various supported D3D debugging layers.
37
- */
38
-
39
- #include <d3d11.h>
40
- #include <stdint.h>
41
-
42
- /**
43
- * This struct is allocated as AVHWDeviceContext.hwctx
44
- */
45
- typedef struct AVD3D11VADeviceContext {
46
- /**
47
- * Device used for texture creation and access. This can also be used to
48
- * set the libavcodec decoding device.
49
- *
50
- * Must be set by the user. This is the only mandatory field - the other
51
- * device context fields are set from this and are available for convenience.
52
- *
53
- * Deallocating the AVHWDeviceContext will always release this interface,
54
- * and it does not matter whether it was user-allocated.
55
- */
56
- ID3D11Device *device;
57
-
58
- /**
59
- * If unset, this will be set from the device field on init.
60
- *
61
- * Deallocating the AVHWDeviceContext will always release this interface,
62
- * and it does not matter whether it was user-allocated.
63
- */
64
- ID3D11DeviceContext *device_context;
65
-
66
- /**
67
- * If unset, this will be set from the device field on init.
68
- *
69
- * Deallocating the AVHWDeviceContext will always release this interface,
70
- * and it does not matter whether it was user-allocated.
71
- */
72
- ID3D11VideoDevice *video_device;
73
-
74
- /**
75
- * If unset, this will be set from the device_context field on init.
76
- *
77
- * Deallocating the AVHWDeviceContext will always release this interface,
78
- * and it does not matter whether it was user-allocated.
79
- */
80
- ID3D11VideoContext *video_context;
81
-
82
- /**
83
- * Callbacks for locking. They protect accesses to device_context and
84
- * video_context calls. They also protect access to the internal staging
85
- * texture (for av_hwframe_transfer_data() calls). They do NOT protect
86
- * access to hwcontext or decoder state in general.
87
- *
88
- * If unset on init, the hwcontext implementation will set them to use an
89
- * internal mutex.
90
- *
91
- * The underlying lock must be recursive. lock_ctx is for free use by the
92
- * locking implementation.
93
- */
94
- void (*lock)(void *lock_ctx);
95
- void (*unlock)(void *lock_ctx);
96
- void *lock_ctx;
97
- } AVD3D11VADeviceContext;
98
-
99
- /**
100
- * D3D11 frame descriptor for pool allocation.
101
- *
102
- * In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs
103
- * with the data pointer pointing at an object of this type describing the
104
- * planes of the frame.
105
- *
106
- * This has no use outside of custom allocation, and AVFrame AVBufferRef do not
107
- * necessarily point to an instance of this struct.
108
- */
109
- typedef struct AVD3D11FrameDescriptor {
110
- /**
111
- * The texture in which the frame is located. The reference count is
112
- * managed by the AVBufferRef, and destroying the reference will release
113
- * the interface.
114
- *
115
- * Normally stored in AVFrame.data[0].
116
- */
117
- ID3D11Texture2D *texture;
118
-
119
- /**
120
- * The index into the array texture element representing the frame, or 0
121
- * if the texture is not an array texture.
122
- *
123
- * Normally stored in AVFrame.data[1] (cast from intptr_t).
124
- */
125
- intptr_t index;
126
- } AVD3D11FrameDescriptor;
127
-
128
- /**
129
- * This struct is allocated as AVHWFramesContext.hwctx
130
- */
131
- typedef struct AVD3D11VAFramesContext {
132
- /**
133
- * The canonical texture used for pool allocation. If this is set to NULL
134
- * on init, the hwframes implementation will allocate and set an array
135
- * texture if initial_pool_size > 0.
136
- *
137
- * The only situation when the API user should set this is:
138
- * - the user wants to do manual pool allocation (setting
139
- * AVHWFramesContext.pool), instead of letting AVHWFramesContext
140
- * allocate the pool
141
- * - of an array texture
142
- * - and wants it to use it for decoding
143
- * - this has to be done before calling av_hwframe_ctx_init()
144
- *
145
- * Deallocating the AVHWFramesContext will always release this interface,
146
- * and it does not matter whether it was user-allocated.
147
- *
148
- * This is in particular used by the libavcodec D3D11VA hwaccel, which
149
- * requires a single array texture. It will create ID3D11VideoDecoderOutputView
150
- * objects for each array texture element on decoder initialization.
151
- */
152
- ID3D11Texture2D *texture;
153
-
154
- /**
155
- * D3D11_TEXTURE2D_DESC.BindFlags used for texture creation. The user must
156
- * at least set D3D11_BIND_DECODER if the frames context is to be used for
157
- * video decoding.
158
- * This field is ignored/invalid if a user-allocated texture is provided.
159
- */
160
- UINT BindFlags;
161
-
162
- /**
163
- * D3D11_TEXTURE2D_DESC.MiscFlags used for texture creation.
164
- * This field is ignored/invalid if a user-allocated texture is provided.
165
- */
166
- UINT MiscFlags;
167
-
168
- /**
169
- * In case if texture structure member above is not NULL contains the same texture
170
- * pointer for all elements and different indexes into the array texture.
171
- * In case if texture structure member above is NULL, all elements contains
172
- * pointers to separate non-array textures and 0 indexes.
173
- * This field is ignored/invalid if a user-allocated texture is provided.
174
- */
175
- AVD3D11FrameDescriptor *texture_infos;
176
- } AVD3D11VAFramesContext;
177
-
178
- #endif /* AVUTIL_HWCONTEXT_D3D11VA_H */
@@ -1,142 +0,0 @@
1
- /*
2
- * Direct3D 12 HW acceleration.
3
- *
4
- * copyright (c) 2022-2023 Wu Jianhua <toqsxw@outlook.com>
5
- *
6
- * This file is part of FFmpeg.
7
- *
8
- * FFmpeg is free software; you can redistribute it and/or
9
- * modify it under the terms of the GNU Lesser General Public
10
- * License as published by the Free Software Foundation; either
11
- * version 2.1 of the License, or (at your option) any later version.
12
- *
13
- * FFmpeg is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
- * Lesser General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU Lesser General Public
19
- * License along with FFmpeg; if not, write to the Free Software
20
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
- */
22
-
23
- #ifndef AVUTIL_HWCONTEXT_D3D12VA_H
24
- #define AVUTIL_HWCONTEXT_D3D12VA_H
25
-
26
- /**
27
- * @file
28
- * An API-specific header for AV_HWDEVICE_TYPE_D3D12VA.
29
- *
30
- * AVHWFramesContext.pool must contain AVBufferRefs whose
31
- * data pointer points to an AVD3D12VAFrame struct.
32
- */
33
- #include <stdint.h>
34
- #include <initguid.h>
35
- #include <d3d12.h>
36
- #include <d3d12sdklayers.h>
37
- #include <d3d12video.h>
38
-
39
- /**
40
- * @brief This struct is allocated as AVHWDeviceContext.hwctx
41
- *
42
- */
43
- typedef struct AVD3D12VADeviceContext {
44
- /**
45
- * Device used for objects creation and access. This can also be
46
- * used to set the libavcodec decoding device.
47
- *
48
- * Can be set by the user. This is the only mandatory field - the other
49
- * device context fields are set from this and are available for convenience.
50
- *
51
- * Deallocating the AVHWDeviceContext will always release this interface,
52
- * and it does not matter whether it was user-allocated.
53
- */
54
- ID3D12Device *device;
55
-
56
- /**
57
- * If unset, this will be set from the device field on init.
58
- *
59
- * Deallocating the AVHWDeviceContext will always release this interface,
60
- * and it does not matter whether it was user-allocated.
61
- */
62
- ID3D12VideoDevice *video_device;
63
-
64
- /**
65
- * Callbacks for locking. They protect access to the internal staging
66
- * texture (for av_hwframe_transfer_data() calls). They do NOT protect
67
- * access to hwcontext or decoder state in general.
68
- *
69
- * If unset on init, the hwcontext implementation will set them to use an
70
- * internal mutex.
71
- *
72
- * The underlying lock must be recursive. lock_ctx is for free use by the
73
- * locking implementation.
74
- */
75
- void (*lock)(void *lock_ctx);
76
- void (*unlock)(void *lock_ctx);
77
- void *lock_ctx;
78
- } AVD3D12VADeviceContext;
79
-
80
- /**
81
- * @brief This struct is used to sync d3d12 execution
82
- *
83
- */
84
- typedef struct AVD3D12VASyncContext {
85
- /**
86
- * D3D12 fence object
87
- */
88
- ID3D12Fence *fence;
89
-
90
- /**
91
- * A handle to the event object that's raised when the fence
92
- * reaches a certain value.
93
- */
94
- HANDLE event;
95
-
96
- /**
97
- * The fence value used for sync
98
- */
99
- uint64_t fence_value;
100
- } AVD3D12VASyncContext;
101
-
102
- /**
103
- * @brief D3D12VA frame descriptor for pool allocation.
104
- *
105
- */
106
- typedef struct AVD3D12VAFrame {
107
- /**
108
- * The texture in which the frame is located. The reference count is
109
- * managed by the AVBufferRef, and destroying the reference will release
110
- * the interface.
111
- */
112
- ID3D12Resource *texture;
113
-
114
- /**
115
- * The sync context for the texture
116
- *
117
- * @see: https://learn.microsoft.com/en-us/windows/win32/medfound/direct3d-12-video-overview#directx-12-fences
118
- */
119
- AVD3D12VASyncContext sync_ctx;
120
- } AVD3D12VAFrame;
121
-
122
- /**
123
- * @brief This struct is allocated as AVHWFramesContext.hwctx
124
- *
125
- */
126
- typedef struct AVD3D12VAFramesContext {
127
- /**
128
- * DXGI_FORMAT format. MUST be compatible with the pixel format.
129
- * If unset, will be automatically set.
130
- */
131
- DXGI_FORMAT format;
132
-
133
- /**
134
- * Options for working with resources.
135
- * If unset, this will be D3D12_RESOURCE_FLAG_NONE.
136
- *
137
- * @see https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_flags
138
- */
139
- D3D12_RESOURCE_FLAGS flags;
140
- } AVD3D12VAFramesContext;
141
-
142
- #endif /* AVUTIL_HWCONTEXT_D3D12VA_H */
@@ -1,169 +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_DRM_H
20
- #define AVUTIL_HWCONTEXT_DRM_H
21
-
22
- #include <stddef.h>
23
- #include <stdint.h>
24
-
25
- /**
26
- * @file
27
- * API-specific header for AV_HWDEVICE_TYPE_DRM.
28
- *
29
- * Internal frame allocation is not currently supported - all frames
30
- * must be allocated by the user. Thus AVHWFramesContext is always
31
- * NULL, though this may change if support for frame allocation is
32
- * added in future.
33
- */
34
-
35
- enum {
36
- /**
37
- * The maximum number of layers/planes in a DRM frame.
38
- */
39
- AV_DRM_MAX_PLANES = 4
40
- };
41
-
42
- /**
43
- * DRM object descriptor.
44
- *
45
- * Describes a single DRM object, addressing it as a PRIME file
46
- * descriptor.
47
- */
48
- typedef struct AVDRMObjectDescriptor {
49
- /**
50
- * DRM PRIME fd for the object.
51
- */
52
- int fd;
53
- /**
54
- * Total size of the object.
55
- *
56
- * (This includes any parts not which do not contain image data.)
57
- */
58
- size_t size;
59
- /**
60
- * Format modifier applied to the object (DRM_FORMAT_MOD_*).
61
- *
62
- * If the format modifier is unknown then this should be set to
63
- * DRM_FORMAT_MOD_INVALID.
64
- */
65
- uint64_t format_modifier;
66
- } AVDRMObjectDescriptor;
67
-
68
- /**
69
- * DRM plane descriptor.
70
- *
71
- * Describes a single plane of a layer, which is contained within
72
- * a single object.
73
- */
74
- typedef struct AVDRMPlaneDescriptor {
75
- /**
76
- * Index of the object containing this plane in the objects
77
- * array of the enclosing frame descriptor.
78
- */
79
- int object_index;
80
- /**
81
- * Offset within that object of this plane.
82
- */
83
- ptrdiff_t offset;
84
- /**
85
- * Pitch (linesize) of this plane.
86
- */
87
- ptrdiff_t pitch;
88
- } AVDRMPlaneDescriptor;
89
-
90
- /**
91
- * DRM layer descriptor.
92
- *
93
- * Describes a single layer within a frame. This has the structure
94
- * defined by its format, and will contain one or more planes.
95
- */
96
- typedef struct AVDRMLayerDescriptor {
97
- /**
98
- * Format of the layer (DRM_FORMAT_*).
99
- */
100
- uint32_t format;
101
- /**
102
- * Number of planes in the layer.
103
- *
104
- * This must match the number of planes required by format.
105
- */
106
- int nb_planes;
107
- /**
108
- * Array of planes in this layer.
109
- */
110
- AVDRMPlaneDescriptor planes[AV_DRM_MAX_PLANES];
111
- } AVDRMLayerDescriptor;
112
-
113
- /**
114
- * DRM frame descriptor.
115
- *
116
- * This is used as the data pointer for AV_PIX_FMT_DRM_PRIME frames.
117
- * It is also used by user-allocated frame pools - allocating in
118
- * AVHWFramesContext.pool must return AVBufferRefs which contain
119
- * an object of this type.
120
- *
121
- * The fields of this structure should be set such it can be
122
- * imported directly by EGL using the EGL_EXT_image_dma_buf_import
123
- * and EGL_EXT_image_dma_buf_import_modifiers extensions.
124
- * (Note that the exact layout of a particular format may vary between
125
- * platforms - we only specify that the same platform should be able
126
- * to import it.)
127
- *
128
- * The total number of planes must not exceed AV_DRM_MAX_PLANES, and
129
- * the order of the planes by increasing layer index followed by
130
- * increasing plane index must be the same as the order which would
131
- * be used for the data pointers in the equivalent software format.
132
- */
133
- typedef struct AVDRMFrameDescriptor {
134
- /**
135
- * Number of DRM objects making up this frame.
136
- */
137
- int nb_objects;
138
- /**
139
- * Array of objects making up the frame.
140
- */
141
- AVDRMObjectDescriptor objects[AV_DRM_MAX_PLANES];
142
- /**
143
- * Number of layers in the frame.
144
- */
145
- int nb_layers;
146
- /**
147
- * Array of layers in the frame.
148
- */
149
- AVDRMLayerDescriptor layers[AV_DRM_MAX_PLANES];
150
- } AVDRMFrameDescriptor;
151
-
152
- /**
153
- * DRM device.
154
- *
155
- * Allocated as AVHWDeviceContext.hwctx.
156
- */
157
- typedef struct AVDRMDeviceContext {
158
- /**
159
- * File descriptor of DRM device.
160
- *
161
- * This is used as the device to create frames on, and may also be
162
- * used in some derivation and mapping operations.
163
- *
164
- * If no device is required, set to -1.
165
- */
166
- int fd;
167
- } AVDRMDeviceContext;
168
-
169
- #endif /* AVUTIL_HWCONTEXT_DRM_H */
@@ -1,75 +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
-
20
- #ifndef AVUTIL_HWCONTEXT_DXVA2_H
21
- #define AVUTIL_HWCONTEXT_DXVA2_H
22
-
23
- /**
24
- * @file
25
- * An API-specific header for AV_HWDEVICE_TYPE_DXVA2.
26
- *
27
- * Only fixed-size pools are supported.
28
- *
29
- * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs
30
- * with the data pointer set to a pointer to IDirect3DSurface9.
31
- */
32
-
33
- #include <d3d9.h>
34
- #include <dxva2api.h>
35
-
36
- /**
37
- * This struct is allocated as AVHWDeviceContext.hwctx
38
- */
39
- typedef struct AVDXVA2DeviceContext {
40
- IDirect3DDeviceManager9 *devmgr;
41
- } AVDXVA2DeviceContext;
42
-
43
- /**
44
- * This struct is allocated as AVHWFramesContext.hwctx
45
- */
46
- typedef struct AVDXVA2FramesContext {
47
- /**
48
- * The surface type (e.g. DXVA2_VideoProcessorRenderTarget or
49
- * DXVA2_VideoDecoderRenderTarget). Must be set by the caller.
50
- */
51
- DWORD surface_type;
52
-
53
- /**
54
- * The surface pool. When an external pool is not provided by the caller,
55
- * this will be managed (allocated and filled on init, freed on uninit) by
56
- * libavutil.
57
- */
58
- IDirect3DSurface9 **surfaces;
59
- int nb_surfaces;
60
-
61
- /**
62
- * Certain drivers require the decoder to be destroyed before the surfaces.
63
- * To allow internally managed pools to work properly in such cases, this
64
- * field is provided.
65
- *
66
- * If it is non-NULL, libavutil will call IDirectXVideoDecoder_Release() on
67
- * it just before the internal surface pool is freed.
68
- *
69
- * This is for convenience only. Some code uses other methods to manage the
70
- * decoder reference.
71
- */
72
- IDirectXVideoDecoder *decoder_to_release;
73
- } AVDXVA2FramesContext;
74
-
75
- #endif /* AVUTIL_HWCONTEXT_DXVA2_H */
@@ -1,61 +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_MEDIACODEC_H
20
- #define AVUTIL_HWCONTEXT_MEDIACODEC_H
21
-
22
- /**
23
- * MediaCodec details.
24
- *
25
- * Allocated as AVHWDeviceContext.hwctx
26
- */
27
- typedef struct AVMediaCodecDeviceContext {
28
- /**
29
- * android/view/Surface handle, to be filled by the user.
30
- *
31
- * This is the default surface used by decoders on this device.
32
- */
33
- void *surface;
34
-
35
- /**
36
- * Pointer to ANativeWindow.
37
- *
38
- * It both surface and native_window is NULL, try to create it
39
- * automatically if create_window is true and OS support
40
- * createPersistentInputSurface.
41
- *
42
- * It can be used as output surface for decoder and input surface for
43
- * encoder.
44
- */
45
- void *native_window;
46
-
47
- /**
48
- * Enable createPersistentInputSurface automatically.
49
- *
50
- * Disabled by default.
51
- *
52
- * It can be enabled by setting this flag directly, or by setting
53
- * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key.
54
- * The second method is useful for ffmpeg cmdline, e.g., we can enable it
55
- * via:
56
- * -init_hw_device mediacodec=mediacodec,create_window=1
57
- */
58
- int create_window;
59
- } AVMediaCodecDeviceContext;
60
-
61
- #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */