annotate vorbis.h @ 12197:fbf4d5b1b664 libavcodec

Remove FF_MM_SSE2/3 flags for CPUs where this is generally not faster than regular MMX code. Examples of this are the Core1 CPU. Instead, set a new flag, FF_MM_SSE2/3SLOW, which can be checked for particular SSE2/3 functions that have been checked specifically on such CPUs and are actually faster than their MMX counterparts. In addition, use this flag to enable particular VP8 and LPC SSE2 functions that are faster than their MMX counterparts. Based on a patch by Loren Merritt <lorenm AT u washington edu>.
author rbultje
date Mon, 19 Jul 2010 22:38:23 +0000
parents 032a8dc03ced
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
1 /*
3798
6e7b9a44800c vorbis.h -> vorbis_data.c
ods15
parents: 3699
diff changeset
2 * copyright (c) 2006 Oded Shimon <ods15@ods15.dyndns.org>
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
3 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
4 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
5 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
8 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
10 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
14 * Lesser General Public License for more details.
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
15 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3805
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
19 */
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3571
diff changeset
20
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7129
diff changeset
21 #ifndef AVCODEC_VORBIS_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7129
diff changeset
22 #define AVCODEC_VORBIS_H
2697
4fe1c19fc7a3 Vorbis decoder by (Balatoni Denes | dbalatoni programozo hu)
michael
parents:
diff changeset
23
3803
7ffa21b125a6 100l, broke ffmpeg compilation, ABS() and uint* types not defined in vorbis_data.c
ods15
parents: 3802
diff changeset
24 #include "avcodec.h"
7ffa21b125a6 100l, broke ffmpeg compilation, ABS() and uint* types not defined in vorbis_data.c
ods15
parents: 3802
diff changeset
25
3798
6e7b9a44800c vorbis.h -> vorbis_data.c
ods15
parents: 3699
diff changeset
26 extern const float ff_vorbis_floor1_inverse_db_table[256];
7129
322023e630a6 mark read-only data as const
stefang
parents: 5830
diff changeset
27 extern const float * const ff_vorbis_vwin[8];
11051
5d4991dd23de Add support for vorbis 6.1 and 7.1 channel configurations as per the new spec
superdump
parents: 10347
diff changeset
28 extern const uint8_t ff_vorbis_channel_layout_offsets[8][8];
11977
032a8dc03ced Fix libvorbis encoding with more than 2 channels
mstorsjo
parents: 11375
diff changeset
29 extern const uint8_t ff_vorbis_encoding_channel_layout_offsets[8][8];
11051
5d4991dd23de Add support for vorbis 6.1 and 7.1 channel configurations as per the new spec
superdump
parents: 10347
diff changeset
30 extern const int64_t ff_vorbis_channel_layouts[9];
2697
4fe1c19fc7a3 Vorbis decoder by (Balatoni Denes | dbalatoni programozo hu)
michael
parents:
diff changeset
31
3801
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
32 typedef struct {
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
33 uint_fast16_t x;
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
34 uint_fast16_t sort;
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
35 uint_fast16_t low;
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
36 uint_fast16_t high;
8306
ddecbc18fe94 Rename all vorbis encoder related typedefs to not use _t for POSIX compatibility
ods15
parents: 7760
diff changeset
37 } vorbis_floor1_entry;
3801
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
38
8306
ddecbc18fe94 Rename all vorbis encoder related typedefs to not use _t for POSIX compatibility
ods15
parents: 7760
diff changeset
39 void ff_vorbis_ready_floor1_list(vorbis_floor1_entry * list, int values);
3802
094fe185d054 make some more functions global so they can be shared with vorbis_enc.c
ods15
parents: 3801
diff changeset
40 unsigned int ff_vorbis_nth_root(unsigned int x, unsigned int n); // x^(1/n)
094fe185d054 make some more functions global so they can be shared with vorbis_enc.c
ods15
parents: 3801
diff changeset
41 int ff_vorbis_len2vlc(uint8_t *bits, uint32_t *codes, uint_fast32_t num);
10309
d157ccc267e7 brace placement and linebreak cosmetics
diego
parents: 8306
diff changeset
42 void ff_vorbis_floor1_render_list(vorbis_floor1_entry * list, int values,
d157ccc267e7 brace placement and linebreak cosmetics
diego
parents: 8306
diff changeset
43 uint_fast16_t * y_list, int * flag,
d157ccc267e7 brace placement and linebreak cosmetics
diego
parents: 8306
diff changeset
44 int multiplier, float * out, int samples);
11375
84963c795459 Move some prototypes from dsputil.c to reasonable header files
mru
parents: 11051
diff changeset
45 void vorbis_inverse_coupling(float *mag, float *ang, int blocksize);
3802
094fe185d054 make some more functions global so they can be shared with vorbis_enc.c
ods15
parents: 3801
diff changeset
46
094fe185d054 make some more functions global so they can be shared with vorbis_enc.c
ods15
parents: 3801
diff changeset
47 #define ilog(i) av_log2(2*(i))
3801
203cd258fc20 make ready_floor1_list() shared for vorbis_enc.c
ods15
parents: 3798
diff changeset
48
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 7129
diff changeset
49 #endif /* AVCODEC_VORBIS_H */