annotate aac_tablegen.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 4b2300246240
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11932
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
1 /*
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
2 * Header file for hardcoded AAC tables
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
3 *
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
4 * Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
5 *
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
6 * This file is part of FFmpeg.
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
7 *
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
12 *
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
16 * Lesser General Public License for more details.
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
17 *
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
21 */
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
22
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
23 #ifndef AAC_TABLEGEN_H
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
24 #define AAC_TABLEGEN_H
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
25
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
26 #include "aac_tablegen_decl.h"
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
27
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
28 #if CONFIG_HARDCODED_TABLES
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
29 #include "libavcodec/aac_tables.h"
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
30 #else
11967
4b2300246240 Remove unnecessary ../ from include directives
mru
parents: 11932
diff changeset
31 #include "libavutil/mathematics.h"
11932
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
32 float ff_aac_pow2sf_tab[428];
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
33
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
34 void ff_aac_tableinit(void)
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
35 {
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
36 int i;
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
37 for (i = 0; i < 428; i++)
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
38 ff_aac_pow2sf_tab[i] = pow(2, (i - 200) / 4.);
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
39 }
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
40 #endif /* CONFIG_HARDCODED_TABLES */
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
41
ebe049799f6d aactab: Tablegenify ff_aac_pow2sf_tab.
alexc
parents:
diff changeset
42 #endif /* AAC_TABLEGEN_H */