@pproenca/ffmpeg-darwin-x64 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,690 +0,0 @@
1
- /*
2
- * Immersive Audio Model and Formats helper functions and defines
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 AVUTIL_IAMF_H
22
- #define AVUTIL_IAMF_H
23
-
24
- /**
25
- * @file
26
- * Immersive Audio Model and Formats API header
27
- * @see <a href="https://aomediacodec.github.io/iamf/">Immersive Audio Model and Formats</a>
28
- */
29
-
30
- #include <stdint.h>
31
- #include <stddef.h>
32
-
33
- #include "attributes.h"
34
- #include "avassert.h"
35
- #include "channel_layout.h"
36
- #include "dict.h"
37
- #include "rational.h"
38
-
39
- /**
40
- * @defgroup lavu_iamf Immersive Audio Model and Formats
41
- * @ingroup lavu_audio
42
- *
43
- * Immersive Audio Model and Formats related functions and defines
44
- *
45
- * @defgroup lavu_iamf_params Parameter Definition
46
- * @ingroup lavu_iamf
47
- * @{
48
- * Parameters as defined in section 3.6.1 and 3.8 of IAMF.
49
- * @}
50
- *
51
- * @defgroup lavu_iamf_audio Audio Element
52
- * @ingroup lavu_iamf
53
- * @{
54
- * Audio Elements as defined in section 3.6 of IAMF.
55
- * @}
56
- *
57
- * @defgroup lavu_iamf_mix Mix Presentation
58
- * @ingroup lavu_iamf
59
- * @{
60
- * Mix Presentations as defined in section 3.7 of IAMF.
61
- * @}
62
- *
63
- * @addtogroup lavu_iamf_params
64
- * @{
65
- */
66
- enum AVIAMFAnimationType {
67
- AV_IAMF_ANIMATION_TYPE_STEP,
68
- AV_IAMF_ANIMATION_TYPE_LINEAR,
69
- AV_IAMF_ANIMATION_TYPE_BEZIER,
70
- };
71
-
72
- /**
73
- * Mix Gain Parameter Data as defined in section 3.8.1 of IAMF.
74
- *
75
- * @note This struct's size is not a part of the public ABI.
76
- */
77
- typedef struct AVIAMFMixGain {
78
- const AVClass *av_class;
79
-
80
- /**
81
- * Duration for the given subblock, in units of
82
- * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate".
83
- * It must not be 0.
84
- */
85
- unsigned int subblock_duration;
86
- /**
87
- * The type of animation applied to the parameter values.
88
- */
89
- enum AVIAMFAnimationType animation_type;
90
- /**
91
- * Parameter value that is applied at the start of the subblock.
92
- * Applies to all defined Animation Types.
93
- *
94
- * Valid range of values is -128.0 to 128.0
95
- */
96
- AVRational start_point_value;
97
- /**
98
- * Parameter value that is applied at the end of the subblock.
99
- * Applies only to AV_IAMF_ANIMATION_TYPE_LINEAR and
100
- * AV_IAMF_ANIMATION_TYPE_BEZIER Animation Types.
101
- *
102
- * Valid range of values is -128.0 to 128.0
103
- */
104
- AVRational end_point_value;
105
- /**
106
- * Parameter value of the middle control point of a quadratic Bezier
107
- * curve, i.e., its y-axis value.
108
- * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type.
109
- *
110
- * Valid range of values is -128.0 to 128.0
111
- */
112
- AVRational control_point_value;
113
- /**
114
- * Parameter value of the time of the middle control point of a
115
- * quadratic Bezier curve, i.e., its x-axis value.
116
- * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type.
117
- *
118
- * Valid range of values is 0.0 to 1.0
119
- */
120
- AVRational control_point_relative_time;
121
- } AVIAMFMixGain;
122
-
123
- /**
124
- * Demixing Info Parameter Data as defined in section 3.8.2 of IAMF.
125
- *
126
- * @note This struct's size is not a part of the public ABI.
127
- */
128
- typedef struct AVIAMFDemixingInfo {
129
- const AVClass *av_class;
130
-
131
- /**
132
- * Duration for the given subblock, in units of
133
- * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate".
134
- * It must not be 0.
135
- */
136
- unsigned int subblock_duration;
137
- /**
138
- * Pre-defined combination of demixing parameters.
139
- */
140
- unsigned int dmixp_mode;
141
- } AVIAMFDemixingInfo;
142
-
143
- /**
144
- * Recon Gain Info Parameter Data as defined in section 3.8.3 of IAMF.
145
- *
146
- * @note This struct's size is not a part of the public ABI.
147
- */
148
- typedef struct AVIAMFReconGain {
149
- const AVClass *av_class;
150
-
151
- /**
152
- * Duration for the given subblock, in units of
153
- * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate".
154
- * It must not be 0.
155
- */
156
- unsigned int subblock_duration;
157
-
158
- /**
159
- * Array of gain values to be applied to each channel for each layer
160
- * defined in the Audio Element referencing the parent Parameter Definition.
161
- * Values for layers where the AV_IAMF_LAYER_FLAG_RECON_GAIN flag is not set
162
- * are undefined.
163
- *
164
- * Channel order is: FL, C, FR, SL, SR, TFL, TFR, BL, BR, TBL, TBR, LFE
165
- */
166
- uint8_t recon_gain[6][12];
167
- } AVIAMFReconGain;
168
-
169
- enum AVIAMFParamDefinitionType {
170
- /**
171
- * Subblocks are of struct type AVIAMFMixGain
172
- */
173
- AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN,
174
- /**
175
- * Subblocks are of struct type AVIAMFDemixingInfo
176
- */
177
- AV_IAMF_PARAMETER_DEFINITION_DEMIXING,
178
- /**
179
- * Subblocks are of struct type AVIAMFReconGain
180
- */
181
- AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN,
182
- };
183
-
184
- /**
185
- * Parameters as defined in section 3.6.1 of IAMF.
186
- *
187
- * The struct is allocated by av_iamf_param_definition_alloc() along with an
188
- * array of subblocks, its type depending on the value of type.
189
- * This array is placed subblocks_offset bytes after the start of this struct.
190
- *
191
- * @note This struct's size is not a part of the public ABI.
192
- */
193
- typedef struct AVIAMFParamDefinition {
194
- const AVClass *av_class;
195
-
196
- /**
197
- * Offset in bytes from the start of this struct, at which the subblocks
198
- * array is located.
199
- */
200
- size_t subblocks_offset;
201
- /**
202
- * Size in bytes of each element in the subblocks array.
203
- */
204
- size_t subblock_size;
205
- /**
206
- * Number of subblocks in the array.
207
- */
208
- unsigned int nb_subblocks;
209
-
210
- /**
211
- * Parameters type. Determines the type of the subblock elements.
212
- */
213
- enum AVIAMFParamDefinitionType type;
214
-
215
- /**
216
- * Identifier for the paremeter substream.
217
- */
218
- unsigned int parameter_id;
219
- /**
220
- * Sample rate for the paremeter substream. It must not be 0.
221
- */
222
- unsigned int parameter_rate;
223
-
224
- /**
225
- * The accumulated duration of all blocks in this parameter definition,
226
- * in units of 1 / @ref parameter_rate.
227
- *
228
- * May be 0, in which case all duration values should be specified in
229
- * another parameter definition referencing the same parameter_id.
230
- */
231
- unsigned int duration;
232
- /**
233
- * The duration of every subblock in the case where all subblocks, with
234
- * the optional exception of the last subblock, have equal durations.
235
- *
236
- * Must be 0 if subblocks have different durations.
237
- */
238
- unsigned int constant_subblock_duration;
239
- } AVIAMFParamDefinition;
240
-
241
- const AVClass *av_iamf_param_definition_get_class(void);
242
-
243
- /**
244
- * Allocates memory for AVIAMFParamDefinition, plus an array of {@code nb_subblocks}
245
- * amount of subblocks of the given type and initializes the variables. Can be
246
- * freed with a normal av_free() call.
247
- *
248
- * @param size if non-NULL, the size in bytes of the resulting data array is written here.
249
- */
250
- AVIAMFParamDefinition *av_iamf_param_definition_alloc(enum AVIAMFParamDefinitionType type,
251
- unsigned int nb_subblocks, size_t *size);
252
-
253
- /**
254
- * Get the subblock at the specified {@code idx}. Must be between 0 and nb_subblocks - 1.
255
- *
256
- * The @ref AVIAMFParamDefinition.type "param definition type" defines
257
- * the struct type of the returned pointer.
258
- */
259
- static av_always_inline void*
260
- av_iamf_param_definition_get_subblock(const AVIAMFParamDefinition *par, unsigned int idx)
261
- {
262
- av_assert0(idx < par->nb_subblocks);
263
- return (void *)((uint8_t *)par + par->subblocks_offset + idx * par->subblock_size);
264
- }
265
-
266
- /**
267
- * @}
268
- * @addtogroup lavu_iamf_audio
269
- * @{
270
- */
271
-
272
- enum AVIAMFAmbisonicsMode {
273
- AV_IAMF_AMBISONICS_MODE_MONO,
274
- AV_IAMF_AMBISONICS_MODE_PROJECTION,
275
- };
276
-
277
- /**
278
- * Recon gain information for the layer is present in AVIAMFReconGain
279
- */
280
- #define AV_IAMF_LAYER_FLAG_RECON_GAIN (1 << 0)
281
-
282
- /**
283
- * A layer defining a Channel Layout in the Audio Element.
284
- *
285
- * When @ref AVIAMFAudioElement.audio_element_type "the parent's Audio Element type"
286
- * is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, this corresponds to an Scalable Channel
287
- * Layout layer as defined in section 3.6.2 of IAMF.
288
- * For AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, it is an Ambisonics channel
289
- * layout as defined in section 3.6.3 of IAMF.
290
- *
291
- * @note The struct should be allocated with av_iamf_audio_element_add_layer()
292
- * and its size is not a part of the public ABI.
293
- */
294
- typedef struct AVIAMFLayer {
295
- const AVClass *av_class;
296
-
297
- AVChannelLayout ch_layout;
298
-
299
- /**
300
- * A bitmask which may contain a combination of AV_IAMF_LAYER_FLAG_* flags.
301
- */
302
- unsigned int flags;
303
- /**
304
- * Output gain channel flags as defined in section 3.6.2 of IAMF.
305
- *
306
- * This field is defined only if @ref AVIAMFAudioElement.audio_element_type
307
- * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL,
308
- * must be 0 otherwise.
309
- */
310
- unsigned int output_gain_flags;
311
- /**
312
- * Output gain as defined in section 3.6.2 of IAMF.
313
- *
314
- * Must be 0 if @ref output_gain_flags is 0.
315
- */
316
- AVRational output_gain;
317
- /**
318
- * Ambisonics mode as defined in section 3.6.3 of IAMF.
319
- *
320
- * This field is defined only if @ref AVIAMFAudioElement.audio_element_type
321
- * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE.
322
- *
323
- * If AV_IAMF_AMBISONICS_MODE_MONO, channel_mapping is defined implicitly
324
- * (Ambisonic Order) or explicitly (Custom Order with ambi channels) in
325
- * @ref ch_layout.
326
- * If AV_IAMF_AMBISONICS_MODE_PROJECTION, @ref demixing_matrix must be set.
327
- */
328
- enum AVIAMFAmbisonicsMode ambisonics_mode;
329
-
330
- /**
331
- * Demixing matrix as defined in section 3.6.3 of IAMF.
332
- *
333
- * The length of the array is ch_layout.nb_channels multiplied by the sum of
334
- * the amount of streams in the group plus the amount of streams in the group
335
- * that are stereo.
336
- *
337
- * May be set only if @ref ambisonics_mode == AV_IAMF_AMBISONICS_MODE_PROJECTION,
338
- * must be NULL otherwise.
339
- */
340
- AVRational *demixing_matrix;
341
- } AVIAMFLayer;
342
-
343
-
344
- enum AVIAMFAudioElementType {
345
- AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL,
346
- AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE,
347
- };
348
-
349
- /**
350
- * Information on how to combine one or more audio streams, as defined in
351
- * section 3.6 of IAMF.
352
- *
353
- * @note The struct should be allocated with av_iamf_audio_element_alloc()
354
- * and its size is not a part of the public ABI.
355
- */
356
- typedef struct AVIAMFAudioElement {
357
- const AVClass *av_class;
358
-
359
- AVIAMFLayer **layers;
360
- /**
361
- * Number of layers, or channel groups, in the Audio Element.
362
- * There may be 6 layers at most, and for @ref audio_element_type
363
- * AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, there may be exactly 1.
364
- *
365
- * Set by av_iamf_audio_element_add_layer(), must not be
366
- * modified by any other code.
367
- */
368
- unsigned int nb_layers;
369
-
370
- /**
371
- * Demixing information used to reconstruct a scalable channel audio
372
- * representation.
373
- * The @ref AVIAMFParamDefinition.type "type" must be
374
- * AV_IAMF_PARAMETER_DEFINITION_DEMIXING.
375
- */
376
- AVIAMFParamDefinition *demixing_info;
377
- /**
378
- * Recon gain information used to reconstruct a scalable channel audio
379
- * representation.
380
- * The @ref AVIAMFParamDefinition.type "type" must be
381
- * AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN.
382
- */
383
- AVIAMFParamDefinition *recon_gain_info;
384
-
385
- /**
386
- * Audio element type as defined in section 3.6 of IAMF.
387
- */
388
- enum AVIAMFAudioElementType audio_element_type;
389
-
390
- /**
391
- * Default weight value as defined in section 3.6 of IAMF.
392
- */
393
- unsigned int default_w;
394
- } AVIAMFAudioElement;
395
-
396
- const AVClass *av_iamf_audio_element_get_class(void);
397
-
398
- /**
399
- * Allocates a AVIAMFAudioElement, and initializes its fields with default values.
400
- * No layers are allocated. Must be freed with av_iamf_audio_element_free().
401
- *
402
- * @see av_iamf_audio_element_add_layer()
403
- */
404
- AVIAMFAudioElement *av_iamf_audio_element_alloc(void);
405
-
406
- /**
407
- * Allocate a layer and add it to a given AVIAMFAudioElement.
408
- * It is freed by av_iamf_audio_element_free() alongside the rest of the parent
409
- * AVIAMFAudioElement.
410
- *
411
- * @return a pointer to the allocated layer.
412
- */
413
- AVIAMFLayer *av_iamf_audio_element_add_layer(AVIAMFAudioElement *audio_element);
414
-
415
- /**
416
- * Free an AVIAMFAudioElement and all its contents.
417
- *
418
- * @param audio_element pointer to pointer to an allocated AVIAMFAudioElement.
419
- * upon return, *audio_element will be set to NULL.
420
- */
421
- void av_iamf_audio_element_free(AVIAMFAudioElement **audio_element);
422
-
423
- /**
424
- * @}
425
- * @addtogroup lavu_iamf_mix
426
- * @{
427
- */
428
-
429
- enum AVIAMFHeadphonesMode {
430
- /**
431
- * The referenced Audio Element shall be rendered to stereo loudspeakers.
432
- */
433
- AV_IAMF_HEADPHONES_MODE_STEREO,
434
- /**
435
- * The referenced Audio Element shall be rendered with a binaural renderer.
436
- */
437
- AV_IAMF_HEADPHONES_MODE_BINAURAL,
438
- };
439
-
440
- /**
441
- * Submix element as defined in section 3.7 of IAMF.
442
- *
443
- * @note The struct should be allocated with av_iamf_submix_add_element()
444
- * and its size is not a part of the public ABI.
445
- */
446
- typedef struct AVIAMFSubmixElement {
447
- const AVClass *av_class;
448
-
449
- /**
450
- * The id of the Audio Element this submix element references.
451
- */
452
- unsigned int audio_element_id;
453
-
454
- /**
455
- * Information required required for applying any processing to the
456
- * referenced and rendered Audio Element before being summed with other
457
- * processed Audio Elements.
458
- * The @ref AVIAMFParamDefinition.type "type" must be
459
- * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN.
460
- */
461
- AVIAMFParamDefinition *element_mix_config;
462
-
463
- /**
464
- * Default mix gain value to apply when there are no AVIAMFParamDefinition
465
- * with @ref element_mix_config "element_mix_config's"
466
- * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a
467
- * given audio frame.
468
- */
469
- AVRational default_mix_gain;
470
-
471
- /**
472
- * A value that indicates whether the referenced channel-based Audio Element
473
- * shall be rendered to stereo loudspeakers or spatialized with a binaural
474
- * renderer when played back on headphones.
475
- * If the Audio Element is not of @ref AVIAMFAudioElement.audio_element_type
476
- * "type" AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, then this field is undefined.
477
- */
478
- enum AVIAMFHeadphonesMode headphones_rendering_mode;
479
-
480
- /**
481
- * A dictionary of strings describing the submix in different languages.
482
- * Must have the same amount of entries as
483
- * @ref AVIAMFMixPresentation.annotations "the mix's annotations", stored
484
- * in the same order, and with the same key strings.
485
- *
486
- * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47 that
487
- * specifies the language for the string stored in
488
- * @ref AVDictionaryEntry.value "value".
489
- */
490
- AVDictionary *annotations;
491
- } AVIAMFSubmixElement;
492
-
493
- enum AVIAMFSubmixLayoutType {
494
- /**
495
- * The layout follows the loudspeaker sound system convention of ITU-2051-3.
496
- */
497
- AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS = 2,
498
- /**
499
- * The layout is binaural.
500
- */
501
- AV_IAMF_SUBMIX_LAYOUT_TYPE_BINAURAL = 3,
502
- };
503
-
504
- /**
505
- * Submix layout as defined in section 3.7.6 of IAMF.
506
- *
507
- * @note The struct should be allocated with av_iamf_submix_add_layout()
508
- * and its size is not a part of the public ABI.
509
- */
510
- typedef struct AVIAMFSubmixLayout {
511
- const AVClass *av_class;
512
-
513
- enum AVIAMFSubmixLayoutType layout_type;
514
-
515
- /**
516
- * Channel layout matching one of Sound Systems A to J of ITU-2051-3, plus
517
- * 7.1.2ch and 3.1.2ch
518
- * If layout_type is not AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS, this field
519
- * is undefined.
520
- */
521
- AVChannelLayout sound_system;
522
- /**
523
- * The program integrated loudness information, as defined in
524
- * ITU-1770-4.
525
- */
526
- AVRational integrated_loudness;
527
- /**
528
- * The digital (sampled) peak value of the audio signal, as defined
529
- * in ITU-1770-4.
530
- */
531
- AVRational digital_peak;
532
- /**
533
- * The true peak of the audio signal, as defined in ITU-1770-4.
534
- */
535
- AVRational true_peak;
536
- /**
537
- * The Dialogue loudness information, as defined in ITU-1770-4.
538
- */
539
- AVRational dialogue_anchored_loudness;
540
- /**
541
- * The Album loudness information, as defined in ITU-1770-4.
542
- */
543
- AVRational album_anchored_loudness;
544
- } AVIAMFSubmixLayout;
545
-
546
- /**
547
- * Submix layout as defined in section 3.7 of IAMF.
548
- *
549
- * @note The struct should be allocated with av_iamf_mix_presentation_add_submix()
550
- * and its size is not a part of the public ABI.
551
- */
552
- typedef struct AVIAMFSubmix {
553
- const AVClass *av_class;
554
-
555
- /**
556
- * Array of submix elements.
557
- *
558
- * Set by av_iamf_submix_add_element(), must not be modified by any
559
- * other code.
560
- */
561
- AVIAMFSubmixElement **elements;
562
- /**
563
- * Number of elements in the submix.
564
- *
565
- * Set by av_iamf_submix_add_element(), must not be modified by any
566
- * other code.
567
- */
568
- unsigned int nb_elements;
569
-
570
- /**
571
- * Array of submix layouts.
572
- *
573
- * Set by av_iamf_submix_add_layout(), must not be modified by any
574
- * other code.
575
- */
576
- AVIAMFSubmixLayout **layouts;
577
- /**
578
- * Number of layouts in the submix.
579
- *
580
- * Set by av_iamf_submix_add_layout(), must not be modified by any
581
- * other code.
582
- */
583
- unsigned int nb_layouts;
584
-
585
- /**
586
- * Information required for post-processing the mixed audio signal to
587
- * generate the audio signal for playback.
588
- * The @ref AVIAMFParamDefinition.type "type" must be
589
- * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN.
590
- */
591
- AVIAMFParamDefinition *output_mix_config;
592
-
593
- /**
594
- * Default mix gain value to apply when there are no AVIAMFParamDefinition
595
- * with @ref output_mix_config "output_mix_config's"
596
- * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a
597
- * given audio frame.
598
- */
599
- AVRational default_mix_gain;
600
- } AVIAMFSubmix;
601
-
602
- /**
603
- * Information on how to render and mix one or more AVIAMFAudioElement to generate
604
- * the final audio output, as defined in section 3.7 of IAMF.
605
- *
606
- * @note The struct should be allocated with av_iamf_mix_presentation_alloc()
607
- * and its size is not a part of the public ABI.
608
- */
609
- typedef struct AVIAMFMixPresentation {
610
- const AVClass *av_class;
611
-
612
- /**
613
- * Array of submixes.
614
- *
615
- * Set by av_iamf_mix_presentation_add_submix(), must not be modified
616
- * by any other code.
617
- */
618
- AVIAMFSubmix **submixes;
619
- /**
620
- * Number of submixes in the presentation.
621
- *
622
- * Set by av_iamf_mix_presentation_add_submix(), must not be modified
623
- * by any other code.
624
- */
625
- unsigned int nb_submixes;
626
-
627
- /**
628
- * A dictionary of strings describing the mix in different languages.
629
- * Must have the same amount of entries as every
630
- * @ref AVIAMFSubmixElement.annotations "Submix element annotations",
631
- * stored in the same order, and with the same key strings.
632
- *
633
- * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47
634
- * that specifies the language for the string stored in
635
- * @ref AVDictionaryEntry.value "value".
636
- */
637
- AVDictionary *annotations;
638
- } AVIAMFMixPresentation;
639
-
640
- const AVClass *av_iamf_mix_presentation_get_class(void);
641
-
642
- /**
643
- * Allocates a AVIAMFMixPresentation, and initializes its fields with default
644
- * values. No submixes are allocated.
645
- * Must be freed with av_iamf_mix_presentation_free().
646
- *
647
- * @see av_iamf_mix_presentation_add_submix()
648
- */
649
- AVIAMFMixPresentation *av_iamf_mix_presentation_alloc(void);
650
-
651
- /**
652
- * Allocate a submix and add it to a given AVIAMFMixPresentation.
653
- * It is freed by av_iamf_mix_presentation_free() alongside the rest of the
654
- * parent AVIAMFMixPresentation.
655
- *
656
- * @return a pointer to the allocated submix.
657
- */
658
- AVIAMFSubmix *av_iamf_mix_presentation_add_submix(AVIAMFMixPresentation *mix_presentation);
659
-
660
- /**
661
- * Allocate a submix element and add it to a given AVIAMFSubmix.
662
- * It is freed by av_iamf_mix_presentation_free() alongside the rest of the
663
- * parent AVIAMFSubmix.
664
- *
665
- * @return a pointer to the allocated submix.
666
- */
667
- AVIAMFSubmixElement *av_iamf_submix_add_element(AVIAMFSubmix *submix);
668
-
669
- /**
670
- * Allocate a submix layout and add it to a given AVIAMFSubmix.
671
- * It is freed by av_iamf_mix_presentation_free() alongside the rest of the
672
- * parent AVIAMFSubmix.
673
- *
674
- * @return a pointer to the allocated submix.
675
- */
676
- AVIAMFSubmixLayout *av_iamf_submix_add_layout(AVIAMFSubmix *submix);
677
-
678
- /**
679
- * Free an AVIAMFMixPresentation and all its contents.
680
- *
681
- * @param mix_presentation pointer to pointer to an allocated AVIAMFMixPresentation.
682
- * upon return, *mix_presentation will be set to NULL.
683
- */
684
- void av_iamf_mix_presentation_free(AVIAMFMixPresentation **mix_presentation);
685
-
686
- /**
687
- * @}
688
- */
689
-
690
- #endif /* AVUTIL_IAMF_H */