Libav
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
28
#include "
avcodec.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
46
/* Some compression statistics */
47
enum
AVPictureType
pict_type
;
48
int
quality
;
49
50
/* why ooh why this sick breadth first order,
51
* everything is slower and more complex */
52
PutBitContext
reorder_pb
[6];
53
54
int
frame_width
;
55
int
frame_height
;
56
57
/* Y plane block dimensions */
58
int
y_block_width
;
59
int
y_block_height
;
60
61
/* U & V plane (C planes) block dimensions */
62
int
c_block_width
;
63
int
c_block_height
;
64
65
uint16_t *
mb_type
;
66
uint32_t *
dummy
;
67
int16_t (*
motion_val8
[3])[2];
68
int16_t (*
motion_val16
[3])[2];
69
70
int64_t
rd_total
;
71
72
uint8_t
*
scratchbuf
;
73
74
int
motion_est
;
75
76
int (*
ssd_int8_vs_int16
)(
const
int8_t *pix1,
const
int16_t *pix2,
77
int
size
);
78
}
SVQ1EncContext
;
79
80
void
ff_svq1enc_init_ppc
(
SVQ1EncContext
*c);
81
void
ff_svq1enc_init_x86
(
SVQ1EncContext
*c);
82
83
#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:140
SVQ1EncContext::mb_type
uint16_t * mb_type
Definition:
svq1enc.h:65
SVQ1EncContext::frame_height
int frame_height
Definition:
svq1enc.h:55
PutBitContext
Definition:
put_bits.h:35
SVQ1EncContext::ssd_int8_vs_int16
int(* ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2, int size)
Definition:
svq1enc.h:76
SVQ1EncContext::m
MpegEncContext m
Definition:
svq1enc.h:38
SVQ1EncContext::current_picture
AVFrame * current_picture
Definition:
svq1enc.h:42
SVQ1EncContext::quality
int quality
Definition:
svq1enc.h:48
SVQ1EncContext::c_block_height
int c_block_height
Definition:
svq1enc.h:63
mpegvideo.h
mpegvideo header.
SVQ1EncContext::y_block_height
int y_block_height
Definition:
svq1enc.h:59
uint8_t
uint8_t
Definition:
audio_convert.c:194
SVQ1EncContext::frame_width
int frame_width
Definition:
svq1enc.h:54
SVQ1EncContext::pict_type
enum AVPictureType pict_type
Definition:
svq1enc.h:47
SVQ1EncContext::c_block_width
int c_block_width
Definition:
svq1enc.h:62
SVQ1EncContext::rd_total
int64_t rd_total
Definition:
svq1enc.h:70
SVQ1EncContext::scratchbuf
uint8_t * scratchbuf
Definition:
svq1enc.h:72
SVQ1EncContext::y_block_width
int y_block_width
Definition:
svq1enc.h:58
SVQ1EncContext::motion_val16
int16_t(*[3] motion_val16)[2]
Definition:
svq1enc.h:68
SVQ1EncContext::motion_est
int motion_est
Definition:
svq1enc.h:74
frame.h
reference-counted frame API
SVQ1EncContext::reorder_pb
PutBitContext reorder_pb[6]
Definition:
svq1enc.h:52
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:67
hpeldsp.h
Half-pel DSP functions.
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1409
AVPictureType
AVPictureType
Definition:
avutil.h:259
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:76
SVQ1EncContext::avctx
AVCodecContext * avctx
Definition:
svq1enc.h:39
SVQ1EncContext::dummy
uint32_t * dummy
Definition:
svq1enc.h:66
SVQ1EncContext::hdsp
HpelDSPContext hdsp
Definition:
svq1enc.h:41
SVQ1EncContext
Definition:
svq1enc.h:34
MECmpContext
Definition:
me_cmp.h:39
put_bits.h
bitstream writer API
Generated on Fri Dec 1 2017 07:11:58 for Libav by
1.8.13