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 "libavformat/avformat.h" 23#include "avdevice.h" 24 25unsigned avdevice_version(void) 26{ 27 return LIBAVDEVICE_VERSION_INT; 28} 29 30#define REGISTER_MUXER(X,x) { \ 31 extern AVOutputFormat x##_muxer; \ 32 if(CONFIG_##X##_MUXER) av_register_output_format(&x##_muxer); } 33#define REGISTER_DEMUXER(X,x) { \ 34 extern AVInputFormat x##_demuxer; \ 35 if(CONFIG_##X##_DEMUXER) av_register_input_format(&x##_demuxer); } 36#define REGISTER_MUXDEMUX(X,x) REGISTER_MUXER(X,x); REGISTER_DEMUXER(X,x) 37 38void avdevice_register_all(void) 39{ 40 static int initialized; 41 42 if (initialized) 43 return; 44 initialized = 1; 45 46 /* devices */ 47 REGISTER_MUXDEMUX (ALSA, alsa); 48 REGISTER_MUXDEMUX (AUDIO_BEOS, audio_beos); 49 REGISTER_DEMUXER (BKTR, bktr); 50 REGISTER_DEMUXER (DV1394, dv1394); 51 REGISTER_MUXDEMUX (OSS, oss); 52 REGISTER_DEMUXER (V4L2, v4l2); 53 REGISTER_DEMUXER (V4L, v4l); 54 REGISTER_DEMUXER (VFWCAP, vfwcap); 55 REGISTER_DEMUXER (X11_GRAB_DEVICE, x11_grab_device); 56 57 /* external libraries */ 58 REGISTER_DEMUXER (LIBDC1394, libdc1394); 59} 60