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 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 
41 {
42  static int initialized;
43 
44  if (initialized)
45  return;
46  initialized = 1;
47 
48  REGISTER_FILTER(ACROSSFADE, acrossfade, af);
49  REGISTER_FILTER(ADELAY, adelay, af);
50  REGISTER_FILTER(AECHO, aecho, af);
51  REGISTER_FILTER(AEVAL, aeval, af);
52  REGISTER_FILTER(AFADE, afade, af);
53  REGISTER_FILTER(AFORMAT, aformat, af);
54  REGISTER_FILTER(AINTERLEAVE, ainterleave, af);
55  REGISTER_FILTER(ALLPASS, allpass, af);
56  REGISTER_FILTER(AMERGE, amerge, af);
57  REGISTER_FILTER(AMIX, amix, af);
58  REGISTER_FILTER(ANULL, anull, af);
59  REGISTER_FILTER(APAD, apad, af);
60  REGISTER_FILTER(APERMS, aperms, af);
61  REGISTER_FILTER(APHASER, aphaser, af);
62  REGISTER_FILTER(ARESAMPLE, aresample, af);
63  REGISTER_FILTER(AREVERSE, areverse, af);
64  REGISTER_FILTER(ASELECT, aselect, af);
65  REGISTER_FILTER(ASENDCMD, asendcmd, af);
66  REGISTER_FILTER(ASETNSAMPLES, asetnsamples, af);
67  REGISTER_FILTER(ASETPTS, asetpts, af);
68  REGISTER_FILTER(ASETRATE, asetrate, af);
69  REGISTER_FILTER(ASETTB, asettb, af);
70  REGISTER_FILTER(ASHOWINFO, ashowinfo, af);
71  REGISTER_FILTER(ASPLIT, asplit, af);
72  REGISTER_FILTER(ASTATS, astats, af);
73  REGISTER_FILTER(ASTREAMSYNC, astreamsync, af);
74  REGISTER_FILTER(ASYNCTS, asyncts, af);
75  REGISTER_FILTER(ATEMPO, atempo, af);
76  REGISTER_FILTER(ATRIM, atrim, af);
77  REGISTER_FILTER(AZMQ, azmq, af);
78  REGISTER_FILTER(BANDPASS, bandpass, af);
79  REGISTER_FILTER(BANDREJECT, bandreject, af);
80  REGISTER_FILTER(BASS, bass, af);
81  REGISTER_FILTER(BIQUAD, biquad, af);
82  REGISTER_FILTER(BS2B, bs2b, af);
83  REGISTER_FILTER(CHANNELMAP, channelmap, af);
84  REGISTER_FILTER(CHANNELSPLIT, channelsplit, af);
85  REGISTER_FILTER(CHORUS, chorus, af);
86  REGISTER_FILTER(COMPAND, compand, af);
87  REGISTER_FILTER(DCSHIFT, dcshift, af);
88  REGISTER_FILTER(DYNAUDNORM, dynaudnorm, af);
89  REGISTER_FILTER(EARWAX, earwax, af);
90  REGISTER_FILTER(EBUR128, ebur128, af);
91  REGISTER_FILTER(EQUALIZER, equalizer, af);
92  REGISTER_FILTER(FLANGER, flanger, af);
93  REGISTER_FILTER(HIGHPASS, highpass, af);
94  REGISTER_FILTER(JOIN, join, af);
95  REGISTER_FILTER(LADSPA, ladspa, af);
97  REGISTER_FILTER(PAN, pan, af);
98  REGISTER_FILTER(REPLAYGAIN, replaygain, af);
99  REGISTER_FILTER(RESAMPLE, resample, af);
100  REGISTER_FILTER(SIDECHAINCOMPRESS, sidechaincompress, af);
101  REGISTER_FILTER(SILENCEDETECT, silencedetect, af);
102  REGISTER_FILTER(SILENCEREMOVE, silenceremove, af);
103  REGISTER_FILTER(TREBLE, treble, af);
104  REGISTER_FILTER(VOLUME, volume, af);
105  REGISTER_FILTER(VOLUMEDETECT, volumedetect, af);
106 
107  REGISTER_FILTER(AEVALSRC, aevalsrc, asrc);
108  REGISTER_FILTER(ANULLSRC, anullsrc, asrc);
109  REGISTER_FILTER(FLITE, flite, asrc);
110  REGISTER_FILTER(SINE, sine, asrc);
111 
112  REGISTER_FILTER(ANULLSINK, anullsink, asink);
113 
114  REGISTER_FILTER(ALPHAEXTRACT, alphaextract, vf);
115  REGISTER_FILTER(ALPHAMERGE, alphamerge, vf);
116  REGISTER_FILTER(ATADENOISE, atadenoise, vf);
117  REGISTER_FILTER(ASS, ass, vf);
118  REGISTER_FILTER(BBOX, bbox, vf);
119  REGISTER_FILTER(BLACKDETECT, blackdetect, vf);
120  REGISTER_FILTER(BLACKFRAME, blackframe, vf);
121  REGISTER_FILTER(BLEND, blend, vf);
122  REGISTER_FILTER(BOXBLUR, boxblur, vf);
123  REGISTER_FILTER(CODECVIEW, codecview, vf);
124  REGISTER_FILTER(COLORBALANCE, colorbalance, vf);
125  REGISTER_FILTER(COLORCHANNELMIXER, colorchannelmixer, vf);
126  REGISTER_FILTER(COLORKEY, colorkey, vf);
127  REGISTER_FILTER(COLORLEVELS, colorlevels, vf);
128  REGISTER_FILTER(COLORMATRIX, colormatrix, vf);
129  REGISTER_FILTER(COPY, copy, vf);
130  REGISTER_FILTER(COVER_RECT, cover_rect, vf);
131  REGISTER_FILTER(CROP, crop, vf);
132  REGISTER_FILTER(CROPDETECT, cropdetect, vf);
133  REGISTER_FILTER(CURVES, curves, vf);
134  REGISTER_FILTER(DCTDNOIZ, dctdnoiz, vf);
135  REGISTER_FILTER(DEBAND, deband, vf);
136  REGISTER_FILTER(DECIMATE, decimate, vf);
137  REGISTER_FILTER(DEFLATE, deflate, vf);
138  REGISTER_FILTER(DEJUDDER, dejudder, vf);
139  REGISTER_FILTER(DELOGO, delogo, vf);
140  REGISTER_FILTER(DESHAKE, deshake, vf);
141  REGISTER_FILTER(DETELECINE, detelecine, vf);
142  REGISTER_FILTER(DILATION, dilation, vf);
143  REGISTER_FILTER(DRAWBOX, drawbox, vf);
144  REGISTER_FILTER(DRAWGRAPH, drawgraph, vf);
145  REGISTER_FILTER(DRAWGRID, drawgrid, vf);
146  REGISTER_FILTER(DRAWTEXT, drawtext, vf);
147  REGISTER_FILTER(EDGEDETECT, edgedetect, vf);
148  REGISTER_FILTER(ELBG, elbg, vf);
149  REGISTER_FILTER(EQ, eq, vf);
150  REGISTER_FILTER(EROSION, erosion, vf);
151  REGISTER_FILTER(EXTRACTPLANES, extractplanes, vf);
152  REGISTER_FILTER(FADE, fade, vf);
153  REGISTER_FILTER(FFTFILT, fftfilt, vf);
154  REGISTER_FILTER(FIELD, field, vf);
155  REGISTER_FILTER(FIELDMATCH, fieldmatch, vf);
156  REGISTER_FILTER(FIELDORDER, fieldorder, vf);
157  REGISTER_FILTER(FIND_RECT, find_rect, vf);
158  REGISTER_FILTER(FORMAT, format, vf);
159  REGISTER_FILTER(FPS, fps, vf);
160  REGISTER_FILTER(FRAMEPACK, framepack, vf);
161  REGISTER_FILTER(FRAMERATE, framerate, vf);
162  REGISTER_FILTER(FRAMESTEP, framestep, vf);
163  REGISTER_FILTER(FREI0R, frei0r, vf);
164  REGISTER_FILTER(FSPP, fspp, vf);
165  REGISTER_FILTER(GEQ, geq, vf);
166  REGISTER_FILTER(GRADFUN, gradfun, vf);
167  REGISTER_FILTER(HALDCLUT, haldclut, vf);
168  REGISTER_FILTER(HFLIP, hflip, vf);
169  REGISTER_FILTER(HISTEQ, histeq, vf);
170  REGISTER_FILTER(HISTOGRAM, histogram, vf);
171  REGISTER_FILTER(HQDN3D, hqdn3d, vf);
172  REGISTER_FILTER(HQX, hqx, vf);
173  REGISTER_FILTER(HSTACK, hstack, vf);
174  REGISTER_FILTER(HUE, hue, vf);
175  REGISTER_FILTER(IDET, idet, vf);
176  REGISTER_FILTER(IL, il, vf);
177  REGISTER_FILTER(INFLATE, inflate, vf);
178  REGISTER_FILTER(INTERLACE, interlace, vf);
179  REGISTER_FILTER(INTERLEAVE, interleave, vf);
180  REGISTER_FILTER(KERNDEINT, kerndeint, vf);
181  REGISTER_FILTER(LENSCORRECTION, lenscorrection, vf);
182  REGISTER_FILTER(LUT3D, lut3d, vf);
183  REGISTER_FILTER(LUT, lut, vf);
184  REGISTER_FILTER(LUTRGB, lutrgb, vf);
185  REGISTER_FILTER(LUTYUV, lutyuv, vf);
186  REGISTER_FILTER(MCDEINT, mcdeint, vf);
187  REGISTER_FILTER(MERGEPLANES, mergeplanes, vf);
188  REGISTER_FILTER(MPDECIMATE, mpdecimate, vf);
189  REGISTER_FILTER(NEGATE, negate, vf);
190  REGISTER_FILTER(NOFORMAT, noformat, vf);
191  REGISTER_FILTER(NOISE, noise, vf);
192  REGISTER_FILTER(NULL, null, vf);
193  REGISTER_FILTER(OCV, ocv, vf);
194  REGISTER_FILTER(OVERLAY, overlay, vf);
195  REGISTER_FILTER(OWDENOISE, owdenoise, vf);
196  REGISTER_FILTER(PAD, pad, vf);
197  REGISTER_FILTER(PALETTEGEN, palettegen, vf);
198  REGISTER_FILTER(PALETTEUSE, paletteuse, vf);
199  REGISTER_FILTER(PERMS, perms, vf);
200  REGISTER_FILTER(PERSPECTIVE, perspective, vf);
201  REGISTER_FILTER(PHASE, phase, vf);
202  REGISTER_FILTER(PIXDESCTEST, pixdesctest, vf);
203  REGISTER_FILTER(PP, pp, vf);
204  REGISTER_FILTER(PP7, pp7, vf);
205  REGISTER_FILTER(PSNR, psnr, vf);
206  REGISTER_FILTER(PULLUP, pullup, vf);
207  REGISTER_FILTER(QP, qp, vf);
208  REGISTER_FILTER(RANDOM, random, vf);
209  REGISTER_FILTER(REMOVEGRAIN, removegrain, vf);
210  REGISTER_FILTER(REMOVELOGO, removelogo, vf);
211  REGISTER_FILTER(REPEATFIELDS, repeatfields, vf);
212  REGISTER_FILTER(REVERSE, reverse, vf);
213  REGISTER_FILTER(ROTATE, rotate, vf);
214  REGISTER_FILTER(SAB, sab, vf);
215  REGISTER_FILTER(SCALE, scale, vf);
216  REGISTER_FILTER(SCALE2REF, scale2ref, vf);
217  REGISTER_FILTER(SELECT, select, vf);
218  REGISTER_FILTER(SENDCMD, sendcmd, vf);
219  REGISTER_FILTER(SEPARATEFIELDS, separatefields, vf);
220  REGISTER_FILTER(SETDAR, setdar, vf);
221  REGISTER_FILTER(SETFIELD, setfield, vf);
222  REGISTER_FILTER(SETPTS, setpts, vf);
223  REGISTER_FILTER(SETSAR, setsar, vf);
224  REGISTER_FILTER(SETTB, settb, vf);
225  REGISTER_FILTER(SHOWINFO, showinfo, vf);
226  REGISTER_FILTER(SHOWPALETTE, showpalette, vf);
227  REGISTER_FILTER(SHUFFLEPLANES, shuffleplanes, vf);
228  REGISTER_FILTER(SIGNALSTATS, signalstats, vf);
229  REGISTER_FILTER(SMARTBLUR, smartblur, vf);
231  REGISTER_FILTER(SPP, spp, vf);
232  REGISTER_FILTER(SSIM, ssim, vf);
233  REGISTER_FILTER(STEREO3D, stereo3d, vf);
234  REGISTER_FILTER(SUBTITLES, subtitles, vf);
235  REGISTER_FILTER(SUPER2XSAI, super2xsai, vf);
236  REGISTER_FILTER(SWAPUV, swapuv, vf);
237  REGISTER_FILTER(TBLEND, tblend, vf);
238  REGISTER_FILTER(TELECINE, telecine, vf);
239  REGISTER_FILTER(THUMBNAIL, thumbnail, vf);
240  REGISTER_FILTER(TILE, tile, vf);
241  REGISTER_FILTER(TINTERLACE, tinterlace, vf);
243  REGISTER_FILTER(TRIM, trim, vf);
244  REGISTER_FILTER(UNSHARP, unsharp, vf);
245  REGISTER_FILTER(USPP, uspp, vf);
246  REGISTER_FILTER(VECTORSCOPE, vectorscope, vf);
247  REGISTER_FILTER(VFLIP, vflip, vf);
248  REGISTER_FILTER(VIDSTABDETECT, vidstabdetect, vf);
249  REGISTER_FILTER(VIDSTABTRANSFORM, vidstabtransform, vf);
250  REGISTER_FILTER(VIGNETTE, vignette, vf);
251  REGISTER_FILTER(VSTACK, vstack, vf);
252  REGISTER_FILTER(W3FDIF, w3fdif, vf);
253  REGISTER_FILTER(WAVEFORM, waveform, vf);
254  REGISTER_FILTER(XBR, xbr, vf);
255  REGISTER_FILTER(YADIF, yadif, vf);
256  REGISTER_FILTER(ZMQ, zmq, vf);
257  REGISTER_FILTER(ZOOMPAN, zoompan, vf);
258 
259  REGISTER_FILTER(ALLRGB, allrgb, vsrc);
260  REGISTER_FILTER(ALLYUV, allyuv, vsrc);
261  REGISTER_FILTER(CELLAUTO, cellauto, vsrc);
262  REGISTER_FILTER(COLOR, color, vsrc);
263  REGISTER_FILTER(FREI0R, frei0r_src, vsrc);
264  REGISTER_FILTER(HALDCLUTSRC, haldclutsrc, vsrc);
265  REGISTER_FILTER(LIFE, life, vsrc);
266  REGISTER_FILTER(MANDELBROT, mandelbrot, vsrc);
267  REGISTER_FILTER(MPTESTSRC, mptestsrc, vsrc);
268  REGISTER_FILTER(NULLSRC, nullsrc, vsrc);
269  REGISTER_FILTER(RGBTESTSRC, rgbtestsrc, vsrc);
270  REGISTER_FILTER(SMPTEBARS, smptebars, vsrc);
271  REGISTER_FILTER(SMPTEHDBARS, smptehdbars, vsrc);
272  REGISTER_FILTER(TESTSRC, testsrc, vsrc);
273 
274  REGISTER_FILTER(NULLSINK, nullsink, vsink);
275 
276  /* multimedia filters */
277  REGISTER_FILTER(ADRAWGRAPH, adrawgraph, avf);
278  REGISTER_FILTER(APHASEMETER, aphasemeter, avf);
279  REGISTER_FILTER(AVECTORSCOPE, avectorscope, avf);
280  REGISTER_FILTER(CONCAT, concat, avf);
281  REGISTER_FILTER(SHOWCQT, showcqt, avf);
282  REGISTER_FILTER(SHOWFREQS, showfreqs, avf);
283  REGISTER_FILTER(SHOWSPECTRUM, showspectrum, avf);
284  REGISTER_FILTER(SHOWVOLUME, showvolume, avf);
285  REGISTER_FILTER(SHOWWAVES, showwaves, avf);
286  REGISTER_FILTER(SHOWWAVESPIC, showwavespic, avf);
287 
288  /* multimedia sources */
289  REGISTER_FILTER(AMOVIE, amovie, avsrc);
290  REGISTER_FILTER(MOVIE, movie, avsrc);
291 
292 #if FF_API_AVFILTERBUFFER
293  REGISTER_FILTER_UNCONDITIONAL(vsink_ffbuffersink);
294  REGISTER_FILTER_UNCONDITIONAL(asink_ffabuffersink);
295 #endif
296 
297  /* those filters are part of public or internal API => registered
298  * unconditionally */
299  REGISTER_FILTER_UNCONDITIONAL(asrc_abuffer);
300  REGISTER_FILTER_UNCONDITIONAL(vsrc_buffer);
301  REGISTER_FILTER_UNCONDITIONAL(asink_abuffer);
302  REGISTER_FILTER_UNCONDITIONAL(vsink_buffer);
306 }
static void dilation(uint8_t *dst, const uint8_t *p1, int width, int threshold, const uint8_t *coordinates[], int coord)
Definition: vf_neighbor.c:95
#define NULL
Definition: coverity.c:32
#define QP(qP, depth)
Definition: h264_ps.c:40
Main libavfilter public API header.
structure containing the whole split ASS data
Definition: ass_split.h:89
static av_always_inline void interleave(IDWTELEM *dst, IDWTELEM *src0, IDWTELEM *src1, int w2, int add, int shift)
Definition: dirac_dwt.c:40
static void super2xsai(AVFilterContext *ctx, uint8_t *src, int src_linesize, uint8_t *dst, int dst_linesize, int width, int height)
Definition: vf_super2xsai.c:56
static int resample(ResampleContext *c, void *dst, const void *src, int *consumed, int src_size, int dst_size, int update_ctx, int nearest_neighbour)
Definition: resample.c:318
#define SCALE(c)
Definition: dcadata.c:7528
static void deflate(uint8_t *dst, const uint8_t *p1, int width, int threshold, const uint8_t *coordinates[], int coord)
Definition: vf_neighbor.c:115
static double psnr(double d)
Definition: ffmpeg.c:1255
#define SPLIT(dst, sf, n)
void avfilter_register_all(void)
Initialize the filter system.
Definition: allfilters.c:40
static void inflate(uint8_t *dst, const uint8_t *p1, int width, int threshold, const uint8_t *coordinates[], int coord)
Definition: vf_neighbor.c:130
static void copy(LZOContext *c, int cnt)
Copies bytes from input to output buffer with checking.
Definition: lzo.c:85
#define OVERLAY
Definition: vf_overlay.c:84
static void fade(uint8_t *dst, int dst_linesize, const uint8_t *src, int src_linesize, int width, int height, int alpha, int beta)
Definition: vp8.c:436
#define ROTATE(DEF, L, N, C, A)
static char * split(char *message, char delim)
Definition: af_channelmap.c:81
#define eq(A, B)
Definition: vf_xbr.c:86
#define REGISTER_FILTER(X, x, y)
Definition: allfilters.c:27
static void cover_rect(CoverContext *cover, AVFrame *in, int offx, int offy)
Definition: vf_cover_rect.c:74
void ff_opencl_register_filter_kernel_code_all(void)
static int noise(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int keyframe)
Definition: noise_bsf.c:28
static void erosion(uint8_t *dst, const uint8_t *p1, int width, int threshold, const uint8_t *coordinates[], int coord)
Definition: vf_neighbor.c:75
GLsizei GLboolean transpose
Definition: opengl_enc.c:109
#define TRANSPOSE(x)
#define COPY(src, name)
#define REGISTER_FILTER_UNCONDITIONAL(x)
Definition: allfilters.c:34
static void vectorscope(VectorscopeContext *s, AVFrame *in, AVFrame *out, int pd)
#define PAD
static void drawtext(AVFrame *pic, int x, int y, const char *txt)
#define FADE(name, type)
Definition: af_afade.c:168
#define COLOR(x)