Commit | Line | Data |
---|---|---|
5c212e6f VS |
1 | /* |
2 | * filter registration | |
3fa77bde | 3 | * Copyright (c) 2008 Vitor Sessak |
5c212e6f | 4 | * |
2912e87a | 5 | * This file is part of Libav. |
5c212e6f | 6 | * |
2912e87a | 7 | * Libav is free software; you can redistribute it and/or |
5c212e6f VS |
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 | * | |
2912e87a | 12 | * Libav is distributed in the hope that it will be useful, |
5c212e6f VS |
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 | |
2912e87a | 18 | * License along with Libav; if not, write to the Free Software |
5c212e6f VS |
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 | */ | |
21 | ||
22 | #include "avfilter.h" | |
1d9c2dc8 | 23 | #include "config.h" |
5c212e6f | 24 | |
5c212e6f | 25 | |
c73c87b4 DB |
26 | #define REGISTER_FILTER(X, x, y) \ |
27 | { \ | |
28 | extern AVFilter avfilter_##y##_##x; \ | |
29 | if (CONFIG_##X##_FILTER) \ | |
30 | avfilter_register(&avfilter_##y##_##x); \ | |
31 | } | |
5c212e6f | 32 | |
69583bd3 DB |
33 | #define REGISTER_FILTER_UNCONDITIONAL(x) \ |
34 | { \ | |
35 | extern AVFilter avfilter_##x; \ | |
36 | avfilter_register(&avfilter_##x); \ | |
37 | } | |
38 | ||
5c212e6f VS |
39 | void avfilter_register_all(void) |
40 | { | |
41 | static int initialized; | |
42 | ||
43 | if (initialized) | |
44 | return; | |
45 | initialized = 1; | |
46 | ||
c73c87b4 DB |
47 | REGISTER_FILTER(AFORMAT, aformat, af); |
48 | REGISTER_FILTER(AMIX, amix, af); | |
49 | REGISTER_FILTER(ANULL, anull, af); | |
b4729382 | 50 | REGISTER_FILTER(ASETPTS, asetpts, af); |
c73c87b4 DB |
51 | REGISTER_FILTER(ASHOWINFO, ashowinfo, af); |
52 | REGISTER_FILTER(ASPLIT, asplit, af); | |
53 | REGISTER_FILTER(ASYNCTS, asyncts, af); | |
54 | REGISTER_FILTER(CHANNELMAP, channelmap, af); | |
55 | REGISTER_FILTER(CHANNELSPLIT, channelsplit, af); | |
56 | REGISTER_FILTER(JOIN, join, af); | |
57 | REGISTER_FILTER(RESAMPLE, resample, af); | |
58 | REGISTER_FILTER(VOLUME, volume, af); | |
99046339 | 59 | |
c73c87b4 | 60 | REGISTER_FILTER(ANULLSRC, anullsrc, asrc); |
1ee410f3 | 61 | |
c73c87b4 | 62 | REGISTER_FILTER(ANULLSINK, anullsink, asink); |
f0a55438 | 63 | |
c73c87b4 DB |
64 | REGISTER_FILTER(BLACKFRAME, blackframe, vf); |
65 | REGISTER_FILTER(BOXBLUR, boxblur, vf); | |
66 | REGISTER_FILTER(COPY, copy, vf); | |
67 | REGISTER_FILTER(CROP, crop, vf); | |
68 | REGISTER_FILTER(CROPDETECT, cropdetect, vf); | |
69 | REGISTER_FILTER(DELOGO, delogo, vf); | |
70 | REGISTER_FILTER(DRAWBOX, drawbox, vf); | |
71 | REGISTER_FILTER(DRAWTEXT, drawtext, vf); | |
72 | REGISTER_FILTER(FADE, fade, vf); | |
73 | REGISTER_FILTER(FIELDORDER, fieldorder, vf); | |
74 | REGISTER_FILTER(FORMAT, format, vf); | |
75 | REGISTER_FILTER(FPS, fps, vf); | |
76 | REGISTER_FILTER(FREI0R, frei0r, vf); | |
77 | REGISTER_FILTER(GRADFUN, gradfun, vf); | |
78 | REGISTER_FILTER(HFLIP, hflip, vf); | |
79 | REGISTER_FILTER(HQDN3D, hqdn3d, vf); | |
3fce1367 | 80 | REGISTER_FILTER(INTERLACE, interlace, vf); |
c73c87b4 DB |
81 | REGISTER_FILTER(LUT, lut, vf); |
82 | REGISTER_FILTER(LUTRGB, lutrgb, vf); | |
83 | REGISTER_FILTER(LUTYUV, lutyuv, vf); | |
84 | REGISTER_FILTER(NEGATE, negate, vf); | |
85 | REGISTER_FILTER(NOFORMAT, noformat, vf); | |
86 | REGISTER_FILTER(NULL, null, vf); | |
87 | REGISTER_FILTER(OCV, ocv, vf); | |
88 | REGISTER_FILTER(OVERLAY, overlay, vf); | |
89 | REGISTER_FILTER(PAD, pad, vf); | |
90 | REGISTER_FILTER(PIXDESCTEST, pixdesctest, vf); | |
91 | REGISTER_FILTER(SCALE, scale, vf); | |
92 | REGISTER_FILTER(SELECT, select, vf); | |
93 | REGISTER_FILTER(SETDAR, setdar, vf); | |
94 | REGISTER_FILTER(SETPTS, setpts, vf); | |
95 | REGISTER_FILTER(SETSAR, setsar, vf); | |
96 | REGISTER_FILTER(SETTB, settb, vf); | |
97 | REGISTER_FILTER(SHOWINFO, showinfo, vf); | |
98 | REGISTER_FILTER(SPLIT, split, vf); | |
99 | REGISTER_FILTER(TRANSPOSE, transpose, vf); | |
100 | REGISTER_FILTER(UNSHARP, unsharp, vf); | |
101 | REGISTER_FILTER(VFLIP, vflip, vf); | |
102 | REGISTER_FILTER(YADIF, yadif, vf); | |
dd08b83c | 103 | |
c73c87b4 DB |
104 | REGISTER_FILTER(COLOR, color, vsrc); |
105 | REGISTER_FILTER(FREI0R, frei0r_src, vsrc); | |
106 | REGISTER_FILTER(MOVIE, movie, vsrc); | |
107 | REGISTER_FILTER(NULLSRC, nullsrc, vsrc); | |
108 | REGISTER_FILTER(RGBTESTSRC, rgbtestsrc, vsrc); | |
109 | REGISTER_FILTER(TESTSRC, testsrc, vsrc); | |
006aa1a4 | 110 | |
c73c87b4 | 111 | REGISTER_FILTER(NULLSINK, nullsink, vsink); |
196c9e5c | 112 | |
25b3babe AK |
113 | /* those filters are part of public or internal API => registered |
114 | * unconditionally */ | |
69583bd3 DB |
115 | REGISTER_FILTER_UNCONDITIONAL(asrc_abuffer); |
116 | REGISTER_FILTER_UNCONDITIONAL(vsrc_buffer); | |
117 | REGISTER_FILTER_UNCONDITIONAL(asink_abuffer); | |
118 | REGISTER_FILTER_UNCONDITIONAL(vsink_buffer); | |
119 | REGISTER_FILTER_UNCONDITIONAL(af_afifo); | |
120 | REGISTER_FILTER_UNCONDITIONAL(vf_fifo); | |
5c212e6f | 121 | } |