@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,435 @@
1
+ /********************************************************************
2
+ * *
3
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7
+ * *
8
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
9
+ * by the Xiph.Org Foundation https://xiph.org/ *
10
+ * *
11
+ ********************************************************************
12
+
13
+ function: vorbis encode-engine setup
14
+
15
+ ********************************************************************/
16
+
17
+ /** \file
18
+ * Libvorbisenc is a convenient API for setting up an encoding
19
+ * environment using libvorbis. Libvorbisenc encapsulates the
20
+ * actions needed to set up the encoder properly.
21
+ */
22
+
23
+ #ifndef _OV_ENC_H_
24
+ #define _OV_ENC_H_
25
+
26
+ #ifdef __cplusplus
27
+ extern "C"
28
+ {
29
+ #endif /* __cplusplus */
30
+
31
+ #include "codec.h"
32
+
33
+ /**
34
+ * This is the primary function within libvorbisenc for setting up managed
35
+ * bitrate modes.
36
+ *
37
+ * Before this function is called, the \ref vorbis_info
38
+ * struct should be initialized by using vorbis_info_init() from the libvorbis
39
+ * API. After encoding, vorbis_info_clear() should be called.
40
+ *
41
+ * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
42
+ * constraints for the encoded file. This function uses these settings to
43
+ * select the appropriate encoding mode and set it up.
44
+ *
45
+ * \param vi Pointer to an initialized \ref vorbis_info struct.
46
+ * \param channels The number of channels to be encoded.
47
+ * \param rate The sampling rate of the source audio.
48
+ * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
49
+ * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
50
+ * \param min_bitrate Desired minimum bitrate. -1 indicates unset.
51
+ *
52
+ * \return Zero for success, and negative values for failure.
53
+ *
54
+ * \retval 0 Success.
55
+ * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
56
+ * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
57
+ * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
58
+ */
59
+ extern int vorbis_encode_init(vorbis_info *vi,
60
+ long channels,
61
+ long rate,
62
+
63
+ long max_bitrate,
64
+ long nominal_bitrate,
65
+ long min_bitrate);
66
+
67
+ /**
68
+ * This function performs step-one of a three-step bitrate-managed encode
69
+ * setup. It functions similarly to the one-step setup performed by \ref
70
+ * vorbis_encode_init but allows an application to make further encode setup
71
+ * tweaks using \ref vorbis_encode_ctl before finally calling \ref
72
+ * vorbis_encode_setup_init to complete the setup process.
73
+ *
74
+ * Before this function is called, the \ref vorbis_info struct should be
75
+ * initialized by using vorbis_info_init() from the libvorbis API. After
76
+ * encoding, vorbis_info_clear() should be called.
77
+ *
78
+ * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
79
+ * constraints for the encoded file. This function uses these settings to
80
+ * select the appropriate encoding mode and set it up.
81
+ *
82
+ * \param vi Pointer to an initialized vorbis_info struct.
83
+ * \param channels The number of channels to be encoded.
84
+ * \param rate The sampling rate of the source audio.
85
+ * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
86
+ * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
87
+ * \param min_bitrate Desired minimum bitrate. -1 indicates unset.
88
+ *
89
+ * \return Zero for success, and negative for failure.
90
+ *
91
+ * \retval 0 Success
92
+ * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
93
+ * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
94
+ * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
95
+ */
96
+ extern int vorbis_encode_setup_managed(vorbis_info *vi,
97
+ long channels,
98
+ long rate,
99
+
100
+ long max_bitrate,
101
+ long nominal_bitrate,
102
+ long min_bitrate);
103
+
104
+ /**
105
+ * This function performs step-one of a three-step variable bitrate
106
+ * (quality-based) encode setup. It functions similarly to the one-step setup
107
+ * performed by \ref vorbis_encode_init_vbr() but allows an application to
108
+ * make further encode setup tweaks using \ref vorbis_encode_ctl() before
109
+ * finally calling \ref vorbis_encode_setup_init to complete the setup
110
+ * process.
111
+ *
112
+ * Before this function is called, the \ref vorbis_info struct should be
113
+ * initialized by using \ref vorbis_info_init() from the libvorbis API. After
114
+ * encoding, vorbis_info_clear() should be called.
115
+ *
116
+ * \param vi Pointer to an initialized vorbis_info struct.
117
+ * \param channels The number of channels to be encoded.
118
+ * \param rate The sampling rate of the source audio.
119
+ * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
120
+ *
121
+ * \return Zero for success, and negative values for failure.
122
+ *
123
+ * \retval 0 Success
124
+ * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
125
+ * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
126
+ * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
127
+ */
128
+ extern int vorbis_encode_setup_vbr(vorbis_info *vi,
129
+ long channels,
130
+ long rate,
131
+
132
+ float quality
133
+ );
134
+
135
+ /**
136
+ * This is the primary function within libvorbisenc for setting up variable
137
+ * bitrate ("quality" based) modes.
138
+ *
139
+ *
140
+ * Before this function is called, the vorbis_info struct should be
141
+ * initialized by using vorbis_info_init() from the libvorbis API. After
142
+ * encoding, vorbis_info_clear() should be called.
143
+ *
144
+ * \param vi Pointer to an initialized vorbis_info struct.
145
+ * \param channels The number of channels to be encoded.
146
+ * \param rate The sampling rate of the source audio.
147
+ * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
148
+ *
149
+ *
150
+ * \return Zero for success, or a negative number for failure.
151
+ *
152
+ * \retval 0 Success
153
+ * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
154
+ * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
155
+ * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
156
+ */
157
+ extern int vorbis_encode_init_vbr(vorbis_info *vi,
158
+ long channels,
159
+ long rate,
160
+
161
+ float base_quality
162
+ );
163
+
164
+ /**
165
+ * This function performs the last stage of three-step encoding setup, as
166
+ * described in the API overview under managed bitrate modes.
167
+ *
168
+ * Before this function is called, the \ref vorbis_info struct should be
169
+ * initialized by using vorbis_info_init() from the libvorbis API, one of
170
+ * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to
171
+ * initialize the high-level encoding setup, and \ref vorbis_encode_ctl()
172
+ * called if necessary to make encoding setup changes.
173
+ * vorbis_encode_setup_init() finalizes the highlevel encoding structure into
174
+ * a complete encoding setup after which the application may make no further
175
+ * setup changes.
176
+ *
177
+ * After encoding, vorbis_info_clear() should be called.
178
+ *
179
+ * \param vi Pointer to an initialized \ref vorbis_info struct.
180
+ *
181
+ * \return Zero for success, and negative values for failure.
182
+ *
183
+ * \retval 0 Success.
184
+ * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
185
+ *
186
+ * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first
187
+ * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to
188
+ * initialize the high-level encoding setup
189
+ *
190
+ */
191
+ extern int vorbis_encode_setup_init(vorbis_info *vi);
192
+
193
+ /**
194
+ * This function implements a generic interface to miscellaneous encoder
195
+ * settings similar to the classic UNIX 'ioctl()' system call. Applications
196
+ * may use vorbis_encode_ctl() to query or set bitrate management or quality
197
+ * mode details by using one of several \e request arguments detailed below.
198
+ * vorbis_encode_ctl() must be called after one of
199
+ * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used
200
+ * to modify settings, \ref vorbis_encode_ctl() must be called before \ref
201
+ * vorbis_encode_setup_init().
202
+ *
203
+ * \param vi Pointer to an initialized vorbis_info struct.
204
+ *
205
+ * \param number Specifies the desired action; See \ref encctlcodes "the list
206
+ * of available requests".
207
+ *
208
+ * \param arg void * pointing to a data structure matching the request
209
+ * argument.
210
+ *
211
+ * \retval 0 Success. Any further return information (such as the result of a
212
+ * query) is placed into the storage pointed to by *arg.
213
+ *
214
+ * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after
215
+ * calling vorbis_encode_setup_init().
216
+ *
217
+ * \retval OV_EIMPL Unimplemented or unknown request
218
+ */
219
+ extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
220
+
221
+ /**
222
+ * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl()
223
+ * with the \ref ovectl_ratemanage2_arg struct and \ref
224
+ * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code.
225
+ *
226
+ * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl()
227
+ * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref
228
+ * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to
229
+ * query and modify specifics of the encoder's bitrate management
230
+ * configuration.
231
+ */
232
+ struct ovectl_ratemanage_arg {
233
+ int management_active; /**< nonzero if bitrate management is active*/
234
+ /** hard lower limit (in kilobits per second) below which the stream bitrate
235
+ will never be allowed for any given bitrate_hard_window seconds of time.*/
236
+ long bitrate_hard_min;
237
+ /** hard upper limit (in kilobits per second) above which the stream bitrate
238
+ will never be allowed for any given bitrate_hard_window seconds of time.*/
239
+ long bitrate_hard_max;
240
+ /** the window period (in seconds) used to regulate the hard bitrate minimum
241
+ and maximum*/
242
+ double bitrate_hard_window;
243
+ /** soft lower limit (in kilobits per second) below which the average bitrate
244
+ tracker will start nudging the bitrate higher.*/
245
+ long bitrate_av_lo;
246
+ /** soft upper limit (in kilobits per second) above which the average bitrate
247
+ tracker will start nudging the bitrate lower.*/
248
+ long bitrate_av_hi;
249
+ /** the window period (in seconds) used to regulate the average bitrate
250
+ minimum and maximum.*/
251
+ double bitrate_av_window;
252
+ /** Regulates the relative centering of the average and hard windows; in
253
+ libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but
254
+ followed the average window regulation. In libvorbis 1.1 a bit-reservoir
255
+ interface replaces the old windowing interface; the older windowing
256
+ interface is simulated and this field has no effect.*/
257
+ double bitrate_av_window_center;
258
+ };
259
+
260
+ /**
261
+ * \name struct ovectl_ratemanage2_arg
262
+ *
263
+ * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and
264
+ * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to
265
+ * query and modify specifics of the encoder's bitrate management
266
+ * configuration.
267
+ *
268
+ */
269
+ struct ovectl_ratemanage2_arg {
270
+ int management_active; /**< nonzero if bitrate management is active */
271
+ /** Lower allowed bitrate limit in kilobits per second */
272
+ long bitrate_limit_min_kbps;
273
+ /** Upper allowed bitrate limit in kilobits per second */
274
+ long bitrate_limit_max_kbps;
275
+ long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */
276
+ /** Regulates the bitrate reservoir's preferred fill level in a range from 0.0
277
+ * to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0
278
+ * buffers against future sudden drops in instantaneous bitrate. Default is
279
+ * 0.1
280
+ */
281
+ double bitrate_limit_reservoir_bias;
282
+ /** Average bitrate setting in kilobits per second */
283
+ long bitrate_average_kbps;
284
+ /** Slew rate limit setting for average bitrate adjustment; sets the minimum
285
+ * time in seconds the bitrate tracker may swing from one extreme to the
286
+ * other when boosting or damping average bitrate.
287
+ */
288
+ double bitrate_average_damping;
289
+ };
290
+
291
+
292
+ /**
293
+ * \name vorbis_encode_ctl() codes
294
+ *
295
+ * \anchor encctlcodes
296
+ *
297
+ * These values are passed as the \c number parameter of vorbis_encode_ctl().
298
+ * The type of the referent of that function's \c arg pointer depends on these
299
+ * codes.
300
+ */
301
+ /*@{*/
302
+
303
+ /**
304
+ * Query the current encoder bitrate management setting.
305
+ *
306
+ *Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
307
+ *
308
+ * Used to query the current encoder bitrate management setting. Also used to
309
+ * initialize fields of an ovectl_ratemanage2_arg structure for use with
310
+ * \ref OV_ECTL_RATEMANAGE2_SET.
311
+ */
312
+ #define OV_ECTL_RATEMANAGE2_GET 0x14
313
+
314
+ /**
315
+ * Set the current encoder bitrate management settings.
316
+ *
317
+ * Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
318
+ *
319
+ * Used to set the current encoder bitrate management settings to the values
320
+ * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable
321
+ * bitrate management.
322
+ */
323
+ #define OV_ECTL_RATEMANAGE2_SET 0x15
324
+
325
+ /**
326
+ * Returns the current encoder hard-lowpass setting (kHz) in the double
327
+ * pointed to by arg.
328
+ *
329
+ * Argument: <tt>double *</tt>
330
+ */
331
+ #define OV_ECTL_LOWPASS_GET 0x20
332
+
333
+ /**
334
+ * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid
335
+ * lowpass settings range from 2 to 99.
336
+ *
337
+ * Argument: <tt>double *</tt>
338
+ */
339
+ #define OV_ECTL_LOWPASS_SET 0x21
340
+
341
+ /**
342
+ * Returns the current encoder impulse block setting in the double pointed
343
+ * to by arg.
344
+ *
345
+ * Argument: <tt>double *</tt>
346
+ */
347
+ #define OV_ECTL_IBLOCK_GET 0x30
348
+
349
+ /**
350
+ * Sets the impulse block bias to the the value pointed to by arg.
351
+ *
352
+ * Argument: <tt>double *</tt>
353
+ *
354
+ * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will
355
+ * direct to encoder to use more bits when incoding short blocks that contain
356
+ * strong impulses, thus improving the accuracy of impulse encoding.
357
+ */
358
+ #define OV_ECTL_IBLOCK_SET 0x31
359
+
360
+ /**
361
+ * Returns the current encoder coupling setting in the int pointed
362
+ * to by arg.
363
+ *
364
+ * Argument: <tt>int *</tt>
365
+ */
366
+ #define OV_ECTL_COUPLING_GET 0x40
367
+
368
+ /**
369
+ * Enables/disables channel coupling in multichannel encoding according to arg.
370
+ *
371
+ * Argument: <tt>int *</tt>
372
+ *
373
+ * Zero disables channel coupling for multichannel inputs, nonzer enables
374
+ * channel coupling. Setting has no effect on monophonic encoding or
375
+ * multichannel counts that do not offer coupling. At present, coupling is
376
+ * available for stereo and 5.1 encoding.
377
+ */
378
+ #define OV_ECTL_COUPLING_SET 0x41
379
+
380
+ /* deprecated rate management supported only for compatibility */
381
+
382
+ /**
383
+ * Old interface to querying bitrate management settings.
384
+ *
385
+ * Deprecated after move to bit-reservoir style management in 1.1 rendered
386
+ * this interface partially obsolete.
387
+
388
+ * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead.
389
+ *
390
+ * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
391
+ */
392
+ #define OV_ECTL_RATEMANAGE_GET 0x10
393
+ /**
394
+ * Old interface to modifying bitrate management settings.
395
+ *
396
+ * deprecated after move to bit-reservoir style management in 1.1 rendered
397
+ * this interface partially obsolete.
398
+ *
399
+ * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
400
+ *
401
+ * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
402
+ */
403
+ #define OV_ECTL_RATEMANAGE_SET 0x11
404
+ /**
405
+ * Old interface to setting average-bitrate encoding mode.
406
+ *
407
+ * Deprecated after move to bit-reservoir style management in 1.1 rendered
408
+ * this interface partially obsolete.
409
+ *
410
+ * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
411
+ *
412
+ * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
413
+ */
414
+ #define OV_ECTL_RATEMANAGE_AVG 0x12
415
+ /**
416
+ * Old interface to setting bounded-bitrate encoding modes.
417
+ *
418
+ * deprecated after move to bit-reservoir style management in 1.1 rendered
419
+ * this interface partially obsolete.
420
+ *
421
+ * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
422
+ *
423
+ * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
424
+ */
425
+ #define OV_ECTL_RATEMANAGE_HARD 0x13
426
+
427
+ /*@}*/
428
+
429
+
430
+
431
+ #ifdef __cplusplus
432
+ }
433
+ #endif /* __cplusplus */
434
+
435
+ #endif
@@ -0,0 +1,205 @@
1
+ /********************************************************************
2
+ * *
3
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7
+ * *
8
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
9
+ * by the Xiph.Org Foundation https://xiph.org/ *
10
+ * *
11
+ ********************************************************************
12
+
13
+ function: stdio-based convenience library for opening/seeking/decoding
14
+
15
+ ********************************************************************/
16
+
17
+ #ifndef _OV_FILE_H_
18
+ #define _OV_FILE_H_
19
+
20
+ #ifdef __cplusplus
21
+ extern "C"
22
+ {
23
+ #endif /* __cplusplus */
24
+
25
+ #include <stdio.h>
26
+ #include "codec.h"
27
+
28
+ /* The function prototypes for the callbacks are basically the same as for
29
+ * the stdio functions fread, fseek, fclose, ftell.
30
+ * The one difference is that the FILE * arguments have been replaced with
31
+ * a void * - this is to be used as a pointer to whatever internal data these
32
+ * functions might need. In the stdio case, it's just a FILE * cast to a void *
33
+ *
34
+ * If you use other functions, check the docs for these functions and return
35
+ * the right values. For seek_func(), you *MUST* return -1 if the stream is
36
+ * unseekable
37
+ */
38
+ typedef struct {
39
+ size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource);
40
+ int (*seek_func) (void *datasource, ogg_int64_t offset, int whence);
41
+ int (*close_func) (void *datasource);
42
+ long (*tell_func) (void *datasource);
43
+ } ov_callbacks;
44
+
45
+ #ifndef OV_EXCLUDE_STATIC_CALLBACKS
46
+
47
+ /* a few sets of convenient callbacks, especially for use under
48
+ * Windows where ov_open_callbacks() should always be used instead of
49
+ * ov_open() to avoid problems with incompatible crt.o version linking
50
+ * issues. */
51
+
52
+ static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){
53
+ if(f==NULL)return(-1);
54
+
55
+ #ifdef __MINGW32__
56
+ return fseeko64(f,off,whence);
57
+ #elif defined (_WIN32)
58
+ return _fseeki64(f,off,whence);
59
+ #else
60
+ return fseek(f,off,whence);
61
+ #endif
62
+ }
63
+
64
+ /* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as
65
+ * static data. That means that every file which includes this header
66
+ * will get its own copy of these structs whether it uses them or
67
+ * not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS.
68
+ * These static symbols are essential on platforms such as Windows on
69
+ * which several different versions of stdio support may be linked to
70
+ * by different DLLs, and we need to be certain we know which one
71
+ * we're using (the same one as the main application).
72
+ */
73
+
74
+ static ov_callbacks OV_CALLBACKS_DEFAULT = {
75
+ (size_t (*)(void *, size_t, size_t, void *)) fread,
76
+ (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
77
+ (int (*)(void *)) fclose,
78
+ (long (*)(void *)) ftell
79
+ };
80
+
81
+ static ov_callbacks OV_CALLBACKS_NOCLOSE = {
82
+ (size_t (*)(void *, size_t, size_t, void *)) fread,
83
+ (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
84
+ (int (*)(void *)) NULL,
85
+ (long (*)(void *)) ftell
86
+ };
87
+
88
+ static ov_callbacks OV_CALLBACKS_STREAMONLY = {
89
+ (size_t (*)(void *, size_t, size_t, void *)) fread,
90
+ (int (*)(void *, ogg_int64_t, int)) NULL,
91
+ (int (*)(void *)) fclose,
92
+ (long (*)(void *)) NULL
93
+ };
94
+
95
+ static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = {
96
+ (size_t (*)(void *, size_t, size_t, void *)) fread,
97
+ (int (*)(void *, ogg_int64_t, int)) NULL,
98
+ (int (*)(void *)) NULL,
99
+ (long (*)(void *)) NULL
100
+ };
101
+
102
+ #endif
103
+
104
+ #define NOTOPEN 0
105
+ #define PARTOPEN 1
106
+ #define OPENED 2
107
+ #define STREAMSET 3
108
+ #define INITSET 4
109
+
110
+ typedef struct OggVorbis_File {
111
+ void *datasource; /* Pointer to a FILE *, etc. */
112
+ int seekable;
113
+ ogg_int64_t offset;
114
+ ogg_int64_t end;
115
+ ogg_sync_state oy;
116
+
117
+ /* If the FILE handle isn't seekable (eg, a pipe), only the current
118
+ stream appears */
119
+ int links;
120
+ ogg_int64_t *offsets;
121
+ ogg_int64_t *dataoffsets;
122
+ long *serialnos;
123
+ ogg_int64_t *pcmlengths; /* overloaded to maintain binary
124
+ compatibility; x2 size, stores both
125
+ beginning and end values */
126
+ vorbis_info *vi;
127
+ vorbis_comment *vc;
128
+
129
+ /* Decoding working state local storage */
130
+ ogg_int64_t pcm_offset;
131
+ int ready_state;
132
+ long current_serialno;
133
+ int current_link;
134
+
135
+ double bittrack;
136
+ double samptrack;
137
+
138
+ ogg_stream_state os; /* take physical pages, weld into a logical
139
+ stream of packets */
140
+ vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
141
+ vorbis_block vb; /* local working space for packet->PCM decode */
142
+
143
+ ov_callbacks callbacks;
144
+
145
+ } OggVorbis_File;
146
+
147
+
148
+ extern int ov_clear(OggVorbis_File *vf);
149
+ extern int ov_fopen(const char *path,OggVorbis_File *vf);
150
+ extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
151
+ extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf,
152
+ const char *initial, long ibytes, ov_callbacks callbacks);
153
+
154
+ extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
155
+ extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf,
156
+ const char *initial, long ibytes, ov_callbacks callbacks);
157
+ extern int ov_test_open(OggVorbis_File *vf);
158
+
159
+ extern long ov_bitrate(OggVorbis_File *vf,int i);
160
+ extern long ov_bitrate_instant(OggVorbis_File *vf);
161
+ extern long ov_streams(OggVorbis_File *vf);
162
+ extern long ov_seekable(OggVorbis_File *vf);
163
+ extern long ov_serialnumber(OggVorbis_File *vf,int i);
164
+
165
+ extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
166
+ extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
167
+ extern double ov_time_total(OggVorbis_File *vf,int i);
168
+
169
+ extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos);
170
+ extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
171
+ extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
172
+ extern int ov_time_seek(OggVorbis_File *vf,double pos);
173
+ extern int ov_time_seek_page(OggVorbis_File *vf,double pos);
174
+
175
+ extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
176
+ extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
177
+ extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos);
178
+ extern int ov_time_seek_lap(OggVorbis_File *vf,double pos);
179
+ extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos);
180
+
181
+ extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
182
+ extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
183
+ extern double ov_time_tell(OggVorbis_File *vf);
184
+
185
+ extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
186
+ extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
187
+
188
+ extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples,
189
+ int *bitstream);
190
+ extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
191
+ int bigendianp,int word,int sgned,int *bitstream,
192
+ void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param);
193
+ extern long ov_read(OggVorbis_File *vf,char *buffer,int length,
194
+ int bigendianp,int word,int sgned,int *bitstream);
195
+ extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2);
196
+
197
+ extern int ov_halfrate(OggVorbis_File *vf,int flag);
198
+ extern int ov_halfrate_p(OggVorbis_File *vf);
199
+
200
+ #ifdef __cplusplus
201
+ }
202
+ #endif /* __cplusplus */
203
+
204
+ #endif
205
+