Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
msmpeg4data.h
Go to the documentation of this file.
1
/*
2
* MSMPEG4 backend for encoder and decoder
3
* copyright (c) 2001 Fabrice Bellard
4
* copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5
*
6
* msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at>
7
*
8
* This file is part of Libav.
9
*
10
* Libav is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU Lesser General Public
12
* License as published by the Free Software Foundation; either
13
* version 2.1 of the License, or (at your option) any later version.
14
*
15
* Libav is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
* Lesser General Public License for more details.
19
*
20
* You should have received a copy of the GNU Lesser General Public
21
* License along with Libav; if not, write to the Free Software
22
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
*/
24
30
#ifndef AVCODEC_MSMPEG4DATA_H
31
#define AVCODEC_MSMPEG4DATA_H
32
33
#include "
libavutil/common.h
"
34
#include "
get_bits.h
"
35
#include "
rl.h
"
36
37
/* motion vector table */
38
typedef
struct
MVTable
{
39
int
n
;
40
const
uint16_t *
table_mv_code
;
41
const
uint8_t *
table_mv_bits
;
42
const
uint8_t *
table_mvx
;
43
const
uint8_t *
table_mvy
;
44
uint16_t *
table_mv_index
;
/* encoding: convert mv to index in table_mv */
45
VLC
vlc
;
/* decoding: vlc */
46
}
MVTable
;
47
48
extern
VLC
ff_msmp4_mb_i_vlc
;
49
extern
VLC
ff_msmp4_dc_luma_vlc
[2];
50
extern
VLC
ff_msmp4_dc_chroma_vlc
[2];
51
52
/* intra picture macroblock coded block pattern */
53
extern
const
uint16_t
ff_msmp4_mb_i_table
[64][2];
54
55
#define WMV1_SCANTABLE_COUNT 4
56
57
extern
const
uint8_t
wmv1_scantable
[
WMV1_SCANTABLE_COUNT
][64];
58
59
#define NB_RL_TABLES 6
60
61
extern
RLTable
rl_table
[
NB_RL_TABLES
];
62
63
extern
const
uint8_t
wmv1_y_dc_scale_table
[32];
64
extern
const
uint8_t
wmv1_c_dc_scale_table
[32];
65
extern
const
uint8_t
old_ff_y_dc_scale_table
[32];
66
67
extern
MVTable
mv_tables
[2];
68
69
extern
const
uint8_t
v2_mb_type
[8][2];
70
extern
const
uint8_t
v2_intra_cbpc
[4][2];
71
72
extern
const
uint32_t
table_mb_non_intra
[128][2];
73
extern
const
uint8_t
table_inter_intra
[4][2];
74
75
extern
const
uint32_t
ff_table0_dc_lum
[120][2];
76
extern
const
uint32_t
ff_table1_dc_lum
[120][2];
77
extern
const
uint32_t
ff_table0_dc_chroma
[120][2];
78
extern
const
uint32_t
ff_table1_dc_chroma
[120][2];
79
80
#define WMV2_INTER_CBP_TABLE_COUNT 4
81
extern
const
uint32_t (*
const
wmv2_inter_table
[
WMV2_INTER_CBP_TABLE_COUNT
])[2];
82
83
extern
const
uint8_t
wmv2_scantableA
[64];
84
extern
const
uint8_t
wmv2_scantableB
[64];
85
86
#endif
/* AVCODEC_MSMPEG4DATA_H */