Mercurial > libavcodec.hg
annotate allcodecs.c @ 1352:e8ff4783f188 libavcodec
1) remove TBL support in PPC performance. It's much more useful to use the
PMCs, and with Apple's CHUD it's fairly easy too. No reason to keep useless
code around
2) make the PPC perf stuff a configure option
3) make put_pixels16_altivec a bit faster by unrolling the loop by 4
patch by (Romain Dolbeau <dolbeau at irisa dot fr>)
| author | michaelni |
|---|---|
| date | Wed, 09 Jul 2003 20:18:13 +0000 |
| parents | 6696d3bf4ff2 |
| children | 540dd445bf0f |
| 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 |
|
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
55 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
|
56 register_avcodec(&h263p_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(&rv10_encoder); |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
58 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
|
59 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
|
60 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
|
61 register_avcodec(&msmpeg4v3_encoder); |
| 500 | 62 register_avcodec(&wmv1_encoder); |
| 936 | 63 register_avcodec(&wmv2_encoder); |
| 1042 | 64 #endif |
| 65 register_avcodec(&mjpeg_encoder); | |
|
1315
6696d3bf4ff2
lossless mjpeg encoding (planar yuv & RGB) and somerelated bugfixes
michaelni
parents:
1304
diff
changeset
|
66 register_avcodec(&ljpeg_encoder); |
| 866 | 67 register_avcodec(&huffyuv_encoder); |
| 1273 | 68 register_avcodec(&asv1_encoder); |
|
1300
e18667d1e94d
FFV1 codec (our very simple lossless intra only codec, compresses much better then huffyuv)
michaelni
parents:
1297
diff
changeset
|
69 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
|
70 #endif /* CONFIG_ENCODERS */ |
|
1231
b88dfc4bbf8c
* introducing new public interface in imgconvert.c
romansh
parents:
1224
diff
changeset
|
71 register_avcodec(&rawvideo_encoder); |
|
b88dfc4bbf8c
* introducing new public interface in imgconvert.c
romansh
parents:
1224
diff
changeset
|
72 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
|
73 |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
74 /* decoders */ |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
75 #ifdef CONFIG_DECODERS |
| 1042 | 76 #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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 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
|
82 register_avcodec(&wmv1_decoder); |
| 936 | 83 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
|
84 register_avcodec(&h263i_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(&rv10_decoder); |
| 521 | 86 register_avcodec(&svq1_decoder); |
| 1234 | 87 register_avcodec(&svq3_decoder); |
| 1042 | 88 register_avcodec(&wmav1_decoder); |
| 89 register_avcodec(&wmav2_decoder); | |
| 1190 | 90 register_avcodec(&indeo3_decoder); |
| 1245 | 91 #ifdef CONFIG_FAAD |
| 92 register_avcodec(&aac_decoder); | |
| 93 register_avcodec(&mpeg4aac_decoder); | |
| 94 #endif | |
| 1042 | 95 #endif |
| 96 register_avcodec(&mpeg_decoder); | |
| 724 | 97 register_avcodec(&dvvideo_decoder); |
| 1036 | 98 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
|
99 register_avcodec(&mjpeg_decoder); |
| 881 | 100 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
|
101 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
|
102 register_avcodec(&mp3_decoder); |
|
827
770578c6c300
added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
michaelni
parents:
783
diff
changeset
|
103 register_avcodec(&mace3_decoder); |
|
770578c6c300
added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support
michaelni
parents:
783
diff
changeset
|
104 register_avcodec(&mace6_decoder); |
| 866 | 105 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
|
106 register_avcodec(&ffv1_decoder); |
| 1056 | 107 register_avcodec(&cyuv_decoder); |
| 1168 | 108 register_avcodec(&h264_decoder); |
| 1224 | 109 register_avcodec(&vp3_decoder); |
| 1273 | 110 register_avcodec(&asv1_decoder); |
| 1293 | 111 register_avcodec(&fourxm_decoder); |
|
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
112 #ifdef CONFIG_AC3 |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
113 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
|
114 #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
|
115 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
|
116 register_avcodec(&ra_288_decoder); |
|
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
117 #endif /* CONFIG_DECODERS */ |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
118 |
|
1258
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
119 #ifdef AMR_NB |
|
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
120 register_avcodec(&amr_nb_decoder); |
| 1297 | 121 register_avcodec(&amr_nb_encoder); |
|
1258
802614404398
AMR-NB audio support patch by (<joca at rixmail dot se>)
michaelni
parents:
1245
diff
changeset
|
122 #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
|
123 /* pcm codecs */ |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
124 |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
125 #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
|
126 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
|
127 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
|
128 |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 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
|
136 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
|
137 |
|
573
b0f52172f4c5
beos/mov/adpcm patch by Fran?ois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
138 /* adpcm codecs */ |
|
b0f52172f4c5
beos/mov/adpcm patch by Fran?ois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
139 PCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt); |
|
b0f52172f4c5
beos/mov/adpcm patch by Fran?ois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
140 PCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav); |
|
b0f52172f4c5
beos/mov/adpcm patch by Fran?ois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
141 PCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms); |
| 1296 | 142 PCM_CODEC(CODEC_ID_ADPCM_4XM, adpcm_4xm); |
|
573
b0f52172f4c5
beos/mov/adpcm patch by Fran?ois Revol <revol at free dot fr>
michaelni
parents:
521
diff
changeset
|
143 |
|
491
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
144 #undef PCM_CODEC |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
145 } |
|
66d470d19feb
put codec registering in another file so that the user can install the codecs he wants
bellard
parents:
diff
changeset
|
146 |
