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
svq1enc.h
Go to the documentation of this file.
1
/*
2
* SVQ1 encoder
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVCODEC_SVQ1ENC_H
22
#define AVCODEC_SVQ1ENC_H
23
24
#include <stdint.h>
25
26
#include "
libavutil/frame.h
"
27
#include "
avcodec.h
"
28
#include "
get_bits.h
"
29
#include "
hpeldsp.h
"
30
#include "
me_cmp.h
"
31
#include "
mpegvideo.h
"
32
#include "
put_bits.h
"
33
34
typedef
struct
SVQ1EncContext
{
35
/* FIXME: Needed for motion estimation, should not be used for anything
36
* else, the idea is to make the motion estimation eventually independent
37
* of MpegEncContext, so this will be removed then. */
38
MpegEncContext
m
;
39
AVCodecContext
*
avctx
;
40
MECmpContext
mecc
;
41
HpelDSPContext
hdsp
;
42
AVFrame
*
current_picture
;
43
AVFrame
*
last_picture
;
44
PutBitContext
pb
;
45
GetBitContext
gb
;
46
47
/* why ooh why this sick breadth first order,
48
* everything is slower and more complex */
49
PutBitContext
reorder_pb
[6];
50
51
int
frame_width
;
52
int
frame_height
;
53
54
/* Y plane block dimensions */
55
int
y_block_width
;
56
int
y_block_height
;
57
58
/* U & V plane (C planes) block dimensions */
59
int
c_block_width
;
60
int
c_block_height
;
61
62
DECLARE_ALIGNED
(16, int16_t,
encoded_block_levels
)[6][7][256];
63
64
uint16_t *
mb_type
;
65
uint32_t *
dummy
;
66
int16_t (*
motion_val8
[3])[2];
67
int16_t (*
motion_val16
[3])[2];
68
69
int64_t
rd_total
;
70
71
uint8_t
*
scratchbuf
;
72
73
int (*
ssd_int8_vs_int16
)(
const
int8_t *pix1,
const
int16_t *pix2,
74
intptr_t
size
);
75
}
SVQ1EncContext
;
76
77
void
ff_svq1enc_init_ppc
(
SVQ1EncContext
*
c
);
78
void
ff_svq1enc_init_x86
(
SVQ1EncContext
*
c
);
79
80
#endif
/* AVCODEC_SVQ1ENC_H */
Generated on Sun Mar 8 2015 02:35:00 for FFmpeg by
1.8.2