Commit | Line | Data |
---|---|---|
2ba45a60 DM |
1 | /* |
2 | * Register all the grabbing devices. | |
3 | * | |
4 | * This file is part of FFmpeg. | |
5 | * | |
6 | * FFmpeg is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2.1 of the License, or (at your option) any later version. | |
10 | * | |
11 | * FFmpeg is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with FFmpeg; if not, write to the Free Software | |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
19 | */ | |
20 | ||
21 | #include "config.h" | |
22 | #include "avdevice.h" | |
23 | ||
24 | #define REGISTER_OUTDEV(X, x) \ | |
25 | { \ | |
26 | extern AVOutputFormat ff_##x##_muxer; \ | |
27 | if (CONFIG_##X##_OUTDEV) \ | |
28 | av_register_output_format(&ff_##x##_muxer); \ | |
29 | } | |
30 | ||
31 | #define REGISTER_INDEV(X, x) \ | |
32 | { \ | |
33 | extern AVInputFormat ff_##x##_demuxer; \ | |
34 | if (CONFIG_##X##_INDEV) \ | |
35 | av_register_input_format(&ff_##x##_demuxer); \ | |
36 | } | |
37 | ||
38 | #define REGISTER_INOUTDEV(X, x) REGISTER_OUTDEV(X, x); REGISTER_INDEV(X, x) | |
39 | ||
40 | void avdevice_register_all(void) | |
41 | { | |
42 | static int initialized; | |
43 | ||
44 | if (initialized) | |
45 | return; | |
46 | initialized = 1; | |
47 | ||
48 | /* devices */ | |
49 | REGISTER_INOUTDEV(ALSA, alsa); | |
50 | REGISTER_INDEV (AVFOUNDATION, avfoundation); | |
51 | REGISTER_INDEV (BKTR, bktr); | |
52 | REGISTER_OUTDEV (CACA, caca); | |
f6fa7814 | 53 | REGISTER_INOUTDEV(DECKLINK, decklink); |
2ba45a60 DM |
54 | REGISTER_INDEV (DSHOW, dshow); |
55 | REGISTER_INDEV (DV1394, dv1394); | |
56 | REGISTER_INOUTDEV(FBDEV, fbdev); | |
57 | REGISTER_INDEV (GDIGRAB, gdigrab); | |
58 | REGISTER_INDEV (IEC61883, iec61883); | |
59 | REGISTER_INDEV (JACK, jack); | |
60 | REGISTER_INDEV (LAVFI, lavfi); | |
61 | REGISTER_INDEV (OPENAL, openal); | |
62 | REGISTER_OUTDEV (OPENGL, opengl); | |
63 | REGISTER_INOUTDEV(OSS, oss); | |
64 | REGISTER_INOUTDEV(PULSE, pulse); | |
65 | REGISTER_INDEV (QTKIT, qtkit); | |
66 | REGISTER_OUTDEV (SDL, sdl); | |
67 | REGISTER_INOUTDEV(SNDIO, sndio); | |
68 | REGISTER_INOUTDEV(V4L2, v4l2); | |
69 | // REGISTER_INDEV (V4L, v4l | |
70 | REGISTER_INDEV (VFWCAP, vfwcap); | |
71 | REGISTER_INDEV (X11GRAB, x11grab); | |
f6fa7814 | 72 | REGISTER_INDEV (X11GRAB_XCB, x11grab_xcb); |
2ba45a60 DM |
73 | REGISTER_OUTDEV (XV, xv); |
74 | ||
75 | /* external libraries */ | |
76 | REGISTER_INDEV (LIBCDIO, libcdio); | |
77 | REGISTER_INDEV (LIBDC1394, libdc1394); | |
78 | } |