annotate allformats.c @ 355:46029c682234 libavformat

seeking stuff adaptively change middle position selection algo for seeking, this avoids some ugly worstcases of the interpolated variant avoid backward search for mpeg where possible, its 17 times slower then forward according to my benchmark
author michael
date Sat, 17 Jan 2004 20:26:44 +0000
parents 6f50cb0ead51
children 9416dc106e06
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
2 * Register all the formats and protocols
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
4 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
13 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 * License along with this library; if not, write to the Free Software
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
18 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
19 #include "avformat.h"
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
20
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21 /* If you do not call this function, then you can select exactly which
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22 formats you want to support */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
24 /**
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
25 * Initialize libavcodec and register all the codecs and formats.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 void av_register_all(void)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29 avcodec_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 avcodec_register_all();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 mpegps_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 mpegts_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
34 #ifdef CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 crc_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 img_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
37 #endif //CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 raw_init();
234
b99548e3ab84 ID3 parsing and generation in MP3 format
bellard
parents: 225
diff changeset
39 mp3_init();
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40 rm_init();
40
721705c1f995 --disable-risky support
michaelni
parents: 29
diff changeset
41 #ifdef CONFIG_RISKY
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
42 asf_init();
40
721705c1f995 --disable-risky support
michaelni
parents: 29
diff changeset
43 #endif
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
44 #ifdef CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
45 avienc_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
46 #endif //CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
47 avidec_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48 wav_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49 swf_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 au_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
51 #ifdef CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52 gif_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
53 #endif //CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 mov_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
55 #ifdef CONFIG_ENCODERS
201
85def00971c3 mov, 3gp, mp4 muxer by (Thomas Raivio <tjraivio at cc dot hut dot fi>)
michaelni
parents: 184
diff changeset
56 movenc_init();
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57 jpeg_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
58 #endif //CONFIG_ENCODERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 dv_init();
138
7373bd0a8438 add 4xm to the family
tmmm
parents: 109
diff changeset
60 fourxm_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
61 #ifdef CONFIG_ENCODERS
164
99fbacf0f764 flash video (flv) support patch by (Garrick Meeker <gmeeker at theoryllc dot com>)
michaelni
parents: 146
diff changeset
62 flvenc_init();
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
63 #endif //CONFIG_ENCODERS
164
99fbacf0f764 flash video (flv) support patch by (Garrick Meeker <gmeeker at theoryllc dot com>)
michaelni
parents: 146
diff changeset
64 flvdec_init();
209
7414bbf64011 first pass at PSX STR demuxer; does not yet interact correctly with MDEC
tmmm
parents: 201
diff changeset
65 str_init();
211
349d63d52e7e initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents: 209
diff changeset
66 roq_init();
349d63d52e7e initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents: 209
diff changeset
67 ipmovie_init();
225
d0332f4362b6 demuxer for custom Wing Commander III movie (.mve) files
tmmm
parents: 219
diff changeset
68 wc3_init();
266
8bb470d85249 New demuxers: Sega FILM/CPK, Westwood VQA & AUD; new decoders: MS RLE &
tmmm
parents: 258
diff changeset
69 westwood_init();
8bb470d85249 New demuxers: Sega FILM/CPK, Westwood VQA & AUD; new decoders: MS RLE &
tmmm
parents: 258
diff changeset
70 film_init();
274
9fa2ec3b9982 implemented Id Quake II CIN support
tmmm
parents: 266
diff changeset
71 idcin_init();
315
ff595fc022ff yep, FLI support
melanson
parents: 279
diff changeset
72 flic_init();
338
6f50cb0ead51 initial commit for Sierra VMD file demuxer
melanson
parents: 315
diff changeset
73 vmd_init();
20
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
74
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 234
diff changeset
75 #if defined(AMR_NB) || defined(AMR_NB_FIXED) || defined(AMR_WB)
146
b9703b3c10b6 * 3gp patch by Joca
kabi
parents: 138
diff changeset
76 amr_init();
b9703b3c10b6 * 3gp patch by Joca
kabi
parents: 138
diff changeset
77 #endif
184
2438e76dde67 yuv4mpeg pipe reader for libavformat patch by (D Richard Felker III <dalias at aerifal dot cx>)
michaelni
parents: 164
diff changeset
78 yuv4mpeg_init();
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
79
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
80 #ifdef CONFIG_VORBIS
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
81 ogg_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
82 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
83
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
84 #ifndef CONFIG_WIN32
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
85 ffm_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
86 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
87 #ifdef CONFIG_VIDEO4LINUX
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
88 video_grab_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
89 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
90 #if defined(CONFIG_AUDIO_OSS) || defined(CONFIG_AUDIO_BEOS)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
91 audio_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
92 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93
27
fcdea3df94fe dv patch by Max Krasnyansky (maxk at qualcomm dot com)
bellard
parents: 20
diff changeset
94 #ifdef CONFIG_DV1394
fcdea3df94fe dv patch by Max Krasnyansky (maxk at qualcomm dot com)
bellard
parents: 20
diff changeset
95 dv1394_init();
fcdea3df94fe dv patch by Max Krasnyansky (maxk at qualcomm dot com)
bellard
parents: 20
diff changeset
96 #endif
fcdea3df94fe dv patch by Max Krasnyansky (maxk at qualcomm dot com)
bellard
parents: 20
diff changeset
97
219
2f16e3066399 initial nut muxer and demuxer (demuxer is not fail safe)
al3x
parents: 211
diff changeset
98 nut_init();
2f16e3066399 initial nut muxer and demuxer (demuxer is not fail safe)
al3x
parents: 211
diff changeset
99
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
100 #ifdef CONFIG_ENCODERS
20
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
101 /* image formats */
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
102 av_register_image_format(&pnm_image_format);
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
103 av_register_image_format(&pbm_image_format);
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
104 av_register_image_format(&pgm_image_format);
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
105 av_register_image_format(&ppm_image_format);
109
c82a6062485e added new netpbm pam format support (needed for alpha plane support)
bellard
parents: 71
diff changeset
106 av_register_image_format(&pam_image_format);
20
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
107 av_register_image_format(&pgmyuv_image_format);
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
108 av_register_image_format(&yuv_image_format);
71
a803af1b10be * compile PNG only when ZLIB is available
kabi
parents: 52
diff changeset
109 #ifdef CONFIG_ZLIB
44
7c5da7e7239a added basic png handling
bellard
parents: 40
diff changeset
110 av_register_image_format(&png_image_format);
71
a803af1b10be * compile PNG only when ZLIB is available
kabi
parents: 52
diff changeset
111 #endif
47
45308962220f added jpeg image encoder and decoder (new YUV handling routines and mjpeg codec fixes are necessary to go further)
bellard
parents: 44
diff changeset
112 av_register_image_format(&jpeg_image_format);
52
2a60f406fccc added GIF image format (both read and write)
bellard
parents: 47
diff changeset
113 av_register_image_format(&gif_image_format);
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 274
diff changeset
114 #endif //CONFIG_ENCODERS
20
3d52de18ecc3 added still image support
bellard
parents: 0
diff changeset
115
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
116 /* file protocols */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
117 register_protocol(&file_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
118 register_protocol(&pipe_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
119 #ifdef CONFIG_NETWORK
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
120 rtsp_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
121 rtp_init();
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
122 register_protocol(&udp_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
123 register_protocol(&rtp_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
124 register_protocol(&tcp_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
125 register_protocol(&http_protocol);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
126 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
127 }