video4linux2 input support
[libav.git] / libavformat / allformats.c
CommitLineData
4624540b
FB
1/*
2 * Register all the formats and protocols
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
5509bffa 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
4624540b
FB
18 */
19#include "avformat.h"
20
21/* If you do not call this function, then you can select exactly which
22 formats you want to support */
23
24/**
25 * Initialize libavcodec and register all the codecs and formats.
26 */
27void av_register_all(void)
28{
caaeefc5 29 static int inited = 0;
115329f1 30
caaeefc5
MN
31 if (inited != 0)
32 return;
33 inited = 1;
34
4624540b
FB
35 avcodec_init();
36 avcodec_register_all();
37
38 mpegps_init();
39 mpegts_init();
a9e35095 40#ifdef CONFIG_MUXERS
4624540b
FB
41 crc_init();
42 img_init();
03cfe134 43 img2_init();
a9e35095 44#endif //CONFIG_MUXERS
4624540b 45 raw_init();
6a58e151 46 mp3_init();
4624540b
FB
47 rm_init();
48 asf_init();
a9e35095 49#ifdef CONFIG_MUXERS
4624540b 50 avienc_init();
a9e35095 51#endif //CONFIG_MUXERS
4624540b 52 avidec_init();
c3775e54 53 ff_wav_init();
93a23627 54 ff_mmf_init();
4624540b
FB
55 swf_init();
56 au_init();
a9e35095 57#ifdef CONFIG_MUXERS
4624540b 58 gif_init();
a9e35095 59#endif //CONFIG_MUXERS
4624540b 60 mov_init();
a9e35095 61#ifdef CONFIG_MUXERS
1cb5f7fd 62 movenc_init();
4624540b 63 jpeg_init();
a9e35095 64#endif //CONFIG_MUXERS
c3775e54 65 ff_dv_init();
3c96b4ef 66 fourxm_init();
a9e35095 67#ifdef CONFIG_MUXERS
d4f5d74a 68 flvenc_init();
a9e35095 69#endif //CONFIG_MUXERS
d4f5d74a 70 flvdec_init();
3f16d933 71 str_init();
3ef8be2b
MM
72 roq_init();
73 ipmovie_init();
493645eb 74 wc3_init();
2fdf638b
MM
75 westwood_init();
76 film_init();
4120a53a 77 idcin_init();
42cad81a 78 flic_init();
a7eb3c8d 79 vmd_init();
87a0a681 80
d663a1fd 81#if defined(AMR_NB) || defined(AMR_NB_FIXED) || defined(AMR_WB)
bc634f6f
ZK
82 amr_init();
83#endif
2864dfd5 84 yuv4mpeg_init();
9146ca37 85
81e0d0b4 86 ogg_init();
9146ca37
MR
87#ifdef CONFIG_LIBOGG
88 libogg_init();
81e0d0b4
MH
89#endif
90
4624540b 91 ffm_init();
0a7b514f
LA
92#if defined(CONFIG_VIDEO4LINUX2)
93 v4l2_init();
94#endif
6beefa40 95#if defined(CONFIG_VIDEO4LINUX) || defined(CONFIG_BKTR)
4624540b
FB
96 video_grab_init();
97#endif
dfdfa47c 98#if defined(CONFIG_AUDIO_OSS) || defined(CONFIG_AUDIO_BEOS)
4624540b
FB
99 audio_init();
100#endif
101
8aa3ee32
MK
102#ifdef CONFIG_DV1394
103 dv1394_init();
104#endif
105
f02be79d
RS
106#ifdef CONFIG_DC1394
107 dc1394_init();
108#endif
109
3aa180b8 110 nut_init();
08abe0fd 111 matroska_init();
d08d7142 112 sol_init();
ad81a9fe 113 ea_init();
27d5f18f 114 nsvdec_init();
b93f738f 115 daud_init();
3aa180b8 116
a9e35095 117#ifdef CONFIG_MUXERS
87a0a681 118 /* image formats */
9286699a 119#if 0
87a0a681
FB
120 av_register_image_format(&pnm_image_format);
121 av_register_image_format(&pbm_image_format);
122 av_register_image_format(&pgm_image_format);
123 av_register_image_format(&ppm_image_format);
8975ba81 124 av_register_image_format(&pam_image_format);
87a0a681
FB
125 av_register_image_format(&pgmyuv_image_format);
126 av_register_image_format(&yuv_image_format);
3a13f6bd 127#ifdef CONFIG_ZLIB
0e04e4e9 128 av_register_image_format(&png_image_format);
3a13f6bd 129#endif
0250738f 130 av_register_image_format(&jpeg_image_format);
9286699a 131#endif
115329f1 132 av_register_image_format(&gif_image_format);
568e18b1 133// av_register_image_format(&sgi_image_format); heap corruption, dont enable
a9e35095 134#endif //CONFIG_MUXERS
87a0a681 135
04f46ced 136#ifdef CONFIG_PROTOCOLS
4624540b
FB
137 /* file protocols */
138 register_protocol(&file_protocol);
139 register_protocol(&pipe_protocol);
140#ifdef CONFIG_NETWORK
141 rtsp_init();
142 rtp_init();
143 register_protocol(&udp_protocol);
144 register_protocol(&rtp_protocol);
145 register_protocol(&tcp_protocol);
146 register_protocol(&http_protocol);
147#endif
04f46ced 148#endif
4624540b 149}