FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
allfilters.c
Go to the documentation of this file.
1 /*
2  * filter registration
3  * Copyright (c) 2008 Vitor Sessak
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #include "avfilter.h"
23 #include "config.h"
24 #include "opencl_allkernels.h"
25 
26 
27 #define REGISTER_FILTER(X, x, y) \
28  { \
29  extern AVFilter avfilter_##y##_##x; \
30  if (CONFIG_##X##_FILTER) \
31  avfilter_register(&avfilter_##y##_##x); \
32  }
33 
34 #define REGISTER_FILTER_UNCONDITIONAL(x) \
35  { \
36  extern AVFilter avfilter_##x; \
37  avfilter_register(&avfilter_##x); \
38  }
39 
41 {
42  static int initialized;
43 
44  if (initialized)
45  return;
46  initialized = 1;
47 
48 #if FF_API_ACONVERT_FILTER
49  REGISTER_FILTER(ACONVERT, aconvert, af);
50 #endif
51  REGISTER_FILTER(AFADE, afade, af);
52  REGISTER_FILTER(AFORMAT, aformat, af);
53  REGISTER_FILTER(AINTERLEAVE, ainterleave, af);
54  REGISTER_FILTER(ALLPASS, allpass, af);
55  REGISTER_FILTER(AMERGE, amerge, af);
56  REGISTER_FILTER(AMIX, amix, af);
57  REGISTER_FILTER(ANULL, anull, af);
58  REGISTER_FILTER(APAD, apad, af);
59  REGISTER_FILTER(APERMS, aperms, af);
60  REGISTER_FILTER(APHASER, aphaser, af);
61  REGISTER_FILTER(ARESAMPLE, aresample, af);
62  REGISTER_FILTER(ASELECT, aselect, af);
63  REGISTER_FILTER(ASENDCMD, asendcmd, af);
64  REGISTER_FILTER(ASETNSAMPLES, asetnsamples, af);
65  REGISTER_FILTER(ASETPTS, asetpts, af);
66  REGISTER_FILTER(ASETRATE, asetrate, af);
67  REGISTER_FILTER(ASETTB, asettb, af);
68  REGISTER_FILTER(ASHOWINFO, ashowinfo, af);
69  REGISTER_FILTER(ASPLIT, asplit, af);
70  REGISTER_FILTER(ASTATS, astats, af);
71  REGISTER_FILTER(ASTREAMSYNC, astreamsync, af);
72  REGISTER_FILTER(ASYNCTS, asyncts, af);
73  REGISTER_FILTER(ATEMPO, atempo, af);
74  REGISTER_FILTER(ATRIM, atrim, af);
75  REGISTER_FILTER(AZMQ, azmq, af);
76  REGISTER_FILTER(BANDPASS, bandpass, af);
77  REGISTER_FILTER(BANDREJECT, bandreject, af);
78  REGISTER_FILTER(BASS, bass, af);
79  REGISTER_FILTER(BIQUAD, biquad, af);
80  REGISTER_FILTER(CHANNELMAP, channelmap, af);
81  REGISTER_FILTER(CHANNELSPLIT, channelsplit, af);
82  REGISTER_FILTER(EARWAX, earwax, af);
83  REGISTER_FILTER(EBUR128, ebur128, af);
84  REGISTER_FILTER(EQUALIZER, equalizer, af);
85  REGISTER_FILTER(HIGHPASS, highpass, af);
86  REGISTER_FILTER(JOIN, join, af);
88  REGISTER_FILTER(PAN, pan, af);
89  REGISTER_FILTER(RESAMPLE, resample, af);
90  REGISTER_FILTER(SILENCEDETECT, silencedetect, af);
91  REGISTER_FILTER(TREBLE, treble, af);
92  REGISTER_FILTER(VOLUME, volume, af);
93  REGISTER_FILTER(VOLUMEDETECT, volumedetect, af);
94 
95  REGISTER_FILTER(AEVALSRC, aevalsrc, asrc);
96  REGISTER_FILTER(ANULLSRC, anullsrc, asrc);
97  REGISTER_FILTER(FLITE, flite, asrc);
98  REGISTER_FILTER(SINE, sine, asrc);
99 
100  REGISTER_FILTER(ANULLSINK, anullsink, asink);
101 
102  REGISTER_FILTER(ALPHAEXTRACT, alphaextract, vf);
103  REGISTER_FILTER(ALPHAMERGE, alphamerge, vf);
104  REGISTER_FILTER(ASS, ass, vf);
105  REGISTER_FILTER(BBOX, bbox, vf);
106  REGISTER_FILTER(BLACKDETECT, blackdetect, vf);
107  REGISTER_FILTER(BLACKFRAME, blackframe, vf);
108  REGISTER_FILTER(BLEND, blend, vf);
109  REGISTER_FILTER(BOXBLUR, boxblur, vf);
110  REGISTER_FILTER(COLORBALANCE, colorbalance, vf);
111  REGISTER_FILTER(COLORCHANNELMIXER, colorchannelmixer, vf);
112  REGISTER_FILTER(COLORMATRIX, colormatrix, vf);
113  REGISTER_FILTER(COPY, copy, vf);
114  REGISTER_FILTER(CROP, crop, vf);
115  REGISTER_FILTER(CROPDETECT, cropdetect, vf);
116  REGISTER_FILTER(CURVES, curves, vf);
117  REGISTER_FILTER(DCTDNOIZ, dctdnoiz, vf);
118  REGISTER_FILTER(DECIMATE, decimate, vf);
119  REGISTER_FILTER(DELOGO, delogo, vf);
120  REGISTER_FILTER(DESHAKE, deshake, vf);
121  REGISTER_FILTER(DRAWBOX, drawbox, vf);
122  REGISTER_FILTER(DRAWGRID, drawgrid, vf);
123  REGISTER_FILTER(DRAWTEXT, drawtext, vf);
124  REGISTER_FILTER(EDGEDETECT, edgedetect, vf);
125  REGISTER_FILTER(EXTRACTPLANES, extractplanes, vf);
126  REGISTER_FILTER(FADE, fade, vf);
127  REGISTER_FILTER(FIELD, field, vf);
128  REGISTER_FILTER(FIELDMATCH, fieldmatch, vf);
129  REGISTER_FILTER(FIELDORDER, fieldorder, vf);
130  REGISTER_FILTER(FORMAT, format, vf);
131  REGISTER_FILTER(FPS, fps, vf);
132  REGISTER_FILTER(FRAMESTEP, framestep, vf);
133  REGISTER_FILTER(FREI0R, frei0r, vf);
134  REGISTER_FILTER(GEQ, geq, vf);
135  REGISTER_FILTER(GRADFUN, gradfun, vf);
136  REGISTER_FILTER(HALDCLUT, haldclut, vf);
137  REGISTER_FILTER(HFLIP, hflip, vf);
138  REGISTER_FILTER(HISTEQ, histeq, vf);
139  REGISTER_FILTER(HISTOGRAM, histogram, vf);
140  REGISTER_FILTER(HQDN3D, hqdn3d, vf);
141  REGISTER_FILTER(HUE, hue, vf);
142  REGISTER_FILTER(IDET, idet, vf);
143  REGISTER_FILTER(IL, il, vf);
144  REGISTER_FILTER(INTERLACE, interlace, vf);
145  REGISTER_FILTER(INTERLEAVE, interleave, vf);
146  REGISTER_FILTER(KERNDEINT, kerndeint, vf);
147  REGISTER_FILTER(LUT3D, lut3d, vf);
148  REGISTER_FILTER(LUT, lut, vf);
149  REGISTER_FILTER(LUTRGB, lutrgb, vf);
150  REGISTER_FILTER(LUTYUV, lutyuv, vf);
151  REGISTER_FILTER(MCDEINT, mcdeint, vf);
152  REGISTER_FILTER(MP, mp, vf);
153  REGISTER_FILTER(MPDECIMATE, mpdecimate, vf);
154  REGISTER_FILTER(NEGATE, negate, vf);
155  REGISTER_FILTER(NOFORMAT, noformat, vf);
156  REGISTER_FILTER(NOISE, noise, vf);
157  REGISTER_FILTER(NULL, null, vf);
158  REGISTER_FILTER(OCV, ocv, vf);
159  REGISTER_FILTER(OVERLAY, overlay, vf);
160  REGISTER_FILTER(OWDENOISE, owdenoise, vf);
161  REGISTER_FILTER(PAD, pad, vf);
162  REGISTER_FILTER(PERMS, perms, vf);
163  REGISTER_FILTER(PIXDESCTEST, pixdesctest, vf);
164  REGISTER_FILTER(PP, pp, vf);
165  REGISTER_FILTER(PSNR, psnr, vf);
166  REGISTER_FILTER(REMOVELOGO, removelogo, vf);
167  REGISTER_FILTER(ROTATE, rotate, vf);
168  REGISTER_FILTER(SAB, sab, vf);
169  REGISTER_FILTER(SCALE, scale, vf);
170  REGISTER_FILTER(SELECT, select, vf);
171  REGISTER_FILTER(SENDCMD, sendcmd, vf);
172  REGISTER_FILTER(SEPARATEFIELDS, separatefields, vf);
173  REGISTER_FILTER(SETDAR, setdar, vf);
174  REGISTER_FILTER(SETFIELD, setfield, vf);
175  REGISTER_FILTER(SETPTS, setpts, vf);
176  REGISTER_FILTER(SETSAR, setsar, vf);
177  REGISTER_FILTER(SETTB, settb, vf);
178  REGISTER_FILTER(SHOWINFO, showinfo, vf);
179  REGISTER_FILTER(SMARTBLUR, smartblur, vf);
181  REGISTER_FILTER(SPP, spp, vf);
182  REGISTER_FILTER(STEREO3D, stereo3d, vf);
183  REGISTER_FILTER(SUBTITLES, subtitles, vf);
184  REGISTER_FILTER(SUPER2XSAI, super2xsai, vf);
185  REGISTER_FILTER(SWAPUV, swapuv, vf);
186  REGISTER_FILTER(TELECINE, telecine, vf);
187  REGISTER_FILTER(THUMBNAIL, thumbnail, vf);
188  REGISTER_FILTER(TILE, tile, vf);
189  REGISTER_FILTER(TINTERLACE, tinterlace, vf);
191  REGISTER_FILTER(TRIM, trim, vf);
192  REGISTER_FILTER(UNSHARP, unsharp, vf);
193  REGISTER_FILTER(VFLIP, vflip, vf);
194  REGISTER_FILTER(VIDSTABDETECT, vidstabdetect, vf);
195  REGISTER_FILTER(VIDSTABTRANSFORM, vidstabtransform, vf);
196  REGISTER_FILTER(VIGNETTE, vignette, vf);
197  REGISTER_FILTER(YADIF, yadif, vf);
198  REGISTER_FILTER(ZMQ, zmq, vf);
199 
200  REGISTER_FILTER(CELLAUTO, cellauto, vsrc);
201  REGISTER_FILTER(COLOR, color, vsrc);
202  REGISTER_FILTER(FREI0R, frei0r_src, vsrc);
203  REGISTER_FILTER(HALDCLUTSRC, haldclutsrc, vsrc);
204  REGISTER_FILTER(LIFE, life, vsrc);
205  REGISTER_FILTER(MANDELBROT, mandelbrot, vsrc);
206  REGISTER_FILTER(MPTESTSRC, mptestsrc, vsrc);
207  REGISTER_FILTER(NULLSRC, nullsrc, vsrc);
208  REGISTER_FILTER(RGBTESTSRC, rgbtestsrc, vsrc);
209  REGISTER_FILTER(SMPTEBARS, smptebars, vsrc);
210  REGISTER_FILTER(SMPTEHDBARS, smptehdbars, vsrc);
211  REGISTER_FILTER(TESTSRC, testsrc, vsrc);
212 
213  REGISTER_FILTER(NULLSINK, nullsink, vsink);
214 
215  /* multimedia filters */
216  REGISTER_FILTER(AVECTORSCOPE, avectorscope, avf);
217  REGISTER_FILTER(CONCAT, concat, avf);
218  REGISTER_FILTER(SHOWSPECTRUM, showspectrum, avf);
219  REGISTER_FILTER(SHOWWAVES, showwaves, avf);
220 
221  /* multimedia sources */
222  REGISTER_FILTER(AMOVIE, amovie, avsrc);
223  REGISTER_FILTER(MOVIE, movie, avsrc);
224 
225 #if FF_API_AVFILTERBUFFER
226  REGISTER_FILTER_UNCONDITIONAL(vsink_ffbuffersink);
227  REGISTER_FILTER_UNCONDITIONAL(asink_ffabuffersink);
228 #endif
229 
230  /* those filters are part of public or internal API => registered
231  * unconditionally */
232  REGISTER_FILTER_UNCONDITIONAL(asrc_abuffer);
233  REGISTER_FILTER_UNCONDITIONAL(vsrc_buffer);
234  REGISTER_FILTER_UNCONDITIONAL(asink_abuffer);
235  REGISTER_FILTER_UNCONDITIONAL(vsink_buffer);
239 }