FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
mpeg12.h
Go to the documentation of this file.
1
/*
2
* MPEG1/2 common code
3
* Copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#ifndef AVCODEC_MPEG12_H
23
#define AVCODEC_MPEG12_H
24
25
#include "
mpegvideo.h
"
26
27
#define DC_VLC_BITS 9
28
#define MV_VLC_BITS 9
29
#define TEX_VLC_BITS 9
30
31
#define MBINCR_VLC_BITS 9
32
#define MB_PAT_VLC_BITS 9
33
#define MB_PTYPE_VLC_BITS 6
34
#define MB_BTYPE_VLC_BITS 6
35
36
extern
VLC
ff_dc_lum_vlc
;
37
extern
VLC
ff_dc_chroma_vlc
;
38
extern
VLC
ff_mbincr_vlc
;
39
extern
VLC
ff_mb_ptype_vlc
;
40
extern
VLC
ff_mb_btype_vlc
;
41
extern
VLC
ff_mb_pat_vlc
;
42
extern
VLC
ff_mv_vlc
;
43
44
extern
uint8_t
ff_mpeg12_static_rl_table_store
[2][2][2*
MAX_RUN
+
MAX_LEVEL
+ 3];
45
46
void
ff_mpeg12_common_init
(
MpegEncContext
*
s
);
47
void
ff_mpeg12_init_vlcs
(
void
);
48
49
static
inline
int
decode_dc
(
GetBitContext
*gb,
int
component)
50
{
51
int
code, diff;
52
53
if
(component == 0) {
54
code =
get_vlc2
(gb, ff_dc_lum_vlc.
table
,
DC_VLC_BITS
, 2);
55
}
else
{
56
code =
get_vlc2
(gb, ff_dc_chroma_vlc.
table
,
DC_VLC_BITS
, 2);
57
}
58
if
(code < 0){
59
av_log
(NULL,
AV_LOG_ERROR
,
"invalid dc code at\n"
);
60
return
0xffff;
61
}
62
if
(code == 0) {
63
diff = 0;
64
}
else
{
65
diff =
get_xbits
(gb, code);
66
}
67
return
diff;
68
}
69
70
int
ff_mpeg1_decode_block_intra
(
MpegEncContext
*
s
, int16_t *
block
,
int
n
);
71
void
ff_mpeg1_clean_buffers
(
MpegEncContext
*
s
);
72
int
ff_mpeg1_find_frame_end
(
ParseContext
*pc,
const
uint8_t
*
buf
,
int
buf_size,
AVCodecParserContext
*
s
);
73
74
#endif
/* AVCODEC_MPEG12_H */
Generated on Sat Jan 25 2014 19:51:51 for FFmpeg by
1.8.2