Commit | Line | Data |
---|---|---|
2ba45a60 DM |
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 ff_##y##_##x; \ | |
30 | if (CONFIG_##X##_FILTER) \ | |
31 | avfilter_register(&ff_##y##_##x); \ | |
32 | } | |
33 | ||
34 | #define REGISTER_FILTER_UNCONDITIONAL(x) \ | |
35 | { \ | |
36 | extern AVFilter ff_##x; \ | |
37 | avfilter_register(&ff_##x); \ | |
38 | } | |
39 | ||
40 | void avfilter_register_all(void) | |
41 | { | |
42 | static int initialized; | |
43 | ||
44 | if (initialized) | |
45 | return; | |
46 | initialized = 1; | |
47 | ||
2ba45a60 DM |
48 | REGISTER_FILTER(ADELAY, adelay, af); |
49 | REGISTER_FILTER(AECHO, aecho, af); | |
50 | REGISTER_FILTER(AEVAL, aeval, af); | |
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(BS2B, bs2b, af); | |
81 | REGISTER_FILTER(CHANNELMAP, channelmap, af); | |
82 | REGISTER_FILTER(CHANNELSPLIT, channelsplit, af); | |
83 | REGISTER_FILTER(COMPAND, compand, af); | |
84 | REGISTER_FILTER(EARWAX, earwax, af); | |
85 | REGISTER_FILTER(EBUR128, ebur128, af); | |
86 | REGISTER_FILTER(EQUALIZER, equalizer, af); | |
87 | REGISTER_FILTER(FLANGER, flanger, af); | |
88 | REGISTER_FILTER(HIGHPASS, highpass, af); | |
89 | REGISTER_FILTER(JOIN, join, af); | |
90 | REGISTER_FILTER(LADSPA, ladspa, af); | |
91 | REGISTER_FILTER(LOWPASS, lowpass, af); | |
92 | REGISTER_FILTER(PAN, pan, af); | |
93 | REGISTER_FILTER(REPLAYGAIN, replaygain, af); | |
94 | REGISTER_FILTER(RESAMPLE, resample, af); | |
95 | REGISTER_FILTER(SILENCEDETECT, silencedetect, af); | |
96 | REGISTER_FILTER(SILENCEREMOVE, silenceremove, af); | |
97 | REGISTER_FILTER(TREBLE, treble, af); | |
98 | REGISTER_FILTER(VOLUME, volume, af); | |
99 | REGISTER_FILTER(VOLUMEDETECT, volumedetect, af); | |
100 | ||
101 | REGISTER_FILTER(AEVALSRC, aevalsrc, asrc); | |
102 | REGISTER_FILTER(ANULLSRC, anullsrc, asrc); | |
103 | REGISTER_FILTER(FLITE, flite, asrc); | |
104 | REGISTER_FILTER(SINE, sine, asrc); | |
105 | ||
106 | REGISTER_FILTER(ANULLSINK, anullsink, asink); | |
107 | ||
108 | REGISTER_FILTER(ALPHAEXTRACT, alphaextract, vf); | |
109 | REGISTER_FILTER(ALPHAMERGE, alphamerge, vf); | |
110 | REGISTER_FILTER(ASS, ass, vf); | |
111 | REGISTER_FILTER(BBOX, bbox, vf); | |
112 | REGISTER_FILTER(BLACKDETECT, blackdetect, vf); | |
113 | REGISTER_FILTER(BLACKFRAME, blackframe, vf); | |
114 | REGISTER_FILTER(BLEND, blend, vf); | |
115 | REGISTER_FILTER(BOXBLUR, boxblur, vf); | |
116 | REGISTER_FILTER(CODECVIEW, codecview, vf); | |
117 | REGISTER_FILTER(COLORBALANCE, colorbalance, vf); | |
118 | REGISTER_FILTER(COLORCHANNELMIXER, colorchannelmixer, vf); | |
119 | REGISTER_FILTER(COLORMATRIX, colormatrix, vf); | |
120 | REGISTER_FILTER(COPY, copy, vf); | |
121 | REGISTER_FILTER(CROP, crop, vf); | |
122 | REGISTER_FILTER(CROPDETECT, cropdetect, vf); | |
123 | REGISTER_FILTER(CURVES, curves, vf); | |
124 | REGISTER_FILTER(DCTDNOIZ, dctdnoiz, vf); | |
125 | REGISTER_FILTER(DECIMATE, decimate, vf); | |
126 | REGISTER_FILTER(DEJUDDER, dejudder, vf); | |
127 | REGISTER_FILTER(DELOGO, delogo, vf); | |
128 | REGISTER_FILTER(DESHAKE, deshake, vf); | |
129 | REGISTER_FILTER(DRAWBOX, drawbox, vf); | |
130 | REGISTER_FILTER(DRAWGRID, drawgrid, vf); | |
131 | REGISTER_FILTER(DRAWTEXT, drawtext, vf); | |
132 | REGISTER_FILTER(EDGEDETECT, edgedetect, vf); | |
133 | REGISTER_FILTER(ELBG, elbg, vf); | |
134 | REGISTER_FILTER(EXTRACTPLANES, extractplanes, vf); | |
135 | REGISTER_FILTER(FADE, fade, vf); | |
136 | REGISTER_FILTER(FIELD, field, vf); | |
137 | REGISTER_FILTER(FIELDMATCH, fieldmatch, vf); | |
138 | REGISTER_FILTER(FIELDORDER, fieldorder, vf); | |
139 | REGISTER_FILTER(FORMAT, format, vf); | |
140 | REGISTER_FILTER(FPS, fps, vf); | |
141 | REGISTER_FILTER(FRAMEPACK, framepack, vf); | |
142 | REGISTER_FILTER(FRAMESTEP, framestep, vf); | |
143 | REGISTER_FILTER(FREI0R, frei0r, vf); | |
144 | REGISTER_FILTER(GEQ, geq, vf); | |
145 | REGISTER_FILTER(GRADFUN, gradfun, vf); | |
146 | REGISTER_FILTER(HALDCLUT, haldclut, vf); | |
147 | REGISTER_FILTER(HFLIP, hflip, vf); | |
148 | REGISTER_FILTER(HISTEQ, histeq, vf); | |
149 | REGISTER_FILTER(HISTOGRAM, histogram, vf); | |
150 | REGISTER_FILTER(HQDN3D, hqdn3d, vf); | |
151 | REGISTER_FILTER(HQX, hqx, vf); | |
152 | REGISTER_FILTER(HUE, hue, vf); | |
153 | REGISTER_FILTER(IDET, idet, vf); | |
154 | REGISTER_FILTER(IL, il, vf); | |
155 | REGISTER_FILTER(INTERLACE, interlace, vf); | |
156 | REGISTER_FILTER(INTERLEAVE, interleave, vf); | |
157 | REGISTER_FILTER(KERNDEINT, kerndeint, vf); | |
158 | REGISTER_FILTER(LENSCORRECTION, lenscorrection, vf); | |
159 | REGISTER_FILTER(LUT3D, lut3d, vf); | |
160 | REGISTER_FILTER(LUT, lut, vf); | |
161 | REGISTER_FILTER(LUTRGB, lutrgb, vf); | |
162 | REGISTER_FILTER(LUTYUV, lutyuv, vf); | |
163 | REGISTER_FILTER(MCDEINT, mcdeint, vf); | |
164 | REGISTER_FILTER(MERGEPLANES, mergeplanes, vf); | |
165 | REGISTER_FILTER(MP, mp, vf); | |
166 | REGISTER_FILTER(MPDECIMATE, mpdecimate, vf); | |
167 | REGISTER_FILTER(NEGATE, negate, vf); | |
168 | REGISTER_FILTER(NOFORMAT, noformat, vf); | |
169 | REGISTER_FILTER(NOISE, noise, vf); | |
170 | REGISTER_FILTER(NULL, null, vf); | |
171 | REGISTER_FILTER(OCV, ocv, vf); | |
172 | REGISTER_FILTER(OVERLAY, overlay, vf); | |
173 | REGISTER_FILTER(OWDENOISE, owdenoise, vf); | |
174 | REGISTER_FILTER(PAD, pad, vf); | |
175 | REGISTER_FILTER(PERMS, perms, vf); | |
176 | REGISTER_FILTER(PERSPECTIVE, perspective, vf); | |
177 | REGISTER_FILTER(PHASE, phase, vf); | |
178 | REGISTER_FILTER(PIXDESCTEST, pixdesctest, vf); | |
179 | REGISTER_FILTER(PP, pp, vf); | |
180 | REGISTER_FILTER(PSNR, psnr, vf); | |
181 | REGISTER_FILTER(PULLUP, pullup, vf); | |
182 | REGISTER_FILTER(REMOVELOGO, removelogo, vf); | |
183 | REGISTER_FILTER(ROTATE, rotate, vf); | |
184 | REGISTER_FILTER(SAB, sab, vf); | |
185 | REGISTER_FILTER(SCALE, scale, vf); | |
186 | REGISTER_FILTER(SELECT, select, vf); | |
187 | REGISTER_FILTER(SENDCMD, sendcmd, vf); | |
188 | REGISTER_FILTER(SEPARATEFIELDS, separatefields, vf); | |
189 | REGISTER_FILTER(SETDAR, setdar, vf); | |
190 | REGISTER_FILTER(SETFIELD, setfield, vf); | |
191 | REGISTER_FILTER(SETPTS, setpts, vf); | |
192 | REGISTER_FILTER(SETSAR, setsar, vf); | |
193 | REGISTER_FILTER(SETTB, settb, vf); | |
194 | REGISTER_FILTER(SHOWINFO, showinfo, vf); | |
195 | REGISTER_FILTER(SHUFFLEPLANES, shuffleplanes, vf); | |
196 | REGISTER_FILTER(SIGNALSTATS, signalstats, vf); | |
197 | REGISTER_FILTER(SMARTBLUR, smartblur, vf); | |
198 | REGISTER_FILTER(SPLIT, split, vf); | |
199 | REGISTER_FILTER(SPP, spp, vf); | |
200 | REGISTER_FILTER(STEREO3D, stereo3d, vf); | |
201 | REGISTER_FILTER(SUBTITLES, subtitles, vf); | |
202 | REGISTER_FILTER(SUPER2XSAI, super2xsai, vf); | |
203 | REGISTER_FILTER(SWAPUV, swapuv, vf); | |
204 | REGISTER_FILTER(TELECINE, telecine, vf); | |
205 | REGISTER_FILTER(THUMBNAIL, thumbnail, vf); | |
206 | REGISTER_FILTER(TILE, tile, vf); | |
207 | REGISTER_FILTER(TINTERLACE, tinterlace, vf); | |
208 | REGISTER_FILTER(TRANSPOSE, transpose, vf); | |
209 | REGISTER_FILTER(TRIM, trim, vf); | |
210 | REGISTER_FILTER(UNSHARP, unsharp, vf); | |
211 | REGISTER_FILTER(VFLIP, vflip, vf); | |
212 | REGISTER_FILTER(VIDSTABDETECT, vidstabdetect, vf); | |
213 | REGISTER_FILTER(VIDSTABTRANSFORM, vidstabtransform, vf); | |
214 | REGISTER_FILTER(VIGNETTE, vignette, vf); | |
215 | REGISTER_FILTER(W3FDIF, w3fdif, vf); | |
f6fa7814 | 216 | REGISTER_FILTER(XBR, xbr, vf); |
2ba45a60 DM |
217 | REGISTER_FILTER(YADIF, yadif, vf); |
218 | REGISTER_FILTER(ZMQ, zmq, vf); | |
219 | REGISTER_FILTER(ZOOMPAN, zoompan, vf); | |
220 | ||
221 | REGISTER_FILTER(CELLAUTO, cellauto, vsrc); | |
222 | REGISTER_FILTER(COLOR, color, vsrc); | |
223 | REGISTER_FILTER(FREI0R, frei0r_src, vsrc); | |
224 | REGISTER_FILTER(HALDCLUTSRC, haldclutsrc, vsrc); | |
225 | REGISTER_FILTER(LIFE, life, vsrc); | |
226 | REGISTER_FILTER(MANDELBROT, mandelbrot, vsrc); | |
227 | REGISTER_FILTER(MPTESTSRC, mptestsrc, vsrc); | |
228 | REGISTER_FILTER(NULLSRC, nullsrc, vsrc); | |
229 | REGISTER_FILTER(RGBTESTSRC, rgbtestsrc, vsrc); | |
230 | REGISTER_FILTER(SMPTEBARS, smptebars, vsrc); | |
231 | REGISTER_FILTER(SMPTEHDBARS, smptehdbars, vsrc); | |
232 | REGISTER_FILTER(TESTSRC, testsrc, vsrc); | |
233 | ||
234 | REGISTER_FILTER(NULLSINK, nullsink, vsink); | |
235 | ||
236 | /* multimedia filters */ | |
237 | REGISTER_FILTER(AVECTORSCOPE, avectorscope, avf); | |
238 | REGISTER_FILTER(CONCAT, concat, avf); | |
239 | REGISTER_FILTER(SHOWCQT, showcqt, avf); | |
240 | REGISTER_FILTER(SHOWSPECTRUM, showspectrum, avf); | |
241 | REGISTER_FILTER(SHOWWAVES, showwaves, avf); | |
242 | ||
243 | /* multimedia sources */ | |
244 | REGISTER_FILTER(AMOVIE, amovie, avsrc); | |
245 | REGISTER_FILTER(MOVIE, movie, avsrc); | |
246 | ||
247 | #if FF_API_AVFILTERBUFFER | |
248 | REGISTER_FILTER_UNCONDITIONAL(vsink_ffbuffersink); | |
249 | REGISTER_FILTER_UNCONDITIONAL(asink_ffabuffersink); | |
250 | #endif | |
251 | ||
252 | /* those filters are part of public or internal API => registered | |
253 | * unconditionally */ | |
254 | REGISTER_FILTER_UNCONDITIONAL(asrc_abuffer); | |
255 | REGISTER_FILTER_UNCONDITIONAL(vsrc_buffer); | |
256 | REGISTER_FILTER_UNCONDITIONAL(asink_abuffer); | |
257 | REGISTER_FILTER_UNCONDITIONAL(vsink_buffer); | |
258 | REGISTER_FILTER_UNCONDITIONAL(af_afifo); | |
259 | REGISTER_FILTER_UNCONDITIONAL(vf_fifo); | |
260 | ff_opencl_register_filter_kernel_code_all(); | |
261 | } |