Libav
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
svq1enc.h
Go to the documentation of this file.
1
/*
2
* SVQ1 encoder
3
*
4
* This file is part of Libav.
5
*
6
* Libav 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
* Libav 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 Libav; 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
uint16_t *
mb_type
;
63
uint32_t *
dummy
;
64
int16_t (*
motion_val8
[3])[2];
65
int16_t (*
motion_val16
[3])[2];
66
67
int64_t
rd_total
;
68
69
uint8_t
*
scratchbuf
;
70
71
int (*
ssd_int8_vs_int16
)(
const
int8_t *pix1,
const
int16_t *pix2,
72
int
size
);
73
}
SVQ1EncContext
;
74
75
void
ff_svq1enc_init_ppc
(
SVQ1EncContext
*c);
76
void
ff_svq1enc_init_x86
(
SVQ1EncContext
*c);
77
78
#endif
/* AVCODEC_SVQ1ENC_H */
size
int size
Definition:
twinvq_data.h:11134
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:135
SVQ1EncContext::mb_type
uint16_t * mb_type
Definition:
svq1enc.h:62
SVQ1EncContext::frame_height
int frame_height
Definition:
svq1enc.h:52
PutBitContext
Definition:
put_bits.h:35
SVQ1EncContext::m
MpegEncContext m
Definition:
svq1enc.h:38
SVQ1EncContext::current_picture
AVFrame * current_picture
Definition:
svq1enc.h:42
SVQ1EncContext::c_block_height
int c_block_height
Definition:
svq1enc.h:60
mpegvideo.h
mpegvideo header.
SVQ1EncContext::y_block_height
int y_block_height
Definition:
svq1enc.h:56
uint8_t
uint8_t
Definition:
audio_convert.c:194
SVQ1EncContext::frame_width
int frame_width
Definition:
svq1enc.h:51
SVQ1EncContext::gb
GetBitContext gb
Definition:
svq1enc.h:45
get_bits.h
bitstream reader API header.
SVQ1EncContext::ssd_int8_vs_int16
int(* ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2, int size)
Definition:
svq1enc.h:71
SVQ1EncContext::c_block_width
int c_block_width
Definition:
svq1enc.h:59
SVQ1EncContext::rd_total
int64_t rd_total
Definition:
svq1enc.h:67
SVQ1EncContext::scratchbuf
uint8_t * scratchbuf
Definition:
svq1enc.h:69
SVQ1EncContext::y_block_width
int y_block_width
Definition:
svq1enc.h:55
SVQ1EncContext::motion_val16
int16_t(*[3] motion_val16)[2]
Definition:
svq1enc.h:65
frame.h
reference-counted frame API
SVQ1EncContext::reorder_pb
PutBitContext reorder_pb[6]
Definition:
svq1enc.h:49
HpelDSPContext
Half-pel DSP context.
Definition:
hpeldsp.h:45
SVQ1EncContext::mecc
MECmpContext mecc
Definition:
svq1enc.h:40
ff_svq1enc_init_ppc
void ff_svq1enc_init_ppc(SVQ1EncContext *c)
Definition:
svq1enc_altivec.c:77
me_cmp.h
SVQ1EncContext::pb
PutBitContext pb
Definition:
svq1enc.h:44
SVQ1EncContext::motion_val8
int16_t(*[3] motion_val8)[2]
Definition:
svq1enc.h:64
hpeldsp.h
Half-pel DSP functions.
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1050
ff_svq1enc_init_x86
void ff_svq1enc_init_x86(SVQ1EncContext *c)
Definition:
svq1enc.c:64
SVQ1EncContext::last_picture
AVFrame * last_picture
Definition:
svq1enc.h:43
MpegEncContext
MpegEncContext.
Definition:
mpegvideo.h:204
GetBitContext
Definition:
get_bits.h:53
SVQ1EncContext::avctx
AVCodecContext * avctx
Definition:
svq1enc.h:39
SVQ1EncContext::dummy
uint32_t * dummy
Definition:
svq1enc.h:63
SVQ1EncContext::hdsp
HpelDSPContext hdsp
Definition:
svq1enc.h:41
SVQ1EncContext
Definition:
svq1enc.h:34
MECmpContext
Definition:
me_cmp.h:38
put_bits.h
bitstream writer API
Generated on Wed Apr 26 2017 07:18:46 for Libav by
1.8.8