annotate wmv2.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 98970e51365a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5939
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
1 /*
8629
04423b2f6e0b cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 7760
diff changeset
2 * Copyright (c) 2002 The FFmpeg Project
5939
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
3 *
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
4 * This file is part of FFmpeg.
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
5 *
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
10 *
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
14 * Lesser General Public License for more details.
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
15 *
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
19 */
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
20
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6571
diff changeset
21 #ifndef AVCODEC_WMV2_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6571
diff changeset
22 #define AVCODEC_WMV2_H
5939
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
23
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
24 #include "avcodec.h"
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
25 #include "dsputil.h"
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
26 #include "mpegvideo.h"
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
27 #include "intrax8.h"
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
28
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
29 #define SKIP_TYPE_NONE 0
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
30 #define SKIP_TYPE_MPEG 1
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
31 #define SKIP_TYPE_ROW 2
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
32 #define SKIP_TYPE_COL 3
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
33
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
34
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
35 typedef struct Wmv2Context{
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
36 MpegEncContext s;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
37 IntraX8Context x8;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
38 int j_type_bit;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
39 int j_type;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
40 int abt_flag;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
41 int abt_type;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
42 int abt_type_table[6];
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
43 int per_mb_abt;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
44 int per_block_abt;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
45 int mspel_bit;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
46 int cbp_table_index;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
47 int top_left_mv_flag;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
48 int per_mb_rl_bit;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
49 int skip_type;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
50 int hshift;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
51
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
52 ScanTable abt_scantable[2];
11369
98970e51365a Remove DECLARE_ALIGNED_{8,16} macros
mru
parents: 10961
diff changeset
53 DECLARE_ALIGNED(16, DCTELEM, abt_block2)[6][64];
5939
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
54 }Wmv2Context;
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
55
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
56 void ff_wmv2_common_init(Wmv2Context * w);
b47573cb7401 split wmv2 encoder and decoder in their own files
aurel
parents:
diff changeset
57
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 6571
diff changeset
58 #endif /* AVCODEC_WMV2_H */