Mercurial > libavcodec.hg
annotate allcodecs.c @ 1477:afc7baa19b62 libavcodec
fix Interplay DPCM (frames are intracoded, predictors do not carry
forward to next block, initial predictors go to the output)
author | tmmm |
---|---|
date | Fri, 19 Sep 2003 04:41:02 +0000 |
parents | 47f4c8a5a7fc |
children | f22010affdce |
rev | line source |
---|---|
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
1 /* |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
2 * Utils for libavcodec |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
3 * Copyright (c) 2002 Fabrice Bellard. |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
4 * |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
5 * This library is free software; you can redistribute it and/or |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
6 * modify it under the terms of the GNU Lesser General Public |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
7 * License as published by the Free Software Foundation; either |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
8 * version 2 of the License, or (at your option) any later version. |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
9 * |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
10 * This library is distributed in the hope that it will be useful, |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
13 * Lesser General Public License for more details. |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
14 * |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
15 * You should have received a copy of the GNU Lesser General Public |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
16 * License along with this library; if not, write to the Free Software |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
18 */ |
1106 | 19 |
20 /** | |
21 * @file allcodecs.c | |
22 * Utils for libavcodec. | |
23 */ | |
24 | |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
25 #include "avcodec.h" |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
26 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
27 /* If you do not call this function, then you can select exactly which |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
28 formats you want to support */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
29 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
30 /** |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
31 * simple call to register all the codecs. |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
32 */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
33 void avcodec_register_all(void) |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
34 { |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
35 static int inited = 0; |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
36 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
37 if (inited != 0) |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
38 return; |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
39 inited = 1; |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
40 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
41 /* encoders */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
42 #ifdef CONFIG_ENCODERS |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
43 register_avcodec(&ac3_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
44 register_avcodec(&mp2_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
45 #ifdef CONFIG_MP3LAME |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
46 register_avcodec(&mp3lame_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
47 #endif |
636
57b9a37546a0
oggvorbis support patch by (Mark Hills <mark at pogo dot org dot uk>)
michaelni
parents:
573
diff
changeset
|
48 #ifdef CONFIG_VORBIS |
57b9a37546a0
oggvorbis support patch by (Mark Hills <mark at pogo dot org dot uk>)
michaelni
parents:
573
diff
changeset
|
49 register_avcodec(&oggvorbis_encoder); |
883 | 50 register_avcodec(&oggvorbis_decoder); |
636
57b9a37546a0
oggvorbis support patch by (Mark Hills <mark at pogo dot org dot uk>)
michaelni
parents:
573
diff
changeset
|
51 #endif |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
52 register_avcodec(&mpeg1video_encoder); |
1168 | 53 // register_avcodec(&h264_encoder); |
1042 | 54 #ifdef CONFIG_RISKY |
1421 | 55 register_avcodec(&mpeg2video_encoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
56 register_avcodec(&h263_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
57 register_avcodec(&h263p_encoder); |
1357 | 58 register_avcodec(&flv_encoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
59 register_avcodec(&rv10_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
60 register_avcodec(&mpeg4_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
61 register_avcodec(&msmpeg4v1_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
62 register_avcodec(&msmpeg4v2_encoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
63 register_avcodec(&msmpeg4v3_encoder); |
500 | 64 register_avcodec(&wmv1_encoder); |
936 | 65 register_avcodec(&wmv2_encoder); |
1042 | 66 #endif |
67 register_avcodec(&mjpeg_encoder); | |
1315
6696d3bf4ff2
lossless mjpeg encoding (planar yuv & RGB) and somerelated bugfixes
michaelni
parents:
1304
diff
changeset
|
68 register_avcodec(&ljpeg_encoder); |
866 | 69 register_avcodec(&huffyuv_encoder); |
1273 | 70 register_avcodec(&asv1_encoder); |
1434 | 71 register_avcodec(&asv2_encoder); |
1300
e18667d1e94d
FFV1 codec (our very simple lossless intra only codec, compresses much better then huffyuv)
michaelni
parents:
1297
diff
changeset
|
72 register_avcodec(&ffv1_encoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
73 #endif /* CONFIG_ENCODERS */ |
1231
b88dfc4bbf8c
* introducing new public interface in imgconvert.c
romansh
parents:
1224
diff
changeset
|
74 register_avcodec(&rawvideo_encoder); |
b88dfc4bbf8c
* introducing new public interface in imgconvert.c
romansh
parents:
1224
diff
changeset
|
75 register_avcodec(&rawvideo_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
76 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
77 /* decoders */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
78 #ifdef CONFIG_DECODERS |
1042 | 79 #ifdef CONFIG_RISKY |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
80 register_avcodec(&h263_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
81 register_avcodec(&mpeg4_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
82 register_avcodec(&msmpeg4v1_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
83 register_avcodec(&msmpeg4v2_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
84 register_avcodec(&msmpeg4v3_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
85 register_avcodec(&wmv1_decoder); |
936 | 86 register_avcodec(&wmv2_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
87 register_avcodec(&h263i_decoder); |
1357 | 88 register_avcodec(&flv_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
89 register_avcodec(&rv10_decoder); |
521 | 90 register_avcodec(&svq1_decoder); |
1234 | 91 register_avcodec(&svq3_decoder); |
1042 | 92 register_avcodec(&wmav1_decoder); |
93 register_avcodec(&wmav2_decoder); | |
1190 | 94 register_avcodec(&indeo3_decoder); |
1245 | 95 #ifdef CONFIG_FAAD |
96 register_avcodec(&aac_decoder); | |
97 register_avcodec(&mpeg4aac_decoder); | |
98 #endif | |
1042 | 99 #endif |
1423 | 100 register_avcodec(&mpeg1video_decoder); |
101 register_avcodec(&mpeg2video_decoder); | |
1381 | 102 #ifdef HAVE_XVMC |
103 register_avcodec(&mpeg_xvmc_decoder); | |
104 #endif | |
724 | 105 register_avcodec(&dvvideo_decoder); |
1036 | 106 register_avcodec(&dvaudio_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
107 register_avcodec(&mjpeg_decoder); |
881 | 108 register_avcodec(&mjpegb_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
109 register_avcodec(&mp2_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
110 register_avcodec(&mp3_decoder); |
827
770578c6c300
added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
michaelni
parents:
783
diff
changeset
|
111 register_avcodec(&mace3_decoder); |
770578c6c300
added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
michaelni
parents:
783
diff
changeset
|
112 register_avcodec(&mace6_decoder); |
866 | 113 register_avcodec(&huffyuv_decoder); |
1300
e18667d1e94d
FFV1 codec (our very simple lossless intra only codec, compresses much better then huffyuv)
michaelni
parents:
1297
diff
changeset
|
114 register_avcodec(&ffv1_decoder); |
1056 | 115 register_avcodec(&cyuv_decoder); |
1168 | 116 register_avcodec(&h264_decoder); |
1224 | 117 register_avcodec(&vp3_decoder); |
1273 | 118 register_avcodec(&asv1_decoder); |
1433 | 119 register_avcodec(&asv2_decoder); |
1374 | 120 register_avcodec(&vcr1_decoder); |
1385 | 121 register_avcodec(&cljr_decoder); |
1293 | 122 register_avcodec(&fourxm_decoder); |
1410
524c904a66b8
PSX MDEC decoder, based upon some code from Sebastian Jedruszkiewicz <elf at frogger dot rules dot pl>
michaelni
parents:
1385
diff
changeset
|
123 register_avcodec(&mdec_decoder); |
1439
a4d00b1f0271
initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents:
1434
diff
changeset
|
124 register_avcodec(&roq_decoder); |
a4d00b1f0271
initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents:
1434
diff
changeset
|
125 register_avcodec(&interplay_video_decoder); |
1443
47f4c8a5a7fc
New fringe codecs: WC3/Xan video, Xan DPCM, DK3 & DK4 ADPCM
tmmm
parents:
1439
diff
changeset
|
126 register_avcodec(&xan_wc3_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
127 #ifdef CONFIG_AC3 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
128 register_avcodec(&ac3_decoder); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
129 #endif |
1304
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
1300
diff
changeset
|
130 register_avcodec(&ra_144_decoder); |
e8543aab0cc9
RealAudio 1.0 (14_4) and 2.0 (28_8) native decoders. Author unknown, code from a mplayerhq (originally from public domain player for Amiga
nickols_k
parents:
1300
diff
changeset
|
131 register_avcodec(&ra_288_decoder); |
1439
a4d00b1f0271
initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents:
1434
diff
changeset
|
132 register_avcodec(&roq_dpcm_decoder); |
a4d00b1f0271
initial commit for Id RoQ and Interplay MVE multimedia subsystems
tmmm
parents:
1434
diff
changeset
|
133 register_avcodec(&interplay_dpcm_decoder); |
1443
47f4c8a5a7fc
New fringe codecs: WC3/Xan video, Xan DPCM, DK3 & DK4 ADPCM
tmmm
parents:
1439
diff
changeset
|
134 register_avcodec(&xan_dpcm_decoder); |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
135 #endif /* CONFIG_DECODERS */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
136 |
1258
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
137 #ifdef AMR_NB |
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
138 register_avcodec(&amr_nb_decoder); |
1297 | 139 register_avcodec(&amr_nb_encoder); |
1258
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
140 #endif /* AMR_NB */ |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
141 /* pcm codecs */ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
142 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
143 #define PCM_CODEC(id, name) \ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
144 register_avcodec(& name ## _encoder); \ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
145 register_avcodec(& name ## _decoder); \ |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
146 |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
147 PCM_CODEC(CODEC_ID_PCM_S16LE, pcm_s16le); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
148 PCM_CODEC(CODEC_ID_PCM_S16BE, pcm_s16be); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
149 PCM_CODEC(CODEC_ID_PCM_U16LE, pcm_u16le); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
150 PCM_CODEC(CODEC_ID_PCM_U16BE, pcm_u16be); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
151 PCM_CODEC(CODEC_ID_PCM_S8, pcm_s8); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
152 PCM_CODEC(CODEC_ID_PCM_U8, pcm_u8); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
153 PCM_CODEC(CODEC_ID_PCM_ALAW, pcm_alaw); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
154 PCM_CODEC(CODEC_ID_PCM_MULAW, pcm_mulaw); |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
155 |
573
b0f52172f4c5
beos/mov/adpcm patch by Franois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
156 /* adpcm codecs */ |
b0f52172f4c5
beos/mov/adpcm patch by Franois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
157 PCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt); |
b0f52172f4c5
beos/mov/adpcm patch by Franois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
158 PCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav); |
1443
47f4c8a5a7fc
New fringe codecs: WC3/Xan video, Xan DPCM, DK3 & DK4 ADPCM
tmmm
parents:
1439
diff
changeset
|
159 PCM_CODEC(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3); |
47f4c8a5a7fc
New fringe codecs: WC3/Xan video, Xan DPCM, DK3 & DK4 ADPCM
tmmm
parents:
1439
diff
changeset
|
160 PCM_CODEC(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4); |
573
b0f52172f4c5
beos/mov/adpcm patch by Franois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
161 PCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms); |
1296 | 162 PCM_CODEC(CODEC_ID_ADPCM_4XM, adpcm_4xm); |
573
b0f52172f4c5
beos/mov/adpcm patch by Franois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
163 |
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
164 #undef PCM_CODEC |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
165 } |
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
166 |