@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,88 +0,0 @@
1
- /*
2
- * This file is part of FFmpeg.
3
- *
4
- * FFmpeg is free software; you can redistribute it and/or
5
- * modify it under the terms of the GNU Lesser General Public
6
- * License as published by the Free Software Foundation; either
7
- * version 2.1 of the License, or (at your option) any later version.
8
- *
9
- * FFmpeg is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- * Lesser General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Lesser General Public
15
- * License along with FFmpeg; if not, write to the Free Software
16
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
- */
18
-
19
- #ifndef AVCODEC_AVDCT_H
20
- #define AVCODEC_AVDCT_H
21
-
22
- #include "libavutil/opt.h"
23
-
24
- /**
25
- * AVDCT context.
26
- * @note function pointers can be NULL if the specific features have been
27
- * disabled at build time.
28
- */
29
- typedef struct AVDCT {
30
- const AVClass *av_class;
31
-
32
- void (*idct)(int16_t *block /* align 16 */);
33
-
34
- /**
35
- * IDCT input permutation.
36
- * Several optimized IDCTs need a permutated input (relative to the
37
- * normal order of the reference IDCT).
38
- * This permutation must be performed before the idct_put/add.
39
- * Note, normally this can be merged with the zigzag/alternate scan<br>
40
- * An example to avoid confusion:
41
- * - (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...)
42
- * - (x -> reference DCT -> reference IDCT -> x)
43
- * - (x -> reference DCT -> simple_mmx_perm = idct_permutation
44
- * -> simple_idct_mmx -> x)
45
- * - (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant
46
- * -> simple_idct_mmx -> ...)
47
- */
48
- uint8_t idct_permutation[64];
49
-
50
- void (*fdct)(int16_t *block /* align 16 */);
51
-
52
-
53
- /**
54
- * DCT algorithm.
55
- * must use AVOptions to set this field.
56
- */
57
- int dct_algo;
58
-
59
- /**
60
- * IDCT algorithm.
61
- * must use AVOptions to set this field.
62
- */
63
- int idct_algo;
64
-
65
- void (*get_pixels)(int16_t *block /* align 16 */,
66
- const uint8_t *pixels /* align 8 */,
67
- ptrdiff_t line_size);
68
-
69
- int bits_per_sample;
70
-
71
- void (*get_pixels_unaligned)(int16_t *block /* align 16 */,
72
- const uint8_t *pixels,
73
- ptrdiff_t line_size);
74
- } AVDCT;
75
-
76
- /**
77
- * Allocates a AVDCT context.
78
- * This needs to be initialized with avcodec_dct_init() after optionally
79
- * configuring it with AVOptions.
80
- *
81
- * To free it use av_free()
82
- */
83
- AVDCT *avcodec_dct_alloc(void);
84
- int avcodec_dct_init(AVDCT *);
85
-
86
- const AVClass *avcodec_dct_get_class(void);
87
-
88
- #endif /* AVCODEC_AVDCT_H */
@@ -1,149 +0,0 @@
1
- /*
2
- * This file is part of FFmpeg.
3
- *
4
- * FFmpeg is free software; you can redistribute it and/or
5
- * modify it under the terms of the GNU Lesser General Public
6
- * License as published by the Free Software Foundation; either
7
- * version 2.1 of the License, or (at your option) any later version.
8
- *
9
- * FFmpeg is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- * Lesser General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Lesser General Public
15
- * License along with FFmpeg; if not, write to the Free Software
16
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
- */
18
-
19
- #ifndef AVCODEC_AVFFT_H
20
- #define AVCODEC_AVFFT_H
21
-
22
- #include "libavutil/attributes.h"
23
- #include "version_major.h"
24
- #if FF_API_AVFFT
25
-
26
- /**
27
- * @file
28
- * @ingroup lavc_fft
29
- * FFT functions
30
- */
31
-
32
- /**
33
- * @defgroup lavc_fft FFT functions
34
- * @ingroup lavc_misc
35
- *
36
- * @{
37
- */
38
-
39
- typedef float FFTSample;
40
-
41
- typedef struct FFTComplex {
42
- FFTSample re, im;
43
- } FFTComplex;
44
-
45
- typedef struct FFTContext FFTContext;
46
-
47
- /**
48
- * Set up a complex FFT.
49
- * @param nbits log2 of the length of the input array
50
- * @param inverse if 0 perform the forward transform, if 1 perform the inverse
51
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT
52
- */
53
- attribute_deprecated
54
- FFTContext *av_fft_init(int nbits, int inverse);
55
-
56
- /**
57
- * Do the permutation needed BEFORE calling ff_fft_calc().
58
- * @deprecated without replacement
59
- */
60
- attribute_deprecated
61
- void av_fft_permute(FFTContext *s, FFTComplex *z);
62
-
63
- /**
64
- * Do a complex FFT with the parameters defined in av_fft_init(). The
65
- * input data must be permuted before. No 1.0/sqrt(n) normalization is done.
66
- * @deprecated use the av_tx_fn value returned by av_tx_init, which also does permutation
67
- */
68
- attribute_deprecated
69
- void av_fft_calc(FFTContext *s, FFTComplex *z);
70
-
71
- attribute_deprecated
72
- void av_fft_end(FFTContext *s);
73
-
74
- /**
75
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT,
76
- * with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc.
77
- */
78
- attribute_deprecated
79
- FFTContext *av_mdct_init(int nbits, int inverse, double scale);
80
- attribute_deprecated
81
- void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
82
- attribute_deprecated
83
- void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input);
84
- attribute_deprecated
85
- void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
86
- attribute_deprecated
87
- void av_mdct_end(FFTContext *s);
88
-
89
- /* Real Discrete Fourier Transform */
90
-
91
- enum RDFTransformType {
92
- DFT_R2C,
93
- IDFT_C2R,
94
- IDFT_R2C,
95
- DFT_C2R,
96
- };
97
-
98
- typedef struct RDFTContext RDFTContext;
99
-
100
- /**
101
- * Set up a real FFT.
102
- * @param nbits log2 of the length of the input array
103
- * @param trans the type of transform
104
- *
105
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT
106
- */
107
- attribute_deprecated
108
- RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans);
109
- attribute_deprecated
110
- void av_rdft_calc(RDFTContext *s, FFTSample *data);
111
- attribute_deprecated
112
- void av_rdft_end(RDFTContext *s);
113
-
114
- /* Discrete Cosine Transform */
115
-
116
- typedef struct DCTContext DCTContext;
117
-
118
- enum DCTTransformType {
119
- DCT_II = 0,
120
- DCT_III,
121
- DCT_I,
122
- DST_I,
123
- };
124
-
125
- /**
126
- * Set up DCT.
127
- *
128
- * @param nbits size of the input array:
129
- * (1 << nbits) for DCT-II, DCT-III and DST-I
130
- * (1 << nbits) + 1 for DCT-I
131
- * @param type the type of transform
132
- *
133
- * @note the first element of the input of DST-I is ignored
134
- *
135
- * @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT
136
- */
137
- attribute_deprecated
138
- DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
139
- attribute_deprecated
140
- void av_dct_calc(DCTContext *s, FFTSample *data);
141
- attribute_deprecated
142
- void av_dct_end (DCTContext *s);
143
-
144
- /**
145
- * @}
146
- */
147
-
148
- #endif /* FF_API_AVFFT */
149
- #endif /* AVCODEC_AVFFT_H */
@@ -1,332 +0,0 @@
1
- /*
2
- * Bitstream filters 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_BSF_H
22
- #define AVCODEC_BSF_H
23
-
24
- #include "libavutil/dict.h"
25
- #include "libavutil/log.h"
26
- #include "libavutil/rational.h"
27
-
28
- #include "codec_id.h"
29
- #include "codec_par.h"
30
- #include "packet.h"
31
-
32
- /**
33
- * @defgroup lavc_bsf Bitstream filters
34
- * @ingroup libavc
35
- *
36
- * Bitstream filters transform encoded media data without decoding it. This
37
- * allows e.g. manipulating various header values. Bitstream filters operate on
38
- * @ref AVPacket "AVPackets".
39
- *
40
- * The bitstream filtering API is centered around two structures:
41
- * AVBitStreamFilter and AVBSFContext. The former represents a bitstream filter
42
- * in abstract, the latter a specific filtering process. Obtain an
43
- * AVBitStreamFilter using av_bsf_get_by_name() or av_bsf_iterate(), then pass
44
- * it to av_bsf_alloc() to create an AVBSFContext. Fill in the user-settable
45
- * AVBSFContext fields, as described in its documentation, then call
46
- * av_bsf_init() to prepare the filter context for use.
47
- *
48
- * Submit packets for filtering using av_bsf_send_packet(), obtain filtered
49
- * results with av_bsf_receive_packet(). When no more input packets will be
50
- * sent, submit a NULL AVPacket to signal the end of the stream to the filter.
51
- * av_bsf_receive_packet() will then return trailing packets, if any are
52
- * produced by the filter.
53
- *
54
- * Finally, free the filter context with av_bsf_free().
55
- * @{
56
- */
57
-
58
- /**
59
- * The bitstream filter state.
60
- *
61
- * This struct must be allocated with av_bsf_alloc() and freed with
62
- * av_bsf_free().
63
- *
64
- * The fields in the struct will only be changed (by the caller or by the
65
- * filter) as described in their documentation, and are to be considered
66
- * immutable otherwise.
67
- */
68
- typedef struct AVBSFContext {
69
- /**
70
- * A class for logging and AVOptions
71
- */
72
- const AVClass *av_class;
73
-
74
- /**
75
- * The bitstream filter this context is an instance of.
76
- */
77
- const struct AVBitStreamFilter *filter;
78
-
79
- /**
80
- * Opaque filter-specific private data. If filter->priv_class is non-NULL,
81
- * this is an AVOptions-enabled struct.
82
- */
83
- void *priv_data;
84
-
85
- /**
86
- * Parameters of the input stream. This field is allocated in
87
- * av_bsf_alloc(), it needs to be filled by the caller before
88
- * av_bsf_init().
89
- */
90
- AVCodecParameters *par_in;
91
-
92
- /**
93
- * Parameters of the output stream. This field is allocated in
94
- * av_bsf_alloc(), it is set by the filter in av_bsf_init().
95
- */
96
- AVCodecParameters *par_out;
97
-
98
- /**
99
- * The timebase used for the timestamps of the input packets. Set by the
100
- * caller before av_bsf_init().
101
- */
102
- AVRational time_base_in;
103
-
104
- /**
105
- * The timebase used for the timestamps of the output packets. Set by the
106
- * filter in av_bsf_init().
107
- */
108
- AVRational time_base_out;
109
- } AVBSFContext;
110
-
111
- typedef struct AVBitStreamFilter {
112
- const char *name;
113
-
114
- /**
115
- * A list of codec ids supported by the filter, terminated by
116
- * AV_CODEC_ID_NONE.
117
- * May be NULL, in that case the bitstream filter works with any codec id.
118
- */
119
- const enum AVCodecID *codec_ids;
120
-
121
- /**
122
- * A class for the private data, used to declare bitstream filter private
123
- * AVOptions. This field is NULL for bitstream filters that do not declare
124
- * any options.
125
- *
126
- * If this field is non-NULL, the first member of the filter private data
127
- * must be a pointer to AVClass, which will be set by libavcodec generic
128
- * code to this class.
129
- */
130
- const AVClass *priv_class;
131
- } AVBitStreamFilter;
132
-
133
- /**
134
- * @return a bitstream filter with the specified name or NULL if no such
135
- * bitstream filter exists.
136
- */
137
- const AVBitStreamFilter *av_bsf_get_by_name(const char *name);
138
-
139
- /**
140
- * Iterate over all registered bitstream filters.
141
- *
142
- * @param opaque a pointer where libavcodec will store the iteration state. Must
143
- * point to NULL to start the iteration.
144
- *
145
- * @return the next registered bitstream filter or NULL when the iteration is
146
- * finished
147
- */
148
- const AVBitStreamFilter *av_bsf_iterate(void **opaque);
149
-
150
- /**
151
- * Allocate a context for a given bitstream filter. The caller must fill in the
152
- * context parameters as described in the documentation and then call
153
- * av_bsf_init() before sending any data to the filter.
154
- *
155
- * @param filter the filter for which to allocate an instance.
156
- * @param[out] ctx a pointer into which the pointer to the newly-allocated context
157
- * will be written. It must be freed with av_bsf_free() after the
158
- * filtering is done.
159
- *
160
- * @return 0 on success, a negative AVERROR code on failure
161
- */
162
- int av_bsf_alloc(const AVBitStreamFilter *filter, AVBSFContext **ctx);
163
-
164
- /**
165
- * Prepare the filter for use, after all the parameters and options have been
166
- * set.
167
- *
168
- * @param ctx a AVBSFContext previously allocated with av_bsf_alloc()
169
- */
170
- int av_bsf_init(AVBSFContext *ctx);
171
-
172
- /**
173
- * Submit a packet for filtering.
174
- *
175
- * After sending each packet, the filter must be completely drained by calling
176
- * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or
177
- * AVERROR_EOF.
178
- *
179
- * @param ctx an initialized AVBSFContext
180
- * @param pkt the packet to filter. The bitstream filter will take ownership of
181
- * the packet and reset the contents of pkt. pkt is not touched if an error occurs.
182
- * If pkt is empty (i.e. NULL, or pkt->data is NULL and pkt->side_data_elems zero),
183
- * it signals the end of the stream (i.e. no more non-empty packets will be sent;
184
- * sending more empty packets does nothing) and will cause the filter to output
185
- * any packets it may have buffered internally.
186
- *
187
- * @return
188
- * - 0 on success.
189
- * - AVERROR(EAGAIN) if packets need to be retrieved from the filter (using
190
- * av_bsf_receive_packet()) before new input can be consumed.
191
- * - Another negative AVERROR value if an error occurs.
192
- */
193
- int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt);
194
-
195
- /**
196
- * Retrieve a filtered packet.
197
- *
198
- * @param ctx an initialized AVBSFContext
199
- * @param[out] pkt this struct will be filled with the contents of the filtered
200
- * packet. It is owned by the caller and must be freed using
201
- * av_packet_unref() when it is no longer needed.
202
- * This parameter should be "clean" (i.e. freshly allocated
203
- * with av_packet_alloc() or unreffed with av_packet_unref())
204
- * when this function is called. If this function returns
205
- * successfully, the contents of pkt will be completely
206
- * overwritten by the returned data. On failure, pkt is not
207
- * touched.
208
- *
209
- * @return
210
- * - 0 on success.
211
- * - AVERROR(EAGAIN) if more packets need to be sent to the filter (using
212
- * av_bsf_send_packet()) to get more output.
213
- * - AVERROR_EOF if there will be no further output from the filter.
214
- * - Another negative AVERROR value if an error occurs.
215
- *
216
- * @note one input packet may result in several output packets, so after sending
217
- * a packet with av_bsf_send_packet(), this function needs to be called
218
- * repeatedly until it stops returning 0. It is also possible for a filter to
219
- * output fewer packets than were sent to it, so this function may return
220
- * AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call.
221
- */
222
- int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt);
223
-
224
- /**
225
- * Reset the internal bitstream filter state. Should be called e.g. when seeking.
226
- */
227
- void av_bsf_flush(AVBSFContext *ctx);
228
-
229
- /**
230
- * Free a bitstream filter context and everything associated with it; write NULL
231
- * into the supplied pointer.
232
- */
233
- void av_bsf_free(AVBSFContext **ctx);
234
-
235
- /**
236
- * Get the AVClass for AVBSFContext. It can be used in combination with
237
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
238
- *
239
- * @see av_opt_find().
240
- */
241
- const AVClass *av_bsf_get_class(void);
242
-
243
- /**
244
- * Structure for chain/list of bitstream filters.
245
- * Empty list can be allocated by av_bsf_list_alloc().
246
- */
247
- typedef struct AVBSFList AVBSFList;
248
-
249
- /**
250
- * Allocate empty list of bitstream filters.
251
- * The list must be later freed by av_bsf_list_free()
252
- * or finalized by av_bsf_list_finalize().
253
- *
254
- * @return Pointer to @ref AVBSFList on success, NULL in case of failure
255
- */
256
- AVBSFList *av_bsf_list_alloc(void);
257
-
258
- /**
259
- * Free list of bitstream filters.
260
- *
261
- * @param lst Pointer to pointer returned by av_bsf_list_alloc()
262
- */
263
- void av_bsf_list_free(AVBSFList **lst);
264
-
265
- /**
266
- * Append bitstream filter to the list of bitstream filters.
267
- *
268
- * @param lst List to append to
269
- * @param bsf Filter context to be appended
270
- *
271
- * @return >=0 on success, negative AVERROR in case of failure
272
- */
273
- int av_bsf_list_append(AVBSFList *lst, AVBSFContext *bsf);
274
-
275
- /**
276
- * Construct new bitstream filter context given it's name and options
277
- * and append it to the list of bitstream filters.
278
- *
279
- * @param lst List to append to
280
- * @param bsf_name Name of the bitstream filter
281
- * @param options Options for the bitstream filter, can be set to NULL
282
- *
283
- * @return >=0 on success, negative AVERROR in case of failure
284
- */
285
- int av_bsf_list_append2(AVBSFList *lst, const char * bsf_name, AVDictionary **options);
286
- /**
287
- * Finalize list of bitstream filters.
288
- *
289
- * This function will transform @ref AVBSFList to single @ref AVBSFContext,
290
- * so the whole chain of bitstream filters can be treated as single filter
291
- * freshly allocated by av_bsf_alloc().
292
- * If the call is successful, @ref AVBSFList structure is freed and lst
293
- * will be set to NULL. In case of failure, caller is responsible for
294
- * freeing the structure by av_bsf_list_free()
295
- *
296
- * @param lst Filter list structure to be transformed
297
- * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure
298
- * representing the chain of bitstream filters
299
- *
300
- * @return >=0 on success, negative AVERROR in case of failure
301
- */
302
- int av_bsf_list_finalize(AVBSFList **lst, AVBSFContext **bsf);
303
-
304
- /**
305
- * Parse string describing list of bitstream filters and create single
306
- * @ref AVBSFContext describing the whole chain of bitstream filters.
307
- * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly
308
- * allocated by av_bsf_alloc().
309
- *
310
- * @param str String describing chain of bitstream filters in format
311
- * `bsf1[=opt1=val1:opt2=val2][,bsf2]`
312
- * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure
313
- * representing the chain of bitstream filters
314
- *
315
- * @return >=0 on success, negative AVERROR in case of failure
316
- */
317
- int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf);
318
-
319
- /**
320
- * Get null/pass-through bitstream filter.
321
- *
322
- * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter
323
- *
324
- * @return
325
- */
326
- int av_bsf_get_null_filter(AVBSFContext **bsf);
327
-
328
- /**
329
- * @}
330
- */
331
-
332
- #endif // AVCODEC_BSF_H