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 40void avfilter_register_all(void) 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(ADELAY, adelay, af); 52 REGISTER_FILTER(AECHO, aecho, af); 53 REGISTER_FILTER(AEVAL, aeval, af); 54 REGISTER_FILTER(AFADE, afade, af); 55 REGISTER_FILTER(AFORMAT, aformat, af); 56 REGISTER_FILTER(AINTERLEAVE, ainterleave, af); 57 REGISTER_FILTER(ALLPASS, allpass, af); 58 REGISTER_FILTER(AMERGE, amerge, af); 59 REGISTER_FILTER(AMIX, amix, af); 60 REGISTER_FILTER(ANULL, anull, af); 61 REGISTER_FILTER(APAD, apad, af); 62 REGISTER_FILTER(APERMS, aperms, af); 63 REGISTER_FILTER(APHASER, aphaser, af); 64 REGISTER_FILTER(ARESAMPLE, aresample, af); 65 REGISTER_FILTER(ASELECT, aselect, af); 66 REGISTER_FILTER(ASENDCMD, asendcmd, af); 67 REGISTER_FILTER(ASETNSAMPLES, asetnsamples, af); 68 REGISTER_FILTER(ASETPTS, asetpts, af); 69 REGISTER_FILTER(ASETRATE, asetrate, af); 70 REGISTER_FILTER(ASETTB, asettb, af); 71 REGISTER_FILTER(ASHOWINFO, ashowinfo, af); 72 REGISTER_FILTER(ASPLIT, asplit, af); 73 REGISTER_FILTER(ASTATS, astats, af); 74 REGISTER_FILTER(ASTREAMSYNC, astreamsync, af); 75 REGISTER_FILTER(ASYNCTS, asyncts, af); 76 REGISTER_FILTER(ATEMPO, atempo, af); 77 REGISTER_FILTER(ATRIM, atrim, af); 78 REGISTER_FILTER(AZMQ, azmq, af); 79 REGISTER_FILTER(BANDPASS, bandpass, af); 80 REGISTER_FILTER(BANDREJECT, bandreject, af); 81 REGISTER_FILTER(BASS, bass, af); 82 REGISTER_FILTER(BIQUAD, biquad, af); 83 REGISTER_FILTER(BS2B, bs2b, af); 84 REGISTER_FILTER(CHANNELMAP, channelmap, af); 85 REGISTER_FILTER(CHANNELSPLIT, channelsplit, af); 86 REGISTER_FILTER(COMPAND, compand, af); 87 REGISTER_FILTER(EARWAX, earwax, af); 88 REGISTER_FILTER(EBUR128, ebur128, af); 89 REGISTER_FILTER(EQUALIZER, equalizer, af); 90 REGISTER_FILTER(FLANGER, flanger, af); 91 REGISTER_FILTER(HIGHPASS, highpass, af); 92 REGISTER_FILTER(JOIN, join, af); 93 REGISTER_FILTER(LADSPA, ladspa, af); 94 REGISTER_FILTER(LOWPASS, lowpass, af); 95 REGISTER_FILTER(PAN, pan, af); 96 REGISTER_FILTER(REPLAYGAIN, replaygain, af); 97 REGISTER_FILTER(RESAMPLE, resample, af); 98 REGISTER_FILTER(SILENCEDETECT, silencedetect, af); 99 REGISTER_FILTER(TREBLE, treble, af); 100 REGISTER_FILTER(VOLUME, volume, af); 101 REGISTER_FILTER(VOLUMEDETECT, volumedetect, af); 102 103 REGISTER_FILTER(AEVALSRC, aevalsrc, asrc); 104 REGISTER_FILTER(ANULLSRC, anullsrc, asrc); 105 REGISTER_FILTER(FLITE, flite, asrc); 106 REGISTER_FILTER(SINE, sine, asrc); 107 108 REGISTER_FILTER(ANULLSINK, anullsink, asink); 109 110 REGISTER_FILTER(ALPHAEXTRACT, alphaextract, vf); 111 REGISTER_FILTER(ALPHAMERGE, alphamerge, vf); 112 REGISTER_FILTER(ASS, ass, vf); 113 REGISTER_FILTER(BBOX, bbox, vf); 114 REGISTER_FILTER(BLACKDETECT, blackdetect, vf); 115 REGISTER_FILTER(BLACKFRAME, blackframe, vf); 116 REGISTER_FILTER(BLEND, blend, vf); 117 REGISTER_FILTER(BOXBLUR, boxblur, vf); 118 REGISTER_FILTER(COLORBALANCE, colorbalance, vf); 119 REGISTER_FILTER(COLORCHANNELMIXER, colorchannelmixer, vf); 120 REGISTER_FILTER(COLORMATRIX, colormatrix, vf); 121 REGISTER_FILTER(COPY, copy, vf); 122 REGISTER_FILTER(CROP, crop, vf); 123 REGISTER_FILTER(CROPDETECT, cropdetect, vf); 124 REGISTER_FILTER(CURVES, curves, vf); 125 REGISTER_FILTER(DCTDNOIZ, dctdnoiz, vf); 126 REGISTER_FILTER(DECIMATE, decimate, vf); 127 REGISTER_FILTER(DEJUDDER, dejudder, vf); 128 REGISTER_FILTER(DELOGO, delogo, vf); 129 REGISTER_FILTER(DESHAKE, deshake, vf); 130 REGISTER_FILTER(DRAWBOX, drawbox, vf); 131 REGISTER_FILTER(DRAWGRID, drawgrid, vf); 132 REGISTER_FILTER(DRAWTEXT, drawtext, vf); 133 REGISTER_FILTER(EDGEDETECT, edgedetect, vf); 134 REGISTER_FILTER(ELBG, elbg, vf); 135 REGISTER_FILTER(EXTRACTPLANES, extractplanes, vf); 136 REGISTER_FILTER(FADE, fade, vf); 137 REGISTER_FILTER(FIELD, field, vf); 138 REGISTER_FILTER(FIELDMATCH, fieldmatch, vf); 139 REGISTER_FILTER(FIELDORDER, fieldorder, vf); 140 REGISTER_FILTER(FORMAT, format, vf); 141 REGISTER_FILTER(FPS, fps, vf); 142 REGISTER_FILTER(FRAMEPACK, framepack, vf); 143 REGISTER_FILTER(FRAMESTEP, framestep, vf); 144 REGISTER_FILTER(FREI0R, frei0r, vf); 145 REGISTER_FILTER(GEQ, geq, vf); 146 REGISTER_FILTER(GRADFUN, gradfun, vf); 147 REGISTER_FILTER(HALDCLUT, haldclut, vf); 148 REGISTER_FILTER(HFLIP, hflip, vf); 149 REGISTER_FILTER(HISTEQ, histeq, vf); 150 REGISTER_FILTER(HISTOGRAM, histogram, vf); 151 REGISTER_FILTER(HQDN3D, hqdn3d, vf); 152 REGISTER_FILTER(HQX, hqx, vf); 153 REGISTER_FILTER(HUE, hue, vf); 154 REGISTER_FILTER(IDET, idet, vf); 155 REGISTER_FILTER(IL, il, vf); 156 REGISTER_FILTER(INTERLACE, interlace, vf); 157 REGISTER_FILTER(INTERLEAVE, interleave, vf); 158 REGISTER_FILTER(KERNDEINT, kerndeint, 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); 216 REGISTER_FILTER(YADIF, yadif, vf); 217 REGISTER_FILTER(ZMQ, zmq, vf); 218 REGISTER_FILTER(ZOOMPAN, zoompan, vf); 219 220 REGISTER_FILTER(CELLAUTO, cellauto, vsrc); 221 REGISTER_FILTER(COLOR, color, vsrc); 222 REGISTER_FILTER(FREI0R, frei0r_src, vsrc); 223 REGISTER_FILTER(HALDCLUTSRC, haldclutsrc, vsrc); 224 REGISTER_FILTER(LIFE, life, vsrc); 225 REGISTER_FILTER(MANDELBROT, mandelbrot, vsrc); 226 REGISTER_FILTER(MPTESTSRC, mptestsrc, vsrc); 227 REGISTER_FILTER(NULLSRC, nullsrc, vsrc); 228 REGISTER_FILTER(RGBTESTSRC, rgbtestsrc, vsrc); 229 REGISTER_FILTER(SMPTEBARS, smptebars, vsrc); 230 REGISTER_FILTER(SMPTEHDBARS, smptehdbars, vsrc); 231 REGISTER_FILTER(TESTSRC, testsrc, vsrc); 232 233 REGISTER_FILTER(NULLSINK, nullsink, vsink); 234 235 /* multimedia filters */ 236 REGISTER_FILTER(AVECTORSCOPE, avectorscope, avf); 237 REGISTER_FILTER(CONCAT, concat, avf); 238 REGISTER_FILTER(SHOWCQT, showcqt, avf); 239 REGISTER_FILTER(SHOWSPECTRUM, showspectrum, avf); 240 REGISTER_FILTER(SHOWWAVES, showwaves, avf); 241 242 /* multimedia sources */ 243 REGISTER_FILTER(AMOVIE, amovie, avsrc); 244 REGISTER_FILTER(MOVIE, movie, avsrc); 245 246#if FF_API_AVFILTERBUFFER 247 REGISTER_FILTER_UNCONDITIONAL(vsink_ffbuffersink); 248 REGISTER_FILTER_UNCONDITIONAL(asink_ffabuffersink); 249#endif 250 251 /* those filters are part of public or internal API => registered 252 * unconditionally */ 253 REGISTER_FILTER_UNCONDITIONAL(asrc_abuffer); 254 REGISTER_FILTER_UNCONDITIONAL(vsrc_buffer); 255 REGISTER_FILTER_UNCONDITIONAL(asink_abuffer); 256 REGISTER_FILTER_UNCONDITIONAL(vsink_buffer); 257 REGISTER_FILTER_UNCONDITIONAL(af_afifo); 258 REGISTER_FILTER_UNCONDITIONAL(vf_fifo); 259 ff_opencl_register_filter_kernel_code_all(); 260} 261