Mercurial > libavcodec.hg
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 |
rev | line source |
---|---|
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
3571
diff
changeset
|
1 /* |
3798 | 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 | 21 #ifndef AVCODEC_VORBIS_H |
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 | 26 extern const float ff_vorbis_floor1_inverse_db_table[256]; |
7129 | 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 | 32 typedef struct { |
33 uint_fast16_t x; | |
34 uint_fast16_t sort; | |
35 uint_fast16_t low; | |
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 | 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 | 42 void ff_vorbis_floor1_render_list(vorbis_floor1_entry * list, int values, |
43 uint_fast16_t * y_list, int * flag, | |
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 | 48 |
7760 | 49 #endif /* AVCODEC_VORBIS_H */ |