Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
3d52bca6
Commit
3d52bca6
authored
Dec 11, 2008
by
Aurelien Jacobs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avoid POSIX reserved _t suffix
Originally committed as revision 16068 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
e998ba4f
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
139 additions
and
139 deletions
+139
-139
huffman.c
libavcodec/huffman.c
+1
-1
huffman.h
libavcodec/huffman.h
+2
-2
vp5.c
libavcodec/vp5.c
+18
-18
vp56.c
libavcodec/vp56.c
+30
-30
vp56.h
libavcodec/vp56.h
+46
-46
vp56data.c
libavcodec/vp56data.c
+2
-2
vp56data.h
libavcodec/vp56data.h
+8
-8
vp6.c
libavcodec/vp6.c
+31
-31
vp6data.h
libavcodec/vp6data.h
+1
-1
No files found.
libavcodec/huffman.c
View file @
3d52bca6
...
...
@@ -67,7 +67,7 @@ static int build_huff_tree(VLC *vlc, Node *nodes, int head, int flags)
* first nb_codes nodes.count must be set
*/
int
ff_huff_build_tree
(
AVCodecContext
*
avctx
,
VLC
*
vlc
,
int
nb_codes
,
Node
*
nodes
,
huff_cmp_t
cmp
,
int
flags
)
Node
*
nodes
,
HuffCmp
cmp
,
int
flags
)
{
int
i
,
j
;
int
cur_node
;
...
...
libavcodec/huffman.h
View file @
3d52bca6
...
...
@@ -35,8 +35,8 @@ typedef struct {
#define FF_HUFFMAN_FLAG_HNODE_FIRST 0x01
#define FF_HUFFMAN_FLAG_ZERO_COUNT 0x02
typedef
int
(
*
huff_cmp_t
)(
const
void
*
va
,
const
void
*
vb
);
typedef
int
(
*
HuffCmp
)(
const
void
*
va
,
const
void
*
vb
);
int
ff_huff_build_tree
(
AVCodecContext
*
avctx
,
VLC
*
vlc
,
int
nb_codes
,
Node
*
nodes
,
huff_cmp_t
cmp
,
int
flags
);
Node
*
nodes
,
HuffCmp
cmp
,
int
flags
);
#endif
/* AVCODEC_HUFFMAN_H */
libavcodec/vp5.c
View file @
3d52bca6
...
...
@@ -33,10 +33,10 @@
#include "vp5data.h"
static
int
vp5_parse_header
(
vp56_context_
t
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
static
int
vp5_parse_header
(
VP56Contex
t
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
int
*
golden_frame
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
VP56RangeCoder
*
c
=
&
s
->
c
;
int
rows
,
cols
;
vp56_init_range_decoder
(
&
s
->
c
,
buf
,
buf_size
);
...
...
@@ -84,10 +84,10 @@ static int vp5_adjust(int v, int t)
return
v
;
}
static
void
vp5_parse_vector_adjustment
(
vp56_context_t
*
s
,
vp56_mv_t
*
vect
)
static
void
vp5_parse_vector_adjustment
(
VP56Context
*
s
,
VP56mv
*
vect
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
comp
,
di
;
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
...
...
@@ -108,10 +108,10 @@ static void vp5_parse_vector_adjustment(vp56_context_t *s, vp56_mv_t *vect)
}
}
static
void
vp5_parse_vector_models
(
vp56_context_
t
*
s
)
static
void
vp5_parse_vector_models
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
comp
,
node
;
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
...
...
@@ -131,10 +131,10 @@ static void vp5_parse_vector_models(vp56_context_t *s)
model
->
vector_pdv
[
comp
][
node
]
=
vp56_rac_gets_nn
(
c
,
7
);
}
static
void
vp5_parse_coeff_models
(
vp56_context_
t
*
s
)
static
void
vp5_parse_coeff_models
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
uint8_t
def_prob
[
11
];
int
node
,
cg
,
ctx
;
int
ct
;
/* code type */
...
...
@@ -177,10 +177,10 @@ static void vp5_parse_coeff_models(vp56_context_t *s)
model
->
coeff_acct
[
pt
][
ct
][
cg
][
ctx
][
node
]
=
av_clip
(((
model
->
coeff_ract
[
pt
][
ct
][
cg
][
node
]
*
vp5_ract_lc
[
ct
][
cg
][
node
][
ctx
][
0
]
+
128
)
>>
8
)
+
vp5_ract_lc
[
ct
][
cg
][
node
][
ctx
][
1
],
1
,
254
);
}
static
void
vp5_parse_coeff
(
vp56_context_
t
*
s
)
static
void
vp5_parse_coeff
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
uint8_t
*
permute
=
s
->
scantable
.
permutated
;
uint8_t
*
model1
,
*
model2
;
int
coeff
,
sign
,
coeff_idx
;
...
...
@@ -250,9 +250,9 @@ static void vp5_parse_coeff(vp56_context_t *s)
}
}
static
void
vp5_default_models_init
(
vp56_context_
t
*
s
)
static
void
vp5_default_models_init
(
VP56Contex
t
*
s
)
{
vp56_model_t
*
model
=
s
->
modelp
;
Vp56Model
*
model
=
s
->
modelp
;
int
i
;
for
(
i
=
0
;
i
<
2
;
i
++
)
{
...
...
@@ -267,7 +267,7 @@ static void vp5_default_models_init(vp56_context_t *s)
static
av_cold
int
vp5_decode_init
(
AVCodecContext
*
avctx
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
vp56_init
(
avctx
,
1
,
0
);
s
->
vp56_coord_div
=
vp5_coord_div
;
...
...
@@ -286,7 +286,7 @@ AVCodec vp5_decoder = {
"vp5"
,
CODEC_TYPE_VIDEO
,
CODEC_ID_VP5
,
sizeof
(
vp56_context_
t
),
sizeof
(
VP56Contex
t
),
vp5_decode_init
,
NULL
,
vp56_free
,
...
...
libavcodec/vp56.c
View file @
3d52bca6
...
...
@@ -28,20 +28,20 @@
#include "vp56data.h"
void
vp56_init_dequant
(
vp56_context_
t
*
s
,
int
quantizer
)
void
vp56_init_dequant
(
VP56Contex
t
*
s
,
int
quantizer
)
{
s
->
quantizer
=
quantizer
;
s
->
dequant_dc
=
vp56_dc_dequant
[
quantizer
]
<<
2
;
s
->
dequant_ac
=
vp56_ac_dequant
[
quantizer
]
<<
2
;
}
static
int
vp56_get_vectors_predictors
(
vp56_context_
t
*
s
,
int
row
,
int
col
,
vp56_frame_t
ref_frame
)
static
int
vp56_get_vectors_predictors
(
VP56Contex
t
*
s
,
int
row
,
int
col
,
VP56Frame
ref_frame
)
{
int
nb_pred
=
0
;
vp56_mv_t
vect
[
2
]
=
{{
0
,
0
},
{
0
,
0
}};
VP56mv
vect
[
2
]
=
{{
0
,
0
},
{
0
,
0
}};
int
pos
,
offset
;
vp56_mv_t
mvp
;
VP56mv
mvp
;
for
(
pos
=
0
;
pos
<
12
;
pos
++
)
{
mvp
.
x
=
col
+
vp56_candidate_predictor_pos
[
pos
][
0
];
...
...
@@ -73,10 +73,10 @@ static int vp56_get_vectors_predictors(vp56_context_t *s, int row, int col,
return
nb_pred
+
1
;
}
static
void
vp56_parse_mb_type_models
(
vp56_context_
t
*
s
)
static
void
vp56_parse_mb_type_models
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
i
,
ctx
,
type
;
for
(
ctx
=
0
;
ctx
<
3
;
ctx
++
)
{
...
...
@@ -144,11 +144,11 @@ static void vp56_parse_mb_type_models(vp56_context_t *s)
}
}
static
vp56_mb_t
vp56_parse_mb_type
(
vp56_context_
t
*
s
,
vp56_mb_t
prev_type
,
int
ctx
)
static
VP56mb
vp56_parse_mb_type
(
VP56Contex
t
*
s
,
VP56mb
prev_type
,
int
ctx
)
{
uint8_t
*
mb_type_model
=
s
->
modelp
->
mb_type
[
ctx
][
prev_type
];
vp56_range_coder_t
*
c
=
&
s
->
c
;
VP56RangeCoder
*
c
=
&
s
->
c
;
if
(
vp56_rac_get_prob
(
c
,
mb_type_model
[
0
]))
return
prev_type
;
...
...
@@ -156,9 +156,9 @@ static vp56_mb_t vp56_parse_mb_type(vp56_context_t *s,
return
vp56_rac_get_tree
(
c
,
vp56_pmbt_tree
,
mb_type_model
);
}
static
void
vp56_decode_4mv
(
vp56_context_
t
*
s
,
int
row
,
int
col
)
static
void
vp56_decode_4mv
(
VP56Contex
t
*
s
,
int
row
,
int
col
)
{
vp56_mv_t
mv
=
{
0
,
0
};
VP56mv
mv
=
{
0
,
0
};
int
type
[
4
];
int
b
;
...
...
@@ -173,7 +173,7 @@ static void vp56_decode_4mv(vp56_context_t *s, int row, int col)
for
(
b
=
0
;
b
<
4
;
b
++
)
{
switch
(
type
[
b
])
{
case
VP56_MB_INTER_NOVEC_PF
:
s
->
mv
[
b
]
=
(
vp56_mv_t
)
{
0
,
0
};
s
->
mv
[
b
]
=
(
VP56mv
)
{
0
,
0
};
break
;
case
VP56_MB_INTER_DELTA_PF
:
s
->
parse_vector_adjustment
(
s
,
&
s
->
mv
[
b
]);
...
...
@@ -197,13 +197,13 @@ static void vp56_decode_4mv(vp56_context_t *s, int row, int col)
s
->
mv
[
4
].
x
=
s
->
mv
[
5
].
x
=
RSHIFT
(
mv
.
x
,
2
);
s
->
mv
[
4
].
y
=
s
->
mv
[
5
].
y
=
RSHIFT
(
mv
.
y
,
2
);
}
else
{
s
->
mv
[
4
]
=
s
->
mv
[
5
]
=
(
vp56_mv_t
)
{
mv
.
x
/
4
,
mv
.
y
/
4
};
s
->
mv
[
4
]
=
s
->
mv
[
5
]
=
(
VP56mv
)
{
mv
.
x
/
4
,
mv
.
y
/
4
};
}
}
static
vp56_mb_t
vp56_decode_mv
(
vp56_context_
t
*
s
,
int
row
,
int
col
)
static
VP56mb
vp56_decode_mv
(
VP56Contex
t
*
s
,
int
row
,
int
col
)
{
vp56_mv_t
*
mv
,
vect
=
{
0
,
0
};
VP56mv
*
mv
,
vect
=
{
0
,
0
};
int
ctx
,
b
;
ctx
=
vp56_get_vectors_predictors
(
s
,
row
,
col
,
VP56_FRAME_PREVIOUS
);
...
...
@@ -258,14 +258,14 @@ static vp56_mb_t vp56_decode_mv(vp56_context_t *s, int row, int col)
return
s
->
mb_type
;
}
static
void
vp56_add_predictors_dc
(
vp56_context_t
*
s
,
vp56_frame_t
ref_frame
)
static
void
vp56_add_predictors_dc
(
VP56Context
*
s
,
VP56Frame
ref_frame
)
{
int
idx
=
s
->
scantable
.
permutated
[
0
];
int
b
;
for
(
b
=
0
;
b
<
6
;
b
++
)
{
vp56_ref_dc_t
*
ab
=
&
s
->
above_blocks
[
s
->
above_block_idx
[
b
]];
vp56_ref_dc_t
*
lb
=
&
s
->
left_block
[
vp56_b6to4
[
b
]];
VP56RefDc
*
ab
=
&
s
->
above_blocks
[
s
->
above_block_idx
[
b
]];
VP56RefDc
*
lb
=
&
s
->
left_block
[
vp56_b6to4
[
b
]];
int
count
=
0
;
int
dc
=
0
;
int
i
;
...
...
@@ -299,7 +299,7 @@ static void vp56_add_predictors_dc(vp56_context_t *s, vp56_frame_t ref_frame)
}
}
static
void
vp56_edge_filter
(
vp56_context_
t
*
s
,
uint8_t
*
yuv
,
static
void
vp56_edge_filter
(
VP56Contex
t
*
s
,
uint8_t
*
yuv
,
int
pix_inc
,
int
line_inc
,
int
t
)
{
int
pix2_inc
=
2
*
pix_inc
;
...
...
@@ -314,7 +314,7 @@ static void vp56_edge_filter(vp56_context_t *s, uint8_t *yuv,
}
}
static
void
vp56_deblock_filter
(
vp56_context_
t
*
s
,
uint8_t
*
yuv
,
static
void
vp56_deblock_filter
(
VP56Contex
t
*
s
,
uint8_t
*
yuv
,
int
stride
,
int
dx
,
int
dy
)
{
int
t
=
vp56_filter_threshold
[
s
->
quantizer
];
...
...
@@ -322,7 +322,7 @@ static void vp56_deblock_filter(vp56_context_t *s, uint8_t *yuv,
if
(
dy
)
vp56_edge_filter
(
s
,
yuv
+
stride
*
(
10
-
dy
),
stride
,
1
,
t
);
}
static
void
vp56_mc
(
vp56_context_
t
*
s
,
int
b
,
int
plane
,
uint8_t
*
src
,
static
void
vp56_mc
(
VP56Contex
t
*
s
,
int
b
,
int
plane
,
uint8_t
*
src
,
int
stride
,
int
x
,
int
y
)
{
uint8_t
*
dst
=
s
->
framep
[
VP56_FRAME_CURRENT
]
->
data
[
plane
]
+
s
->
block_offset
[
b
];
...
...
@@ -392,11 +392,11 @@ static void vp56_mc(vp56_context_t *s, int b, int plane, uint8_t *src,
}
}
static
void
vp56_decode_mb
(
vp56_context_
t
*
s
,
int
row
,
int
col
,
int
is_alpha
)
static
void
vp56_decode_mb
(
VP56Contex
t
*
s
,
int
row
,
int
col
,
int
is_alpha
)
{
AVFrame
*
frame_current
,
*
frame_ref
;
vp56_mb_t
mb_type
;
vp56_frame_t
ref_frame
;
VP56mb
mb_type
;
VP56Frame
ref_frame
;
int
b
,
ab
,
b_max
,
plane
,
off
;
if
(
s
->
framep
[
VP56_FRAME_CURRENT
]
->
key_frame
)
...
...
@@ -461,7 +461,7 @@ static void vp56_decode_mb(vp56_context_t *s, int row, int col, int is_alpha)
static
int
vp56_size_changed
(
AVCodecContext
*
avctx
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
int
stride
=
s
->
framep
[
VP56_FRAME_CURRENT
]
->
linesize
[
0
];
int
i
;
...
...
@@ -497,7 +497,7 @@ static int vp56_size_changed(AVCodecContext *avctx)
int
vp56_decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
data_size
,
const
uint8_t
*
buf
,
int
buf_size
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
AVFrame
*
const
p
=
s
->
framep
[
VP56_FRAME_CURRENT
];
int
remaining_buf_size
=
buf_size
;
int
is_alpha
,
alpha_offset
;
...
...
@@ -646,7 +646,7 @@ int vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
av_cold
void
vp56_init
(
AVCodecContext
*
avctx
,
int
flip
,
int
has_alpha
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
int
i
;
s
->
avctx
=
avctx
;
...
...
@@ -686,7 +686,7 @@ av_cold void vp56_init(AVCodecContext *avctx, int flip, int has_alpha)
av_cold
int
vp56_free
(
AVCodecContext
*
avctx
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
av_free
(
s
->
above_blocks
);
av_free
(
s
->
macroblocks
);
...
...
libavcodec/vp56.h
View file @
3d52bca6
...
...
@@ -30,20 +30,20 @@
#include "bytestream.h"
typedef
struct
vp56_context
vp56_context_
t
;
typedef
struct
vp56_mv
vp56_mv_t
;
typedef
struct
vp56_context
VP56Contex
t
;
typedef
struct
vp56_mv
VP56mv
;
typedef
void
(
*
vp56_parse_vector_adjustment_t
)(
vp56_context_
t
*
s
,
vp56_mv_t
*
vect
);
typedef
int
(
*
vp56_adjust_
t
)(
int
v
,
int
t
);
typedef
void
(
*
vp56_filter_t
)(
vp56_context_
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
typedef
void
(
*
VP56ParseVectorAdjustment
)(
VP56Contex
t
*
s
,
VP56mv
*
vect
);
typedef
int
(
*
VP56Adjus
t
)(
int
v
,
int
t
);
typedef
void
(
*
VP56Filter
)(
VP56Contex
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
int
offset1
,
int
offset2
,
int
stride
,
vp56_mv_t
mv
,
int
mask
,
int
select
,
int
luma
);
typedef
void
(
*
vp56_parse_coeff_t
)(
vp56_context_
t
*
s
);
typedef
void
(
*
vp56_default_models_init_t
)(
vp56_context_
t
*
s
);
typedef
void
(
*
vp56_parse_vector_models_t
)(
vp56_context_
t
*
s
);
typedef
void
(
*
vp56_parse_coeff_models_t
)(
vp56_context_
t
*
s
);
typedef
int
(
*
vp56_parse_header_t
)(
vp56_context_
t
*
s
,
const
uint8_t
*
buf
,
VP56mv
mv
,
int
mask
,
int
select
,
int
luma
);
typedef
void
(
*
VP56ParseCoeff
)(
VP56Contex
t
*
s
);
typedef
void
(
*
VP56DefaultModelsInit
)(
VP56Contex
t
*
s
);
typedef
void
(
*
VP56ParseVectorModels
)(
VP56Contex
t
*
s
);
typedef
void
(
*
VP56ParseCoeffModels
)(
VP56Contex
t
*
s
);
typedef
int
(
*
VP56ParseHeader
)(
VP56Contex
t
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
int
*
golden_frame
);
typedef
struct
{
...
...
@@ -51,13 +51,13 @@ typedef struct {
int
bits
;
const
uint8_t
*
buffer
;
unsigned
long
code_word
;
}
vp56_range_coder_t
;
}
VP56RangeCoder
;
typedef
struct
{
uint8_t
not_null_dc
;
vp56_frame_t
ref_frame
;
VP56Frame
ref_frame
;
DCTELEM
dc_coeff
;
}
vp56_ref_dc_t
;
}
VP56RefDc
;
struct
vp56_mv
{
int
x
;
...
...
@@ -66,8 +66,8 @@ struct vp56_mv {
typedef
struct
{
uint8_t
type
;
vp56_mv_t
mv
;
}
vp56_macroblock_t
;
VP56mv
mv
;
}
VP56Macroblock
;
typedef
struct
{
uint8_t
coeff_reorder
[
64
];
/* used in vp6 only */
...
...
@@ -84,7 +84,7 @@ typedef struct {
uint8_t
coeff_runv
[
2
][
14
];
/* run value (vp6 only) */
uint8_t
mb_type
[
3
][
10
][
10
];
/* model for decoding MB type */
uint8_t
mb_types_stats
[
3
][
10
][
2
];
/* contextual, next MB type stats */
}
vp56_model_t
;
}
Vp56Model
;
struct
vp56_context
{
AVCodecContext
*
avctx
;
...
...
@@ -94,9 +94,9 @@ struct vp56_context {
AVFrame
*
framep
[
6
];
uint8_t
*
edge_emu_buffer_alloc
;
uint8_t
*
edge_emu_buffer
;
vp56_range_coder_t
c
;
vp56_range_coder_t
cc
;
vp56_range_coder_t
*
ccp
;
VP56RangeCoder
c
;
VP56RangeCoder
cc
;
VP56RangeCoder
*
ccp
;
int
sub_version
;
/* frame info */
...
...
@@ -111,19 +111,19 @@ struct vp56_context {
uint16_t
dequant_ac
;
/* DC predictors management */
vp56_ref_dc_t
*
above_blocks
;
vp56_ref_dc_t
left_block
[
4
];
VP56RefDc
*
above_blocks
;
VP56RefDc
left_block
[
4
];
int
above_block_idx
[
6
];
DCTELEM
prev_dc
[
3
][
3
];
/* [plan][ref_frame] */
/* blocks / macroblock */
vp56_mb_t
mb_type
;
vp56_macroblock_t
*
macroblocks
;
VP56mb
mb_type
;
VP56Macroblock
*
macroblocks
;
DECLARE_ALIGNED_16
(
DCTELEM
,
block_coeff
[
6
][
64
]);
/* motion vectors */
vp56_mv_t
mv
[
6
];
/* vectors for each block in MB */
vp56_mv_t
vector_candidate
[
2
];
VP56mv
mv
[
6
];
/* vectors for each block in MB */
VP56mv
vector_candidate
[
2
];
int
vector_candidate_pos
;
/* filtering hints */
...
...
@@ -146,17 +146,17 @@ struct vp56_context {
int
stride
[
4
];
/* stride for each plan */
const
uint8_t
*
vp56_coord_div
;
vp56_parse_vector_adjustment_
t
parse_vector_adjustment
;
vp56_adjust_
t
adjust
;
vp56_filter_t
filter
;
vp56_parse_coeff_t
parse_coeff
;
vp56_default_models_init_
t
default_models_init
;
vp56_parse_vector_models_t
parse_vector_models
;
vp56_parse_coeff_models_t
parse_coeff_models
;
vp56_parse_header_t
parse_header
;
vp56_model_t
*
modelp
;
vp56_model_t
models
[
2
];
VP56ParseVectorAdjustmen
t
parse_vector_adjustment
;
VP56Adjus
t
adjust
;
VP56Filter
filter
;
VP56ParseCoeff
parse_coeff
;
VP56DefaultModelsIni
t
default_models_init
;
VP56ParseVectorModels
parse_vector_models
;
VP56ParseCoeffModels
parse_coeff_models
;
VP56ParseHeader
parse_header
;
Vp56Model
*
modelp
;
Vp56Model
models
[
2
];
/* huffman decoding */
int
use_huffman
;
...
...
@@ -170,7 +170,7 @@ struct vp56_context {
void
vp56_init
(
AVCodecContext
*
avctx
,
int
flip
,
int
has_alpha
);
int
vp56_free
(
AVCodecContext
*
avctx
);
void
vp56_init_dequant
(
vp56_context_
t
*
s
,
int
quantizer
);
void
vp56_init_dequant
(
VP56Contex
t
*
s
,
int
quantizer
);
int
vp56_decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
data_size
,
const
uint8_t
*
buf
,
int
buf_size
);
...
...
@@ -179,7 +179,7 @@ int vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
* vp56 specific range coder implementation
*/
static
inline
void
vp56_init_range_decoder
(
vp56_range_coder_t
*
c
,
static
inline
void
vp56_init_range_decoder
(
VP56RangeCoder
*
c
,
const
uint8_t
*
buf
,
int
buf_size
)
{
c
->
high
=
255
;
...
...
@@ -188,7 +188,7 @@ static inline void vp56_init_range_decoder(vp56_range_coder_t *c,
c
->
code_word
=
bytestream_get_be16
(
&
c
->
buffer
);
}
static
inline
int
vp56_rac_get_prob
(
vp56_range_coder_t
*
c
,
uint8_t
prob
)
static
inline
int
vp56_rac_get_prob
(
VP56RangeCoder
*
c
,
uint8_t
prob
)
{
unsigned
int
low
=
1
+
(((
c
->
high
-
1
)
*
prob
)
/
256
);
unsigned
int
low_shift
=
low
<<
8
;
...
...
@@ -213,7 +213,7 @@ static inline int vp56_rac_get_prob(vp56_range_coder_t *c, uint8_t prob)
return
bit
;
}
static
inline
int
vp56_rac_get
(
vp56_range_coder_t
*
c
)
static
inline
int
vp56_rac_get
(
VP56RangeCoder
*
c
)
{
/* equiprobable */
int
low
=
(
c
->
high
+
1
)
>>
1
;
...
...
@@ -235,7 +235,7 @@ static inline int vp56_rac_get(vp56_range_coder_t *c)
return
bit
;
}
static
inline
int
vp56_rac_gets
(
vp56_range_coder_t
*
c
,
int
bits
)
static
inline
int
vp56_rac_gets
(
VP56RangeCoder
*
c
,
int
bits
)
{
int
value
=
0
;
...
...
@@ -246,14 +246,14 @@ static inline int vp56_rac_gets(vp56_range_coder_t *c, int bits)
return
value
;
}
static
inline
int
vp56_rac_gets_nn
(
vp56_range_coder_t
*
c
,
int
bits
)
static
inline
int
vp56_rac_gets_nn
(
VP56RangeCoder
*
c
,
int
bits
)
{
int
v
=
vp56_rac_gets
(
c
,
7
)
<<
1
;
return
v
+
!
v
;
}
static
inline
int
vp56_rac_get_tree
(
vp56_range_coder_t
*
c
,
const
vp56_tree_t
*
tree
,
static
inline
int
vp56_rac_get_tree
(
VP56RangeCoder
*
c
,
const
VP56Tree
*
tree
,
const
uint8_t
*
probs
)
{
while
(
tree
->
val
>
0
)
{
...
...
libavcodec/vp56data.c
View file @
3d52bca6
...
...
@@ -44,7 +44,7 @@ const uint8_t vp56_def_mb_types_stats[3][10][2] = {
{
1
,
2
},
{
0
,
1
},
{
0
,
1
},
{
1
,
1
},
{
0
,
0
},
},
};
const
vp56_tree_t
vp56_pva_tree
[]
=
{
const
VP56Tree
vp56_pva_tree
[]
=
{
{
8
,
0
},
{
4
,
1
},
{
2
,
2
},
{
-
0
},
{
-
1
},
...
...
@@ -54,7 +54,7 @@ const vp56_tree_t vp56_pva_tree[] = {
{
2
,
6
},
{
-
6
},
{
-
7
},
};
const
vp56_tree_t
vp56_pc_tree
[]
=
{
const
VP56Tree
vp56_pc_tree
[]
=
{
{
4
,
6
},
{
2
,
7
},
{
-
0
},
{
-
1
},
{
4
,
8
},
...
...
libavcodec/vp56data.h
View file @
3d52bca6
...
...
@@ -34,7 +34,7 @@ typedef enum {
VP56_FRAME_GOLDEN2
=
3
,
VP56_FRAME_UNUSED
=
4
,
VP56_FRAME_UNUSED2
=
5
,
}
vp56_frame_t
;
}
VP56Frame
;
typedef
enum
{
VP56_MB_INTER_NOVEC_PF
=
0
,
/**< Inter MB, no vector, from previous frame */
...
...
@@ -47,23 +47,23 @@ typedef enum {
VP56_MB_INTER_4V
=
7
,
/**< Inter MB, 4 vectors, from previous frame */
VP56_MB_INTER_V1_GF
=
8
,
/**< Inter MB, first vector, from golden frame */
VP56_MB_INTER_V2_GF
=
9
,
/**< Inter MB, second vector, from golden frame */
}
vp56_mb_t
;
}
VP56mb
;
typedef
struct
{
int8_t
val
;
int8_t
prob_idx
;
}
vp56_tree_t
;
}
VP56Tree
;
extern
const
uint8_t
vp56_b2p
[];
extern
const
uint8_t
vp56_b6to4
[];
extern
const
uint8_t
vp56_coeff_parse_table
[
6
][
11
];
extern
const
uint8_t
vp56_def_mb_types_stats
[
3
][
10
][
2
];
extern
const
vp56_tree_t
vp56_pva_tree
[];
extern
const
vp56_tree_t
vp56_pc_tree
[];
extern
const
VP56Tree
vp56_pva_tree
[];
extern
const
VP56Tree
vp56_pc_tree
[];
extern
const
uint8_t
vp56_coeff_bias
[];
extern
const
uint8_t
vp56_coeff_bit_length
[];
static
const
vp56_frame_t
vp56_reference_frame
[]
=
{
static
const
VP56Frame
vp56_reference_frame
[]
=
{
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_NOVEC_PF */
VP56_FRAME_CURRENT
,
/* VP56_MB_INTRA */
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_DELTA_PF */
...
...
@@ -212,7 +212,7 @@ static const uint8_t vp56_mb_type_model_model[] = {
171
,
83
,
199
,
140
,
125
,
104
,
};
static
const
vp56_tree_t
vp56_pmbtm_tree
[]
=
{
static
const
VP56Tree
vp56_pmbtm_tree
[]
=
{
{
4
,
0
},
{
2
,
1
},
{
-
8
},
{
-
4
},
{
8
,
2
},
...
...
@@ -221,7 +221,7 @@ static const vp56_tree_t vp56_pmbtm_tree[] = {
{
2
,
5
},
{
-
24
},
{
-
20
},
{
-
16
},
{
-
12
},
{
-
0
},
};
static
const
vp56_tree_t
vp56_pmbt_tree
[]
=
{
static
const
VP56Tree
vp56_pmbt_tree
[]
=
{
{
8
,
1
},
{
4
,
2
},
{
2
,
4
},
{
-
VP56_MB_INTER_NOVEC_PF
},
{
-
VP56_MB_INTER_DELTA_PF
},
...
...
libavcodec/vp6.c
View file @
3d52bca6
...
...
@@ -37,13 +37,13 @@
#include "vp6data.h"
static
void
vp6_parse_coeff
(
vp56_context_
t
*
s
);
static
void
vp6_parse_coeff_huffman
(
vp56_context_
t
*
s
);
static
void
vp6_parse_coeff
(
VP56Contex
t
*
s
);
static
void
vp6_parse_coeff_huffman
(
VP56Contex
t
*
s
);
static
int
vp6_parse_header
(
vp56_context_
t
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
static
int
vp6_parse_header
(
VP56Contex
t
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
int
*
golden_frame
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
VP56RangeCoder
*
c
=
&
s
->
c
;
int
parse_filter_info
=
0
;
int
coeff_offset
=
0
;
int
vrt_shift
=
0
;
...
...
@@ -151,7 +151,7 @@ static int vp6_parse_header(vp56_context_t *s, const uint8_t *buf, int buf_size,
return
res
;
}
static
void
vp6_coeff_order_table_init
(
vp56_context_
t
*
s
)
static
void
vp6_coeff_order_table_init
(
VP56Contex
t
*
s
)
{
int
i
,
pos
,
idx
=
1
;
...
...
@@ -162,9 +162,9 @@ static void vp6_coeff_order_table_init(vp56_context_t *s)
s
->
modelp
->
coeff_index_to_pos
[
idx
++
]
=
pos
;
}
static
void
vp6_default_models_init
(
vp56_context_
t
*
s
)
static
void
vp6_default_models_init
(
VP56Contex
t
*
s
)
{
vp56_model_t
*
model
=
s
->
modelp
;
Vp56Model
*
model
=
s
->
modelp
;
model
->
vector_dct
[
0
]
=
0xA2
;
model
->
vector_dct
[
1
]
=
0xA4
;
...
...
@@ -180,10 +180,10 @@ static void vp6_default_models_init(vp56_context_t *s)
vp6_coeff_order_table_init
(
s
);
}
static
void
vp6_parse_vector_models
(
vp56_context_
t
*
s
)
static
void
vp6_parse_vector_models
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
comp
,
node
;
for
(
comp
=
0
;
comp
<
2
;
comp
++
)
{
...
...
@@ -211,7 +211,7 @@ static int vp6_huff_cmp(const void *va, const void *vb)
return
(
a
->
count
-
b
->
count
)
*
16
+
(
b
->
sym
-
a
->
sym
);
}
static
void
vp6_build_huff_tree
(
vp56_context_
t
*
s
,
uint8_t
coeff_model
[],
static
void
vp6_build_huff_tree
(
VP56Contex
t
*
s
,
uint8_t
coeff_model
[],
const
uint8_t
*
map
,
unsigned
size
,
VLC
*
vlc
)
{
Node
nodes
[
2
*
size
],
*
tmp
=
&
nodes
[
size
];
...
...
@@ -231,10 +231,10 @@ static void vp6_build_huff_tree(vp56_context_t *s, uint8_t coeff_model[],
FF_HUFFMAN_FLAG_HNODE_FIRST
);
}
static
void
vp6_parse_coeff_models
(
vp56_context_
t
*
s
)
static
void
vp6_parse_coeff_models
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
def_prob
[
11
];
int
node
,
cg
,
ctx
,
pos
;
int
ct
;
/* code type */
...
...
@@ -296,13 +296,13 @@ static void vp6_parse_coeff_models(vp56_context_t *s)
}
}
static
void
vp6_parse_vector_adjustment
(
vp56_context_t
*
s
,
vp56_mv_t
*
vect
)
static
void
vp6_parse_vector_adjustment
(
VP56Context
*
s
,
VP56mv
*
vect
)
{
vp56_range_coder_t
*
c
=
&
s
->
c
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
&
s
->
c
;
Vp56Model
*
model
=
s
->
modelp
;
int
comp
;
*
vect
=
(
vp56_mv_t
)
{
0
,
0
};
*
vect
=
(
VP56mv
)
{
0
,
0
};
if
(
s
->
vector_candidate_pos
<
2
)
*
vect
=
s
->
vector_candidate
[
0
];
...
...
@@ -338,7 +338,7 @@ static void vp6_parse_vector_adjustment(vp56_context_t *s, vp56_mv_t *vect)
* Read number of consecutive blocks with null DC or AC.
* This value is < 74.
*/
static
unsigned
vp6_get_nb_null
(
vp56_context_
t
*
s
)
static
unsigned
vp6_get_nb_null
(
VP56Contex
t
*
s
)
{
unsigned
val
=
get_bits
(
&
s
->
gb
,
2
);
if
(
val
==
2
)
...
...
@@ -350,9 +350,9 @@ static unsigned vp6_get_nb_null(vp56_context_t *s)
return
val
;
}
static
void
vp6_parse_coeff_huffman
(
vp56_context_
t
*
s
)
static
void
vp6_parse_coeff_huffman
(
VP56Contex
t
*
s
)
{
vp56_model_t
*
model
=
s
->
modelp
;
Vp56Model
*
model
=
s
->
modelp
;
uint8_t
*
permute
=
s
->
scantable
.
permutated
;
VLC
*
vlc_coeff
;
int
coeff
,
sign
,
coeff_idx
;
...
...
@@ -405,10 +405,10 @@ static void vp6_parse_coeff_huffman(vp56_context_t *s)
}
}
static
void
vp6_parse_coeff
(
vp56_context_
t
*
s
)
static
void
vp6_parse_coeff
(
VP56Contex
t
*
s
)
{
vp56_range_coder_t
*
c
=
s
->
ccp
;
vp56_model_t
*
model
=
s
->
modelp
;
VP56RangeCoder
*
c
=
s
->
ccp
;
Vp56Model
*
model
=
s
->
modelp
;
uint8_t
*
permute
=
s
->
scantable
.
permutated
;
uint8_t
*
model1
,
*
model2
,
*
model3
;
int
coeff
,
sign
,
coeff_idx
;
...
...
@@ -522,7 +522,7 @@ static void vp6_filter_hv4(uint8_t *dst, uint8_t *src, int stride,
}
}
static
void
vp6_filter_diag2
(
vp56_context_
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
vp6_filter_diag2
(
VP56Contex
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
int
stride
,
int
h_weight
,
int
v_weight
)
{
uint8_t
*
tmp
=
s
->
edge_emu_buffer
+
16
;
...
...
@@ -563,9 +563,9 @@ static void vp6_filter_diag4(uint8_t *dst, uint8_t *src, int stride,
}
}
static
void
vp6_filter
(
vp56_context_
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
static
void
vp6_filter
(
VP56Contex
t
*
s
,
uint8_t
*
dst
,
uint8_t
*
src
,
int
offset1
,
int
offset2
,
int
stride
,
vp56_mv_t
mv
,
int
mask
,
int
select
,
int
luma
)
VP56mv
mv
,
int
mask
,
int
select
,
int
luma
)
{
int
filter4
=
0
;
int
x8
=
mv
.
x
&
mask
;
...
...
@@ -615,7 +615,7 @@ static void vp6_filter(vp56_context_t *s, uint8_t *dst, uint8_t *src,
static
av_cold
int
vp6_decode_init
(
AVCodecContext
*
avctx
)
{
vp56_context_
t
*
s
=
avctx
->
priv_data
;
VP56Contex
t
*
s
=
avctx
->
priv_data
;
vp56_init
(
avctx
,
avctx
->
codec
->
id
==
CODEC_ID_VP6
,
avctx
->
codec
->
id
==
CODEC_ID_VP6A
);
...
...
@@ -635,7 +635,7 @@ AVCodec vp6_decoder = {
"vp6"
,
CODEC_TYPE_VIDEO
,
CODEC_ID_VP6
,
sizeof
(
vp56_context_
t
),
sizeof
(
VP56Contex
t
),
vp6_decode_init
,
NULL
,
vp56_free
,
...
...
@@ -649,7 +649,7 @@ AVCodec vp6f_decoder = {
"vp6f"
,
CODEC_TYPE_VIDEO
,
CODEC_ID_VP6F
,
sizeof
(
vp56_context_
t
),
sizeof
(
VP56Contex
t
),
vp6_decode_init
,
NULL
,
vp56_free
,
...
...
@@ -663,7 +663,7 @@ AVCodec vp6a_decoder = {
"vp6a"
,
CODEC_TYPE_VIDEO
,
CODEC_ID_VP6A
,
sizeof
(
vp56_context_
t
),
sizeof
(
VP56Contex
t
),
vp6_decode_init
,
NULL
,
vp56_free
,
...
...
libavcodec/vp6data.h
View file @
3d52bca6
...
...
@@ -283,7 +283,7 @@ static const int16_t vp6_block_copy_filter[17][8][4] = {
{
-
2
,
16
,
118
,
-
4
}
},
};
static
const
vp56_tree_t
vp6_pcr_tree
[]
=
{
static
const
VP56Tree
vp6_pcr_tree
[]
=
{
{
8
,
0
},
{
4
,
1
},
{
2
,
2
},
{
-
1
},
{
-
2
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment