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
roqvideo.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2003 Mike Melanson
3
* Copyright (C) 2003 Dr. Tim Ferguson
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_ROQVIDEO_H
23
#define AVCODEC_ROQVIDEO_H
24
25
#include "
libavutil/lfg.h
"
26
#include "
avcodec.h
"
27
#include "
bytestream.h
"
28
29
typedef
struct
roq_cell
{
30
unsigned
char
y
[4];
31
unsigned
char
u
,
v
;
32
}
roq_cell
;
33
34
typedef
struct
roq_qcell
{
35
int
idx
[4];
36
}
roq_qcell
;
37
38
typedef
struct
motion_vect
{
39
int
d
[2];
40
}
motion_vect
;
41
42
struct
RoqTempData;
43
44
typedef
struct
RoqContext
{
45
46
const
AVClass
*
class
;
47
AVCodecContext
*
avctx
;
48
AVFrame
*
last_frame
;
49
AVFrame
*
current_frame
;
50
int
first_frame
;
51
52
roq_cell
cb2x2
[256];
53
roq_qcell
cb4x4
[256];
54
55
GetByteContext
gb
;
56
int
width
,
height
;
57
58
/* Encoder only data */
59
AVLFG
randctx
;
60
uint64_t
lambda
;
61
62
motion_vect
*
this_motion4
;
63
motion_vect
*
last_motion4
;
64
65
motion_vect
*
this_motion8
;
66
motion_vect
*
last_motion8
;
67
68
unsigned
int
framesSinceKeyframe
;
69
70
const
AVFrame
*
frame_to_enc
;
71
uint8_t
*
out_buf
;
72
struct
RoqTempData *
tmpData
;
73
74
int
quake3_compat
;
// Quake 3 compatibility option
75
76
}
RoqContext
;
77
78
#define RoQ_INFO 0x1001
79
#define RoQ_QUAD_CODEBOOK 0x1002
80
#define RoQ_QUAD_VQ 0x1011
81
#define RoQ_SOUND_MONO 0x1020
82
#define RoQ_SOUND_STEREO 0x1021
83
84
#define RoQ_ID_MOT 0x00
85
#define RoQ_ID_FCC 0x01
86
#define RoQ_ID_SLD 0x02
87
#define RoQ_ID_CCC 0x03
88
89
void
ff_apply_vector_2x2
(
RoqContext
*ri,
int
x,
int
y,
roq_cell
*
cell
);
90
void
ff_apply_vector_4x4
(
RoqContext
*ri,
int
x,
int
y,
roq_cell
*
cell
);
91
92
void
ff_apply_motion_4x4
(
RoqContext
*ri,
int
x,
int
y,
int
deltax,
int
deltay);
93
94
void
ff_apply_motion_8x8
(
RoqContext
*ri,
int
x,
int
y,
int
deltax,
int
deltay);
95
96
#endif
/* AVCODEC_ROQVIDEO_H */
AVLFG
Definition:
lfg.h:27
GetByteContext
Definition:
bytestream.h:33
motion_vect::d
int d[2]
Definition:
roqvideo.h:39
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:201
RoqContext::this_motion4
motion_vect * this_motion4
Definition:
roqvideo.h:62
RoqContext::frame_to_enc
const AVFrame * frame_to_enc
Definition:
roqvideo.h:70
motion_vect
Definition:
roqvideo.h:38
roq_cell
Definition:
roqvideo.h:29
RoqContext
Definition:
roqvideo.h:44
ff_apply_vector_2x2
void ff_apply_vector_2x2(RoqContext *ri, int x, int y, roq_cell *cell)
Definition:
roqvideo.c:41
RoqContext::this_motion8
motion_vect * this_motion8
Definition:
roqvideo.h:65
RoqContext::current_frame
AVFrame * current_frame
Definition:
roqvideo.h:49
RoqContext::last_motion4
motion_vect * last_motion4
Definition:
roqvideo.h:63
RoqContext::width
int width
Definition:
roqvideo.h:56
RoqContext::randctx
AVLFG randctx
Definition:
roqvideo.h:59
uint8_t
uint8_t
Definition:
audio_convert.c:194
RoqContext::framesSinceKeyframe
unsigned int framesSinceKeyframe
Definition:
roqvideo.h:68
roq_qcell
Definition:
roqvideo.h:34
ff_apply_vector_4x4
void ff_apply_vector_4x4(RoqContext *ri, int x, int y, roq_cell *cell)
Definition:
roqvideo.c:71
RoqContext::cb4x4
roq_qcell cb4x4[256]
Definition:
roqvideo.h:53
roq_cell::u
unsigned char u
Definition:
roqvideo.h:31
bytestream.h
ff_apply_motion_4x4
void ff_apply_motion_4x4(RoqContext *ri, int x, int y, int deltax, int deltay)
Definition:
roqvideo.c:133
cell
In the ELBG jargon, a cell is the set of points that are closest to a codebook entry.
Definition:
elbg.c:39
RoqContext::tmpData
struct RoqTempData * tmpData
Definition:
roqvideo.h:72
lfg.h
roq_qcell::idx
int idx[4]
Definition:
roqvideo.h:35
RoqContext::first_frame
int first_frame
Definition:
roqvideo.h:50
avcodec.h
Libavcodec external API header.
AVCodecContext
main external API structure.
Definition:
avcodec.h:1761
RoqContext::gb
GetByteContext gb
Definition:
roqvideo.h:55
roq_cell::y
unsigned char y[4]
Definition:
roqvideo.h:30
RoqContext::lambda
uint64_t lambda
Definition:
roqvideo.h:60
AVClass
Describe the class of an AVClass context structure.
Definition:
log.h:67
RoqContext::quake3_compat
int quake3_compat
Definition:
roqvideo.h:74
RoqContext::avctx
AVCodecContext * avctx
Definition:
roqvideo.h:47
RoqContext::out_buf
uint8_t * out_buf
Definition:
roqvideo.h:71
ff_apply_motion_8x8
void ff_apply_motion_8x8(RoqContext *ri, int x, int y, int deltax, int deltay)
Definition:
roqvideo.c:139
RoqContext::last_motion8
motion_vect * last_motion8
Definition:
roqvideo.h:66
RoqContext::cb2x2
roq_cell cb2x2[256]
Definition:
roqvideo.h:52
RoqContext::last_frame
AVFrame * last_frame
Definition:
roqvideo.h:48
roq_cell::v
unsigned char v
Definition:
roqvideo.h:31
RoqContext::height
int height
Definition:
roqvideo.h:56
Generated on Fri Jan 12 2018 01:47:49 for FFmpeg by
1.8.6