@pproenca/ffmpeg-darwin-x64 0.1.7

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 (203) hide show
  1. package/include/aom/aom.h +127 -0
  2. package/include/aom/aom_codec.h +594 -0
  3. package/include/aom/aom_decoder.h +257 -0
  4. package/include/aom/aom_encoder.h +1154 -0
  5. package/include/aom/aom_external_partition.h +452 -0
  6. package/include/aom/aom_frame_buffer.h +84 -0
  7. package/include/aom/aom_image.h +462 -0
  8. package/include/aom/aom_integer.h +60 -0
  9. package/include/aom/aomcx.h +2288 -0
  10. package/include/aom/aomdx.h +607 -0
  11. package/include/dav1d/common.h +94 -0
  12. package/include/dav1d/data.h +117 -0
  13. package/include/dav1d/dav1d.h +329 -0
  14. package/include/dav1d/headers.h +444 -0
  15. package/include/dav1d/picture.h +157 -0
  16. package/include/dav1d/version.h +50 -0
  17. package/include/index.js +1 -0
  18. package/include/libavcodec/ac3_parser.h +36 -0
  19. package/include/libavcodec/adts_parser.h +37 -0
  20. package/include/libavcodec/avcodec.h +3128 -0
  21. package/include/libavcodec/avdct.h +88 -0
  22. package/include/libavcodec/avfft.h +149 -0
  23. package/include/libavcodec/bsf.h +332 -0
  24. package/include/libavcodec/codec.h +382 -0
  25. package/include/libavcodec/codec_desc.h +134 -0
  26. package/include/libavcodec/codec_id.h +669 -0
  27. package/include/libavcodec/codec_par.h +248 -0
  28. package/include/libavcodec/d3d11va.h +109 -0
  29. package/include/libavcodec/defs.h +337 -0
  30. package/include/libavcodec/dirac.h +135 -0
  31. package/include/libavcodec/dv_profile.h +82 -0
  32. package/include/libavcodec/dxva2.h +90 -0
  33. package/include/libavcodec/jni.h +67 -0
  34. package/include/libavcodec/mediacodec.h +103 -0
  35. package/include/libavcodec/packet.h +887 -0
  36. package/include/libavcodec/qsv.h +109 -0
  37. package/include/libavcodec/vdpau.h +171 -0
  38. package/include/libavcodec/version.h +45 -0
  39. package/include/libavcodec/version_major.h +52 -0
  40. package/include/libavcodec/videotoolbox.h +85 -0
  41. package/include/libavcodec/vorbis_parser.h +74 -0
  42. package/include/libavdevice/avdevice.h +397 -0
  43. package/include/libavdevice/version.h +45 -0
  44. package/include/libavdevice/version_major.h +43 -0
  45. package/include/libavfilter/avfilter.h +1379 -0
  46. package/include/libavfilter/buffersink.h +173 -0
  47. package/include/libavfilter/buffersrc.h +215 -0
  48. package/include/libavfilter/version.h +48 -0
  49. package/include/libavfilter/version_major.h +40 -0
  50. package/include/libavformat/avformat.h +3107 -0
  51. package/include/libavformat/avio.h +831 -0
  52. package/include/libavformat/version.h +47 -0
  53. package/include/libavformat/version_major.h +54 -0
  54. package/include/libavutil/adler32.h +63 -0
  55. package/include/libavutil/aes.h +69 -0
  56. package/include/libavutil/aes_ctr.h +99 -0
  57. package/include/libavutil/ambient_viewing_environment.h +72 -0
  58. package/include/libavutil/attributes.h +173 -0
  59. package/include/libavutil/audio_fifo.h +187 -0
  60. package/include/libavutil/avassert.h +78 -0
  61. package/include/libavutil/avconfig.h +6 -0
  62. package/include/libavutil/avstring.h +428 -0
  63. package/include/libavutil/avutil.h +362 -0
  64. package/include/libavutil/base64.h +72 -0
  65. package/include/libavutil/blowfish.h +82 -0
  66. package/include/libavutil/bprint.h +254 -0
  67. package/include/libavutil/bswap.h +105 -0
  68. package/include/libavutil/buffer.h +322 -0
  69. package/include/libavutil/camellia.h +70 -0
  70. package/include/libavutil/cast5.h +80 -0
  71. package/include/libavutil/channel_layout.h +751 -0
  72. package/include/libavutil/common.h +589 -0
  73. package/include/libavutil/cpu.h +145 -0
  74. package/include/libavutil/crc.h +102 -0
  75. package/include/libavutil/csp.h +150 -0
  76. package/include/libavutil/des.h +81 -0
  77. package/include/libavutil/detection_bbox.h +108 -0
  78. package/include/libavutil/dict.h +241 -0
  79. package/include/libavutil/display.h +109 -0
  80. package/include/libavutil/dovi_meta.h +396 -0
  81. package/include/libavutil/downmix_info.h +115 -0
  82. package/include/libavutil/encryption_info.h +205 -0
  83. package/include/libavutil/error.h +129 -0
  84. package/include/libavutil/eval.h +140 -0
  85. package/include/libavutil/executor.h +67 -0
  86. package/include/libavutil/ffversion.h +5 -0
  87. package/include/libavutil/fifo.h +242 -0
  88. package/include/libavutil/file.h +62 -0
  89. package/include/libavutil/film_grain_params.h +322 -0
  90. package/include/libavutil/frame.h +1175 -0
  91. package/include/libavutil/hash.h +264 -0
  92. package/include/libavutil/hdr_dynamic_metadata.h +376 -0
  93. package/include/libavutil/hdr_dynamic_vivid_metadata.h +346 -0
  94. package/include/libavutil/hmac.h +99 -0
  95. package/include/libavutil/hwcontext.h +598 -0
  96. package/include/libavutil/hwcontext_cuda.h +74 -0
  97. package/include/libavutil/hwcontext_d3d11va.h +178 -0
  98. package/include/libavutil/hwcontext_d3d12va.h +142 -0
  99. package/include/libavutil/hwcontext_drm.h +169 -0
  100. package/include/libavutil/hwcontext_dxva2.h +75 -0
  101. package/include/libavutil/hwcontext_mediacodec.h +61 -0
  102. package/include/libavutil/hwcontext_opencl.h +100 -0
  103. package/include/libavutil/hwcontext_qsv.h +87 -0
  104. package/include/libavutil/hwcontext_vaapi.h +117 -0
  105. package/include/libavutil/hwcontext_vdpau.h +44 -0
  106. package/include/libavutil/hwcontext_videotoolbox.h +106 -0
  107. package/include/libavutil/hwcontext_vulkan.h +382 -0
  108. package/include/libavutil/iamf.h +690 -0
  109. package/include/libavutil/imgutils.h +377 -0
  110. package/include/libavutil/intfloat.h +77 -0
  111. package/include/libavutil/intreadwrite.h +677 -0
  112. package/include/libavutil/lfg.h +81 -0
  113. package/include/libavutil/log.h +387 -0
  114. package/include/libavutil/lzo.h +66 -0
  115. package/include/libavutil/macros.h +80 -0
  116. package/include/libavutil/mastering_display_metadata.h +137 -0
  117. package/include/libavutil/mathematics.h +300 -0
  118. package/include/libavutil/md5.h +89 -0
  119. package/include/libavutil/mem.h +607 -0
  120. package/include/libavutil/motion_vector.h +57 -0
  121. package/include/libavutil/murmur3.h +115 -0
  122. package/include/libavutil/opt.h +1187 -0
  123. package/include/libavutil/parseutils.h +197 -0
  124. package/include/libavutil/pixdesc.h +440 -0
  125. package/include/libavutil/pixelutils.h +51 -0
  126. package/include/libavutil/pixfmt.h +716 -0
  127. package/include/libavutil/random_seed.h +57 -0
  128. package/include/libavutil/rational.h +225 -0
  129. package/include/libavutil/rc4.h +69 -0
  130. package/include/libavutil/replaygain.h +50 -0
  131. package/include/libavutil/ripemd.h +83 -0
  132. package/include/libavutil/samplefmt.h +269 -0
  133. package/include/libavutil/sha.h +90 -0
  134. package/include/libavutil/sha512.h +92 -0
  135. package/include/libavutil/spherical.h +243 -0
  136. package/include/libavutil/stereo3d.h +325 -0
  137. package/include/libavutil/tea.h +71 -0
  138. package/include/libavutil/threadmessage.h +115 -0
  139. package/include/libavutil/time.h +56 -0
  140. package/include/libavutil/timecode.h +199 -0
  141. package/include/libavutil/timestamp.h +85 -0
  142. package/include/libavutil/tree.h +137 -0
  143. package/include/libavutil/twofish.h +70 -0
  144. package/include/libavutil/tx.h +210 -0
  145. package/include/libavutil/uuid.h +146 -0
  146. package/include/libavutil/version.h +124 -0
  147. package/include/libavutil/video_enc_params.h +171 -0
  148. package/include/libavutil/video_hint.h +107 -0
  149. package/include/libavutil/xtea.h +94 -0
  150. package/include/libswresample/swresample.h +587 -0
  151. package/include/libswresample/version.h +46 -0
  152. package/include/libswresample/version_major.h +31 -0
  153. package/include/libswscale/swscale.h +460 -0
  154. package/include/libswscale/version.h +44 -0
  155. package/include/libswscale/version_major.h +35 -0
  156. package/include/ogg/config_types.h +26 -0
  157. package/include/ogg/ogg.h +209 -0
  158. package/include/ogg/os_types.h +158 -0
  159. package/include/opus/opus.h +1099 -0
  160. package/include/opus/opus_defines.h +830 -0
  161. package/include/opus/opus_multistream.h +660 -0
  162. package/include/opus/opus_projection.h +568 -0
  163. package/include/opus/opus_types.h +166 -0
  164. package/include/svt-av1/EbDebugMacros.h +88 -0
  165. package/include/svt-av1/EbSvtAv1.h +462 -0
  166. package/include/svt-av1/EbSvtAv1Enc.h +1112 -0
  167. package/include/svt-av1/EbSvtAv1ErrorCodes.h +67 -0
  168. package/include/svt-av1/EbSvtAv1ExtFrameBuf.h +64 -0
  169. package/include/svt-av1/EbSvtAv1Formats.h +126 -0
  170. package/include/svt-av1/EbSvtAv1Metadata.h +156 -0
  171. package/include/vorbis/codec.h +242 -0
  172. package/include/vorbis/vorbisenc.h +435 -0
  173. package/include/vorbis/vorbisfile.h +205 -0
  174. package/include/vpx/vp8.h +136 -0
  175. package/include/vpx/vp8cx.h +1118 -0
  176. package/include/vpx/vp8dx.h +228 -0
  177. package/include/vpx/vpx_codec.h +475 -0
  178. package/include/vpx/vpx_decoder.h +367 -0
  179. package/include/vpx/vpx_encoder.h +1150 -0
  180. package/include/vpx/vpx_ext_ratectrl.h +590 -0
  181. package/include/vpx/vpx_frame_buffer.h +83 -0
  182. package/include/vpx/vpx_image.h +221 -0
  183. package/include/vpx/vpx_integer.h +40 -0
  184. package/include/vpx/vpx_tpl.h +68 -0
  185. package/lib/index.js +1 -0
  186. package/lib/libSvtAv1Enc.a +0 -0
  187. package/lib/libaom.a +0 -0
  188. package/lib/libavcodec.a +0 -0
  189. package/lib/libavdevice.a +0 -0
  190. package/lib/libavfilter.a +0 -0
  191. package/lib/libavformat.a +0 -0
  192. package/lib/libavutil.a +0 -0
  193. package/lib/libdav1d.a +0 -0
  194. package/lib/libogg.a +0 -0
  195. package/lib/libopus.a +0 -0
  196. package/lib/libswresample.a +0 -0
  197. package/lib/libswscale.a +0 -0
  198. package/lib/libvorbis.a +0 -0
  199. package/lib/libvorbisenc.a +0 -0
  200. package/lib/libvorbisfile.a +0 -0
  201. package/lib/libvpx.a +0 -0
  202. package/package.json +35 -0
  203. package/versions.json +1 -0
@@ -0,0 +1,382 @@
1
+ /*
2
+ * AVCodec public API
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ #ifndef AVCODEC_CODEC_H
22
+ #define AVCODEC_CODEC_H
23
+
24
+ #include <stdint.h>
25
+
26
+ #include "libavutil/avutil.h"
27
+ #include "libavutil/hwcontext.h"
28
+ #include "libavutil/log.h"
29
+ #include "libavutil/pixfmt.h"
30
+ #include "libavutil/rational.h"
31
+ #include "libavutil/samplefmt.h"
32
+
33
+ #include "libavcodec/codec_id.h"
34
+ #include "libavcodec/version_major.h"
35
+
36
+ /**
37
+ * @addtogroup lavc_core
38
+ * @{
39
+ */
40
+
41
+ /**
42
+ * Decoder can use draw_horiz_band callback.
43
+ */
44
+ #define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0)
45
+ /**
46
+ * Codec uses get_buffer() or get_encode_buffer() for allocating buffers and
47
+ * supports custom allocators.
48
+ * If not set, it might not use get_buffer() or get_encode_buffer() at all, or
49
+ * use operations that assume the buffer was allocated by
50
+ * avcodec_default_get_buffer2 or avcodec_default_get_encode_buffer.
51
+ */
52
+ #define AV_CODEC_CAP_DR1 (1 << 1)
53
+ /**
54
+ * Encoder or decoder requires flushing with NULL input at the end in order to
55
+ * give the complete and correct output.
56
+ *
57
+ * NOTE: If this flag is not set, the codec is guaranteed to never be fed with
58
+ * with NULL data. The user can still send NULL data to the public encode
59
+ * or decode function, but libavcodec will not pass it along to the codec
60
+ * unless this flag is set.
61
+ *
62
+ * Decoders:
63
+ * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,
64
+ * avpkt->size=0 at the end to get the delayed data until the decoder no longer
65
+ * returns frames.
66
+ *
67
+ * Encoders:
68
+ * The encoder needs to be fed with NULL data at the end of encoding until the
69
+ * encoder no longer returns data.
70
+ *
71
+ * NOTE: For encoders implementing the AVCodec.encode2() function, setting this
72
+ * flag also means that the encoder must set the pts and duration for
73
+ * each output packet. If this flag is not set, the pts and duration will
74
+ * be determined by libavcodec from the input frame.
75
+ */
76
+ #define AV_CODEC_CAP_DELAY (1 << 5)
77
+ /**
78
+ * Codec can be fed a final frame with a smaller size.
79
+ * This can be used to prevent truncation of the last audio samples.
80
+ */
81
+ #define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
82
+
83
+ #if FF_API_SUBFRAMES
84
+ /**
85
+ * Codec can output multiple frames per AVPacket
86
+ * Normally demuxers return one frame at a time, demuxers which do not do
87
+ * are connected to a parser to split what they return into proper frames.
88
+ * This flag is reserved to the very rare category of codecs which have a
89
+ * bitstream that cannot be split into frames without timeconsuming
90
+ * operations like full decoding. Demuxers carrying such bitstreams thus
91
+ * may return multiple frames in a packet. This has many disadvantages like
92
+ * prohibiting stream copy in many cases thus it should only be considered
93
+ * as a last resort.
94
+ */
95
+ #define AV_CODEC_CAP_SUBFRAMES (1 << 8)
96
+ #endif
97
+
98
+ /**
99
+ * Codec is experimental and is thus avoided in favor of non experimental
100
+ * encoders
101
+ */
102
+ #define AV_CODEC_CAP_EXPERIMENTAL (1 << 9)
103
+ /**
104
+ * Codec should fill in channel configuration and samplerate instead of container
105
+ */
106
+ #define AV_CODEC_CAP_CHANNEL_CONF (1 << 10)
107
+ /**
108
+ * Codec supports frame-level multithreading.
109
+ */
110
+ #define AV_CODEC_CAP_FRAME_THREADS (1 << 12)
111
+ /**
112
+ * Codec supports slice-based (or partition-based) multithreading.
113
+ */
114
+ #define AV_CODEC_CAP_SLICE_THREADS (1 << 13)
115
+ /**
116
+ * Codec supports changed parameters at any point.
117
+ */
118
+ #define AV_CODEC_CAP_PARAM_CHANGE (1 << 14)
119
+ /**
120
+ * Codec supports multithreading through a method other than slice- or
121
+ * frame-level multithreading. Typically this marks wrappers around
122
+ * multithreading-capable external libraries.
123
+ */
124
+ #define AV_CODEC_CAP_OTHER_THREADS (1 << 15)
125
+ /**
126
+ * Audio encoder supports receiving a different number of samples in each call.
127
+ */
128
+ #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
129
+ /**
130
+ * Decoder is not a preferred choice for probing.
131
+ * This indicates that the decoder is not a good choice for probing.
132
+ * It could for example be an expensive to spin up hardware decoder,
133
+ * or it could simply not provide a lot of useful information about
134
+ * the stream.
135
+ * A decoder marked with this flag should only be used as last resort
136
+ * choice for probing.
137
+ */
138
+ #define AV_CODEC_CAP_AVOID_PROBING (1 << 17)
139
+
140
+ /**
141
+ * Codec is backed by a hardware implementation. Typically used to
142
+ * identify a non-hwaccel hardware decoder. For information about hwaccels, use
143
+ * avcodec_get_hw_config() instead.
144
+ */
145
+ #define AV_CODEC_CAP_HARDWARE (1 << 18)
146
+
147
+ /**
148
+ * Codec is potentially backed by a hardware implementation, but not
149
+ * necessarily. This is used instead of AV_CODEC_CAP_HARDWARE, if the
150
+ * implementation provides some sort of internal fallback.
151
+ */
152
+ #define AV_CODEC_CAP_HYBRID (1 << 19)
153
+
154
+ /**
155
+ * This encoder can reorder user opaque values from input AVFrames and return
156
+ * them with corresponding output packets.
157
+ * @see AV_CODEC_FLAG_COPY_OPAQUE
158
+ */
159
+ #define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20)
160
+
161
+ /**
162
+ * This encoder can be flushed using avcodec_flush_buffers(). If this flag is
163
+ * not set, the encoder must be closed and reopened to ensure that no frames
164
+ * remain pending.
165
+ */
166
+ #define AV_CODEC_CAP_ENCODER_FLUSH (1 << 21)
167
+
168
+ /**
169
+ * The encoder is able to output reconstructed frame data, i.e. raw frames that
170
+ * would be produced by decoding the encoded bitstream.
171
+ *
172
+ * Reconstructed frame output is enabled by the AV_CODEC_FLAG_RECON_FRAME flag.
173
+ */
174
+ #define AV_CODEC_CAP_ENCODER_RECON_FRAME (1 << 22)
175
+
176
+ /**
177
+ * AVProfile.
178
+ */
179
+ typedef struct AVProfile {
180
+ int profile;
181
+ const char *name; ///< short name for the profile
182
+ } AVProfile;
183
+
184
+ /**
185
+ * AVCodec.
186
+ */
187
+ typedef struct AVCodec {
188
+ /**
189
+ * Name of the codec implementation.
190
+ * The name is globally unique among encoders and among decoders (but an
191
+ * encoder and a decoder can share the same name).
192
+ * This is the primary way to find a codec from the user perspective.
193
+ */
194
+ const char *name;
195
+ /**
196
+ * Descriptive name for the codec, meant to be more human readable than name.
197
+ * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
198
+ */
199
+ const char *long_name;
200
+ enum AVMediaType type;
201
+ enum AVCodecID id;
202
+ /**
203
+ * Codec capabilities.
204
+ * see AV_CODEC_CAP_*
205
+ */
206
+ int capabilities;
207
+ uint8_t max_lowres; ///< maximum value for lowres supported by the decoder
208
+
209
+ /**
210
+ * Deprecated codec capabilities.
211
+ */
212
+ attribute_deprecated
213
+ const AVRational *supported_framerates; ///< @deprecated use avcodec_get_supported_config()
214
+ attribute_deprecated
215
+ const enum AVPixelFormat *pix_fmts; ///< @deprecated use avcodec_get_supported_config()
216
+ attribute_deprecated
217
+ const int *supported_samplerates; ///< @deprecated use avcodec_get_supported_config()
218
+ attribute_deprecated
219
+ const enum AVSampleFormat *sample_fmts; ///< @deprecated use avcodec_get_supported_config()
220
+
221
+ const AVClass *priv_class; ///< AVClass for the private context
222
+ const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {AV_PROFILE_UNKNOWN}
223
+
224
+ /**
225
+ * Group name of the codec implementation.
226
+ * This is a short symbolic name of the wrapper backing this codec. A
227
+ * wrapper uses some kind of external implementation for the codec, such
228
+ * as an external library, or a codec implementation provided by the OS or
229
+ * the hardware.
230
+ * If this field is NULL, this is a builtin, libavcodec native codec.
231
+ * If non-NULL, this will be the suffix in AVCodec.name in most cases
232
+ * (usually AVCodec.name will be of the form "<codec_name>_<wrapper_name>").
233
+ */
234
+ const char *wrapper_name;
235
+
236
+ /**
237
+ * Array of supported channel layouts, terminated with a zeroed layout.
238
+ * @deprecated use avcodec_get_supported_config()
239
+ */
240
+ attribute_deprecated
241
+ const AVChannelLayout *ch_layouts;
242
+ } AVCodec;
243
+
244
+ /**
245
+ * Iterate over all registered codecs.
246
+ *
247
+ * @param opaque a pointer where libavcodec will store the iteration state. Must
248
+ * point to NULL to start the iteration.
249
+ *
250
+ * @return the next registered codec or NULL when the iteration is
251
+ * finished
252
+ */
253
+ const AVCodec *av_codec_iterate(void **opaque);
254
+
255
+ /**
256
+ * Find a registered decoder with a matching codec ID.
257
+ *
258
+ * @param id AVCodecID of the requested decoder
259
+ * @return A decoder if one was found, NULL otherwise.
260
+ */
261
+ const AVCodec *avcodec_find_decoder(enum AVCodecID id);
262
+
263
+ /**
264
+ * Find a registered decoder with the specified name.
265
+ *
266
+ * @param name name of the requested decoder
267
+ * @return A decoder if one was found, NULL otherwise.
268
+ */
269
+ const AVCodec *avcodec_find_decoder_by_name(const char *name);
270
+
271
+ /**
272
+ * Find a registered encoder with a matching codec ID.
273
+ *
274
+ * @param id AVCodecID of the requested encoder
275
+ * @return An encoder if one was found, NULL otherwise.
276
+ */
277
+ const AVCodec *avcodec_find_encoder(enum AVCodecID id);
278
+
279
+ /**
280
+ * Find a registered encoder with the specified name.
281
+ *
282
+ * @param name name of the requested encoder
283
+ * @return An encoder if one was found, NULL otherwise.
284
+ */
285
+ const AVCodec *avcodec_find_encoder_by_name(const char *name);
286
+ /**
287
+ * @return a non-zero number if codec is an encoder, zero otherwise
288
+ */
289
+ int av_codec_is_encoder(const AVCodec *codec);
290
+
291
+ /**
292
+ * @return a non-zero number if codec is a decoder, zero otherwise
293
+ */
294
+ int av_codec_is_decoder(const AVCodec *codec);
295
+
296
+ /**
297
+ * Return a name for the specified profile, if available.
298
+ *
299
+ * @param codec the codec that is searched for the given profile
300
+ * @param profile the profile value for which a name is requested
301
+ * @return A name for the profile if found, NULL otherwise.
302
+ */
303
+ const char *av_get_profile_name(const AVCodec *codec, int profile);
304
+
305
+ enum {
306
+ /**
307
+ * The codec supports this format via the hw_device_ctx interface.
308
+ *
309
+ * When selecting this format, AVCodecContext.hw_device_ctx should
310
+ * have been set to a device of the specified type before calling
311
+ * avcodec_open2().
312
+ */
313
+ AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01,
314
+ /**
315
+ * The codec supports this format via the hw_frames_ctx interface.
316
+ *
317
+ * When selecting this format for a decoder,
318
+ * AVCodecContext.hw_frames_ctx should be set to a suitable frames
319
+ * context inside the get_format() callback. The frames context
320
+ * must have been created on a device of the specified type.
321
+ *
322
+ * When selecting this format for an encoder,
323
+ * AVCodecContext.hw_frames_ctx should be set to the context which
324
+ * will be used for the input frames before calling avcodec_open2().
325
+ */
326
+ AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02,
327
+ /**
328
+ * The codec supports this format by some internal method.
329
+ *
330
+ * This format can be selected without any additional configuration -
331
+ * no device or frames context is required.
332
+ */
333
+ AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04,
334
+ /**
335
+ * The codec supports this format by some ad-hoc method.
336
+ *
337
+ * Additional settings and/or function calls are required. See the
338
+ * codec-specific documentation for details. (Methods requiring
339
+ * this sort of configuration are deprecated and others should be
340
+ * used in preference.)
341
+ */
342
+ AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08,
343
+ };
344
+
345
+ typedef struct AVCodecHWConfig {
346
+ /**
347
+ * For decoders, a hardware pixel format which that decoder may be
348
+ * able to decode to if suitable hardware is available.
349
+ *
350
+ * For encoders, a pixel format which the encoder may be able to
351
+ * accept. If set to AV_PIX_FMT_NONE, this applies to all pixel
352
+ * formats supported by the codec.
353
+ */
354
+ enum AVPixelFormat pix_fmt;
355
+ /**
356
+ * Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible
357
+ * setup methods which can be used with this configuration.
358
+ */
359
+ int methods;
360
+ /**
361
+ * The device type associated with the configuration.
362
+ *
363
+ * Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and
364
+ * AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused.
365
+ */
366
+ enum AVHWDeviceType device_type;
367
+ } AVCodecHWConfig;
368
+
369
+ /**
370
+ * Retrieve supported hardware configurations for a codec.
371
+ *
372
+ * Values of index from zero to some maximum return the indexed configuration
373
+ * descriptor; all other values return NULL. If the codec does not support
374
+ * any hardware configurations then it will always return NULL.
375
+ */
376
+ const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index);
377
+
378
+ /**
379
+ * @}
380
+ */
381
+
382
+ #endif /* AVCODEC_CODEC_H */
@@ -0,0 +1,134 @@
1
+ /*
2
+ * Codec descriptors public API
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ #ifndef AVCODEC_CODEC_DESC_H
22
+ #define AVCODEC_CODEC_DESC_H
23
+
24
+ #include "libavutil/avutil.h"
25
+
26
+ #include "codec_id.h"
27
+
28
+ /**
29
+ * @addtogroup lavc_core
30
+ * @{
31
+ */
32
+
33
+ /**
34
+ * This struct describes the properties of a single codec described by an
35
+ * AVCodecID.
36
+ * @see avcodec_descriptor_get()
37
+ */
38
+ typedef struct AVCodecDescriptor {
39
+ enum AVCodecID id;
40
+ enum AVMediaType type;
41
+ /**
42
+ * Name of the codec described by this descriptor. It is non-empty and
43
+ * unique for each codec descriptor. It should contain alphanumeric
44
+ * characters and '_' only.
45
+ */
46
+ const char *name;
47
+ /**
48
+ * A more descriptive name for this codec. May be NULL.
49
+ */
50
+ const char *long_name;
51
+ /**
52
+ * Codec properties, a combination of AV_CODEC_PROP_* flags.
53
+ */
54
+ int props;
55
+ /**
56
+ * MIME type(s) associated with the codec.
57
+ * May be NULL; if not, a NULL-terminated array of MIME types.
58
+ * The first item is always non-NULL and is the preferred MIME type.
59
+ */
60
+ const char *const *mime_types;
61
+ /**
62
+ * If non-NULL, an array of profiles recognized for this codec.
63
+ * Terminated with AV_PROFILE_UNKNOWN.
64
+ */
65
+ const struct AVProfile *profiles;
66
+ } AVCodecDescriptor;
67
+
68
+ /**
69
+ * Codec uses only intra compression.
70
+ * Video and audio codecs only.
71
+ */
72
+ #define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
73
+ /**
74
+ * Codec supports lossy compression. Audio and video codecs only.
75
+ * @note a codec may support both lossy and lossless
76
+ * compression modes
77
+ */
78
+ #define AV_CODEC_PROP_LOSSY (1 << 1)
79
+ /**
80
+ * Codec supports lossless compression. Audio and video codecs only.
81
+ */
82
+ #define AV_CODEC_PROP_LOSSLESS (1 << 2)
83
+ /**
84
+ * Codec supports frame reordering. That is, the coded order (the order in which
85
+ * the encoded packets are output by the encoders / stored / input to the
86
+ * decoders) may be different from the presentation order of the corresponding
87
+ * frames.
88
+ *
89
+ * For codecs that do not have this property set, PTS and DTS should always be
90
+ * equal.
91
+ */
92
+ #define AV_CODEC_PROP_REORDER (1 << 3)
93
+
94
+ /**
95
+ * Video codec supports separate coding of fields in interlaced frames.
96
+ */
97
+ #define AV_CODEC_PROP_FIELDS (1 << 4)
98
+
99
+ /**
100
+ * Subtitle codec is bitmap based
101
+ * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
102
+ */
103
+ #define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
104
+ /**
105
+ * Subtitle codec is text based.
106
+ * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.
107
+ */
108
+ #define AV_CODEC_PROP_TEXT_SUB (1 << 17)
109
+
110
+ /**
111
+ * @return descriptor for given codec ID or NULL if no descriptor exists.
112
+ */
113
+ const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id);
114
+
115
+ /**
116
+ * Iterate over all codec descriptors known to libavcodec.
117
+ *
118
+ * @param prev previous descriptor. NULL to get the first descriptor.
119
+ *
120
+ * @return next descriptor or NULL after the last descriptor
121
+ */
122
+ const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev);
123
+
124
+ /**
125
+ * @return codec descriptor with the given name or NULL if no such descriptor
126
+ * exists.
127
+ */
128
+ const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name);
129
+
130
+ /**
131
+ * @}
132
+ */
133
+
134
+ #endif // AVCODEC_CODEC_DESC_H