@pproenca/ffmpeg-darwin-arm64-gpl 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 (234) hide show
  1. package/LICENSE +117 -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/libmp3lame.a +0 -0
  11. package/lib/libogg.a +0 -0
  12. package/lib/libopus.a +0 -0
  13. package/lib/libpostproc.a +0 -0
  14. package/lib/libswresample.a +0 -0
  15. package/lib/libswscale.a +0 -0
  16. package/lib/libvorbis.a +0 -0
  17. package/lib/libvorbisenc.a +0 -0
  18. package/lib/libvorbisfile.a +0 -0
  19. package/lib/libvpx.a +0 -0
  20. package/lib/libx264.a +0 -0
  21. package/lib/libx265.a +0 -0
  22. package/lib/pkgconfig/SvtAv1Enc.pc +12 -0
  23. package/lib/pkgconfig/aom.pc +14 -0
  24. package/lib/pkgconfig/dav1d.pc +9 -0
  25. package/lib/pkgconfig/libavcodec.pc +14 -0
  26. package/lib/pkgconfig/libavdevice.pc +14 -0
  27. package/lib/pkgconfig/libavfilter.pc +14 -0
  28. package/lib/pkgconfig/libavformat.pc +14 -0
  29. package/lib/pkgconfig/libavutil.pc +14 -0
  30. package/lib/pkgconfig/libpostproc.pc +14 -0
  31. package/lib/pkgconfig/libswresample.pc +14 -0
  32. package/lib/pkgconfig/libswscale.pc +14 -0
  33. package/lib/pkgconfig/mp3lame.pc +11 -0
  34. package/lib/pkgconfig/ogg.pc +14 -0
  35. package/lib/pkgconfig/opus.pc +16 -0
  36. package/lib/pkgconfig/vorbis.pc +15 -0
  37. package/lib/pkgconfig/vorbisenc.pc +14 -0
  38. package/lib/pkgconfig/vorbisfile.pc +14 -0
  39. package/lib/pkgconfig/vpx.pc +14 -0
  40. package/lib/pkgconfig/x264.pc +11 -0
  41. package/lib/pkgconfig/x265.pc +11 -0
  42. package/package.json +2 -3
  43. package/include/aom/aom.h +0 -127
  44. package/include/aom/aom_codec.h +0 -594
  45. package/include/aom/aom_decoder.h +0 -257
  46. package/include/aom/aom_encoder.h +0 -1154
  47. package/include/aom/aom_external_partition.h +0 -452
  48. package/include/aom/aom_frame_buffer.h +0 -84
  49. package/include/aom/aom_image.h +0 -462
  50. package/include/aom/aom_integer.h +0 -60
  51. package/include/aom/aomcx.h +0 -2288
  52. package/include/aom/aomdx.h +0 -607
  53. package/include/dav1d/common.h +0 -94
  54. package/include/dav1d/data.h +0 -117
  55. package/include/dav1d/dav1d.h +0 -329
  56. package/include/dav1d/headers.h +0 -444
  57. package/include/dav1d/picture.h +0 -157
  58. package/include/dav1d/version.h +0 -50
  59. package/include/lame/lame.h +0 -1342
  60. package/include/libavcodec/ac3_parser.h +0 -36
  61. package/include/libavcodec/adts_parser.h +0 -37
  62. package/include/libavcodec/avcodec.h +0 -3128
  63. package/include/libavcodec/avdct.h +0 -88
  64. package/include/libavcodec/avfft.h +0 -149
  65. package/include/libavcodec/bsf.h +0 -332
  66. package/include/libavcodec/codec.h +0 -382
  67. package/include/libavcodec/codec_desc.h +0 -134
  68. package/include/libavcodec/codec_id.h +0 -669
  69. package/include/libavcodec/codec_par.h +0 -248
  70. package/include/libavcodec/d3d11va.h +0 -109
  71. package/include/libavcodec/defs.h +0 -337
  72. package/include/libavcodec/dirac.h +0 -135
  73. package/include/libavcodec/dv_profile.h +0 -82
  74. package/include/libavcodec/dxva2.h +0 -90
  75. package/include/libavcodec/jni.h +0 -67
  76. package/include/libavcodec/mediacodec.h +0 -103
  77. package/include/libavcodec/packet.h +0 -887
  78. package/include/libavcodec/qsv.h +0 -109
  79. package/include/libavcodec/vdpau.h +0 -171
  80. package/include/libavcodec/version.h +0 -45
  81. package/include/libavcodec/version_major.h +0 -52
  82. package/include/libavcodec/videotoolbox.h +0 -85
  83. package/include/libavcodec/vorbis_parser.h +0 -74
  84. package/include/libavdevice/avdevice.h +0 -397
  85. package/include/libavdevice/version.h +0 -45
  86. package/include/libavdevice/version_major.h +0 -43
  87. package/include/libavfilter/avfilter.h +0 -1379
  88. package/include/libavfilter/buffersink.h +0 -173
  89. package/include/libavfilter/buffersrc.h +0 -215
  90. package/include/libavfilter/version.h +0 -48
  91. package/include/libavfilter/version_major.h +0 -40
  92. package/include/libavformat/avformat.h +0 -3107
  93. package/include/libavformat/avio.h +0 -831
  94. package/include/libavformat/version.h +0 -47
  95. package/include/libavformat/version_major.h +0 -54
  96. package/include/libavutil/adler32.h +0 -63
  97. package/include/libavutil/aes.h +0 -69
  98. package/include/libavutil/aes_ctr.h +0 -99
  99. package/include/libavutil/ambient_viewing_environment.h +0 -72
  100. package/include/libavutil/attributes.h +0 -173
  101. package/include/libavutil/audio_fifo.h +0 -187
  102. package/include/libavutil/avassert.h +0 -78
  103. package/include/libavutil/avconfig.h +0 -6
  104. package/include/libavutil/avstring.h +0 -428
  105. package/include/libavutil/avutil.h +0 -362
  106. package/include/libavutil/base64.h +0 -72
  107. package/include/libavutil/blowfish.h +0 -82
  108. package/include/libavutil/bprint.h +0 -254
  109. package/include/libavutil/bswap.h +0 -105
  110. package/include/libavutil/buffer.h +0 -322
  111. package/include/libavutil/camellia.h +0 -70
  112. package/include/libavutil/cast5.h +0 -80
  113. package/include/libavutil/channel_layout.h +0 -751
  114. package/include/libavutil/common.h +0 -589
  115. package/include/libavutil/cpu.h +0 -145
  116. package/include/libavutil/crc.h +0 -102
  117. package/include/libavutil/csp.h +0 -150
  118. package/include/libavutil/des.h +0 -81
  119. package/include/libavutil/detection_bbox.h +0 -108
  120. package/include/libavutil/dict.h +0 -241
  121. package/include/libavutil/display.h +0 -109
  122. package/include/libavutil/dovi_meta.h +0 -396
  123. package/include/libavutil/downmix_info.h +0 -115
  124. package/include/libavutil/encryption_info.h +0 -205
  125. package/include/libavutil/error.h +0 -129
  126. package/include/libavutil/eval.h +0 -140
  127. package/include/libavutil/executor.h +0 -67
  128. package/include/libavutil/ffversion.h +0 -5
  129. package/include/libavutil/fifo.h +0 -242
  130. package/include/libavutil/file.h +0 -62
  131. package/include/libavutil/film_grain_params.h +0 -322
  132. package/include/libavutil/frame.h +0 -1175
  133. package/include/libavutil/hash.h +0 -264
  134. package/include/libavutil/hdr_dynamic_metadata.h +0 -376
  135. package/include/libavutil/hdr_dynamic_vivid_metadata.h +0 -346
  136. package/include/libavutil/hmac.h +0 -99
  137. package/include/libavutil/hwcontext.h +0 -598
  138. package/include/libavutil/hwcontext_cuda.h +0 -74
  139. package/include/libavutil/hwcontext_d3d11va.h +0 -178
  140. package/include/libavutil/hwcontext_d3d12va.h +0 -142
  141. package/include/libavutil/hwcontext_drm.h +0 -169
  142. package/include/libavutil/hwcontext_dxva2.h +0 -75
  143. package/include/libavutil/hwcontext_mediacodec.h +0 -61
  144. package/include/libavutil/hwcontext_opencl.h +0 -100
  145. package/include/libavutil/hwcontext_qsv.h +0 -87
  146. package/include/libavutil/hwcontext_vaapi.h +0 -117
  147. package/include/libavutil/hwcontext_vdpau.h +0 -44
  148. package/include/libavutil/hwcontext_videotoolbox.h +0 -106
  149. package/include/libavutil/hwcontext_vulkan.h +0 -382
  150. package/include/libavutil/iamf.h +0 -690
  151. package/include/libavutil/imgutils.h +0 -377
  152. package/include/libavutil/intfloat.h +0 -77
  153. package/include/libavutil/intreadwrite.h +0 -677
  154. package/include/libavutil/lfg.h +0 -81
  155. package/include/libavutil/log.h +0 -387
  156. package/include/libavutil/lzo.h +0 -66
  157. package/include/libavutil/macros.h +0 -80
  158. package/include/libavutil/mastering_display_metadata.h +0 -137
  159. package/include/libavutil/mathematics.h +0 -300
  160. package/include/libavutil/md5.h +0 -89
  161. package/include/libavutil/mem.h +0 -607
  162. package/include/libavutil/motion_vector.h +0 -57
  163. package/include/libavutil/murmur3.h +0 -115
  164. package/include/libavutil/opt.h +0 -1187
  165. package/include/libavutil/parseutils.h +0 -197
  166. package/include/libavutil/pixdesc.h +0 -440
  167. package/include/libavutil/pixelutils.h +0 -51
  168. package/include/libavutil/pixfmt.h +0 -716
  169. package/include/libavutil/random_seed.h +0 -57
  170. package/include/libavutil/rational.h +0 -225
  171. package/include/libavutil/rc4.h +0 -69
  172. package/include/libavutil/replaygain.h +0 -50
  173. package/include/libavutil/ripemd.h +0 -83
  174. package/include/libavutil/samplefmt.h +0 -269
  175. package/include/libavutil/sha.h +0 -90
  176. package/include/libavutil/sha512.h +0 -92
  177. package/include/libavutil/spherical.h +0 -243
  178. package/include/libavutil/stereo3d.h +0 -325
  179. package/include/libavutil/tea.h +0 -71
  180. package/include/libavutil/threadmessage.h +0 -115
  181. package/include/libavutil/time.h +0 -56
  182. package/include/libavutil/timecode.h +0 -199
  183. package/include/libavutil/timestamp.h +0 -85
  184. package/include/libavutil/tree.h +0 -137
  185. package/include/libavutil/twofish.h +0 -70
  186. package/include/libavutil/tx.h +0 -210
  187. package/include/libavutil/uuid.h +0 -146
  188. package/include/libavutil/version.h +0 -124
  189. package/include/libavutil/video_enc_params.h +0 -171
  190. package/include/libavutil/video_hint.h +0 -107
  191. package/include/libavutil/xtea.h +0 -94
  192. package/include/libpostproc/postprocess.h +0 -107
  193. package/include/libpostproc/version.h +0 -46
  194. package/include/libpostproc/version_major.h +0 -31
  195. package/include/libswresample/swresample.h +0 -587
  196. package/include/libswresample/version.h +0 -46
  197. package/include/libswresample/version_major.h +0 -31
  198. package/include/libswscale/swscale.h +0 -460
  199. package/include/libswscale/version.h +0 -44
  200. package/include/libswscale/version_major.h +0 -35
  201. package/include/ogg/config_types.h +0 -26
  202. package/include/ogg/ogg.h +0 -209
  203. package/include/ogg/os_types.h +0 -158
  204. package/include/opus/opus.h +0 -1099
  205. package/include/opus/opus_defines.h +0 -830
  206. package/include/opus/opus_multistream.h +0 -660
  207. package/include/opus/opus_projection.h +0 -568
  208. package/include/opus/opus_types.h +0 -166
  209. package/include/svt-av1/EbDebugMacros.h +0 -88
  210. package/include/svt-av1/EbSvtAv1.h +0 -462
  211. package/include/svt-av1/EbSvtAv1Enc.h +0 -1112
  212. package/include/svt-av1/EbSvtAv1ErrorCodes.h +0 -67
  213. package/include/svt-av1/EbSvtAv1ExtFrameBuf.h +0 -64
  214. package/include/svt-av1/EbSvtAv1Formats.h +0 -126
  215. package/include/svt-av1/EbSvtAv1Metadata.h +0 -156
  216. package/include/vorbis/codec.h +0 -242
  217. package/include/vorbis/vorbisenc.h +0 -435
  218. package/include/vorbis/vorbisfile.h +0 -205
  219. package/include/vpx/vp8.h +0 -136
  220. package/include/vpx/vp8cx.h +0 -1118
  221. package/include/vpx/vp8dx.h +0 -228
  222. package/include/vpx/vpx_codec.h +0 -475
  223. package/include/vpx/vpx_decoder.h +0 -367
  224. package/include/vpx/vpx_encoder.h +0 -1150
  225. package/include/vpx/vpx_ext_ratectrl.h +0 -590
  226. package/include/vpx/vpx_frame_buffer.h +0 -83
  227. package/include/vpx/vpx_image.h +0 -221
  228. package/include/vpx/vpx_integer.h +0 -40
  229. package/include/vpx/vpx_tpl.h +0 -68
  230. package/include/x264.h +0 -1027
  231. package/include/x264_config.h +0 -6
  232. package/include/x265.h +0 -2737
  233. package/include/x265_config.h +0 -34
  234. /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 */