Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
e685e8ea
Commit
e685e8ea
authored
Jan 16, 2009
by
Stefan Gehrer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename vector_t to cavs_vector
Originally committed as revision 16641 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
2b324225
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
29 deletions
+30
-29
cavs.c
libavcodec/cavs.c
+14
-13
cavs.h
libavcodec/cavs.h
+8
-8
cavsdata.h
libavcodec/cavsdata.h
+3
-3
cavsdec.c
libavcodec/cavsdec.c
+5
-5
No files found.
libavcodec/cavs.c
View file @
e685e8ea
...
...
@@ -37,7 +37,7 @@
*
****************************************************************************/
static
inline
int
get_bs
(
vector_t
*
mvP
,
vector_t
*
mvQ
,
int
b
)
{
static
inline
int
get_bs
(
cavs_vector
*
mvP
,
cavs_vector
*
mvQ
,
int
b
)
{
if
((
mvP
->
ref
==
REF_INTRA
)
||
(
mvQ
->
ref
==
REF_INTRA
))
return
2
;
if
(
(
abs
(
mvP
->
x
-
mvQ
->
x
)
>=
4
)
||
(
abs
(
mvP
->
y
-
mvQ
->
y
)
>=
4
)
)
...
...
@@ -327,7 +327,7 @@ static inline void mc_dir_part(AVSContext *h,Picture *pic,int square,
int
chroma_height
,
int
delta
,
int
list
,
uint8_t
*
dest_y
,
uint8_t
*
dest_cb
,
uint8_t
*
dest_cr
,
int
src_x_offset
,
int
src_y_offset
,
qpel_mc_func
*
qpix_op
,
h264_chroma_mc_func
chroma_op
,
vector_t
*
mv
){
h264_chroma_mc_func
chroma_op
,
cavs_vector
*
mv
){
MpegEncContext
*
const
s
=
&
h
->
s
;
const
int
mx
=
mv
->
x
+
src_x_offset
*
8
;
const
int
my
=
mv
->
y
+
src_y_offset
*
8
;
...
...
@@ -382,7 +382,7 @@ static inline void mc_part_std(AVSContext *h,int square,int chroma_height,int de
uint8_t
*
dest_y
,
uint8_t
*
dest_cb
,
uint8_t
*
dest_cr
,
int
x_offset
,
int
y_offset
,
qpel_mc_func
*
qpix_put
,
h264_chroma_mc_func
chroma_put
,
qpel_mc_func
*
qpix_avg
,
h264_chroma_mc_func
chroma_avg
,
vector_t
*
mv
){
h264_chroma_mc_func
chroma_avg
,
cavs_vector
*
mv
){
qpel_mc_func
*
qpix_op
=
qpix_put
;
h264_chroma_mc_func
chroma_op
=
chroma_put
;
...
...
@@ -447,14 +447,15 @@ void ff_cavs_inter(AVSContext *h, enum mb_t mb_type) {
*
****************************************************************************/
static
inline
void
scale_mv
(
AVSContext
*
h
,
int
*
d_x
,
int
*
d_y
,
vector_t
*
src
,
int
distp
)
{
static
inline
void
scale_mv
(
AVSContext
*
h
,
int
*
d_x
,
int
*
d_y
,
cavs_vector
*
src
,
int
distp
)
{
int
den
=
h
->
scale_den
[
src
->
ref
];
*
d_x
=
(
src
->
x
*
distp
*
den
+
256
+
(
src
->
x
>>
31
))
>>
9
;
*
d_y
=
(
src
->
y
*
distp
*
den
+
256
+
(
src
->
y
>>
31
))
>>
9
;
}
static
inline
void
mv_pred_median
(
AVSContext
*
h
,
vector_t
*
mvP
,
vector_t
*
mvA
,
vector_t
*
mvB
,
vector_t
*
mvC
)
{
static
inline
void
mv_pred_median
(
AVSContext
*
h
,
cavs_vector
*
mvP
,
cavs_vector
*
mvA
,
cavs_vector
*
mvB
,
cavs_vector
*
mvC
)
{
int
ax
,
ay
,
bx
,
by
,
cx
,
cy
;
int
len_ab
,
len_bc
,
len_ca
,
len_mid
;
...
...
@@ -481,11 +482,11 @@ static inline void mv_pred_median(AVSContext *h, vector_t *mvP, vector_t *mvA, v
void
ff_cavs_mv
(
AVSContext
*
h
,
enum
mv_loc_t
nP
,
enum
mv_loc_t
nC
,
enum
mv_pred_t
mode
,
enum
block_t
size
,
int
ref
)
{
vector_t
*
mvP
=
&
h
->
mv
[
nP
];
vector_t
*
mvA
=
&
h
->
mv
[
nP
-
1
];
vector_t
*
mvB
=
&
h
->
mv
[
nP
-
4
];
vector_t
*
mvC
=
&
h
->
mv
[
nC
];
const
vector_t
*
mvP2
=
NULL
;
cavs_vector
*
mvP
=
&
h
->
mv
[
nP
];
cavs_vector
*
mvA
=
&
h
->
mv
[
nP
-
1
];
cavs_vector
*
mvB
=
&
h
->
mv
[
nP
-
4
];
cavs_vector
*
mvC
=
&
h
->
mv
[
nC
];
const
cavs_vector
*
mvP2
=
NULL
;
mvP
->
ref
=
ref
;
mvP
->
dist
=
h
->
dist
[
mvP
->
ref
];
...
...
@@ -655,15 +656,15 @@ void ff_cavs_init_pic(AVSContext *h) {
void
ff_cavs_init_top_lines
(
AVSContext
*
h
)
{
/* alloc top line of predictors */
h
->
top_qp
=
av_malloc
(
h
->
mb_width
);
h
->
top_mv
[
0
]
=
av_malloc
((
h
->
mb_width
*
2
+
1
)
*
sizeof
(
vector_t
));
h
->
top_mv
[
1
]
=
av_malloc
((
h
->
mb_width
*
2
+
1
)
*
sizeof
(
vector_t
));
h
->
top_mv
[
0
]
=
av_malloc
((
h
->
mb_width
*
2
+
1
)
*
sizeof
(
cavs_vector
));
h
->
top_mv
[
1
]
=
av_malloc
((
h
->
mb_width
*
2
+
1
)
*
sizeof
(
cavs_vector
));
h
->
top_pred_Y
=
av_malloc
(
h
->
mb_width
*
2
*
sizeof
(
*
h
->
top_pred_Y
));
h
->
top_border_y
=
av_malloc
((
h
->
mb_width
+
1
)
*
16
);
h
->
top_border_u
=
av_malloc
((
h
->
mb_width
)
*
10
);
h
->
top_border_v
=
av_malloc
((
h
->
mb_width
)
*
10
);
/* alloc space for co-located MVs and types */
h
->
col_mv
=
av_malloc
(
h
->
mb_width
*
h
->
mb_height
*
4
*
sizeof
(
vector_t
));
h
->
col_mv
=
av_malloc
(
h
->
mb_width
*
h
->
mb_height
*
4
*
sizeof
(
cavs_vector
));
h
->
col_type_base
=
av_malloc
(
h
->
mb_width
*
h
->
mb_height
);
h
->
block
=
av_mallocz
(
64
*
sizeof
(
DCTELEM
));
}
...
...
libavcodec/cavs.h
View file @
e685e8ea
...
...
@@ -142,7 +142,7 @@ DECLARE_ALIGNED_8(typedef, struct) {
int16_t
y
;
int16_t
dist
;
int16_t
ref
;
}
vector_t
;
}
cavs_vector
;
struct
dec_2dvlc
{
int8_t
rltab
[
59
][
3
];
...
...
@@ -186,9 +186,9 @@ typedef struct {
D is the macroblock to the top-left (0)
the same is repeated for backward motion vectors */
vector_t
mv
[
2
*
4
*
3
];
vector_t
*
top_mv
[
2
];
vector_t
*
col_mv
;
cavs_vector
mv
[
2
*
4
*
3
];
cavs_vector
*
top_mv
[
2
];
cavs_vector
*
col_mv
;
/** luma pred mode cache
0: -- B2 B3
...
...
@@ -236,9 +236,9 @@ extern const int_fast8_t ff_left_modifier_l[8];
extern
const
int_fast8_t
ff_top_modifier_l
[
8
];
extern
const
int_fast8_t
ff_left_modifier_c
[
7
];
extern
const
int_fast8_t
ff_top_modifier_c
[
7
];
extern
const
vector_t
ff_cavs_intra_mv
;
extern
const
vector_t
ff_cavs_un_mv
;
extern
const
vector_t
ff_cavs_dir_mv
;
extern
const
cavs_vector
ff_cavs_intra_mv
;
extern
const
cavs_vector
ff_cavs_un_mv
;
extern
const
cavs_vector
ff_cavs_dir_mv
;
static
inline
void
modify_pred
(
const
int_fast8_t
*
mod_table
,
int
*
mode
)
{
*
mode
=
mod_table
[
*
mode
];
...
...
@@ -253,7 +253,7 @@ static inline void set_intra_mode_default(AVSContext *h) {
h
->
top_pred_Y
[
h
->
mbx
*
2
+
0
]
=
h
->
top_pred_Y
[
h
->
mbx
*
2
+
1
]
=
INTRA_L_LP
;
}
static
inline
void
set_mvs
(
vector_t
*
mv
,
enum
block_t
size
)
{
static
inline
void
set_mvs
(
cavs_vector
*
mv
,
enum
block_t
size
)
{
switch
(
size
)
{
case
BLK_16X16
:
mv
[
MV_STRIDE
]
=
mv
[
0
];
...
...
libavcodec/cavsdata.h
View file @
e685e8ea
...
...
@@ -90,14 +90,14 @@ const uint16_t ff_cavs_dequant_mul[64] = {
/** marks block as unavailable, i.e. out of picture
or not yet decoded */
const
vector_t
ff_cavs_un_mv
=
{
0
,
0
,
1
,
NOT_AVAIL
};
const
cavs_vector
ff_cavs_un_mv
=
{
0
,
0
,
1
,
NOT_AVAIL
};
/** marks block as "no prediction from this direction"
e.g. forward motion vector in BWD partition */
const
vector_t
ff_cavs_dir_mv
=
{
0
,
0
,
1
,
REF_DIR
};
const
cavs_vector
ff_cavs_dir_mv
=
{
0
,
0
,
1
,
REF_DIR
};
/** marks block as using intra prediction */
const
vector_t
ff_cavs_intra_mv
=
{
0
,
0
,
1
,
REF_INTRA
};
const
cavs_vector
ff_cavs_intra_mv
=
{
0
,
0
,
1
,
REF_INTRA
};
#define EOB 0,0,0
...
...
libavcodec/cavsdec.c
View file @
e685e8ea
...
...
@@ -59,9 +59,9 @@ static inline void store_mvs(AVSContext *h) {
h
->
col_mv
[(
h
->
mby
*
h
->
mb_width
+
h
->
mbx
)
*
4
+
3
]
=
h
->
mv
[
MV_FWD_X3
];
}
static
inline
void
mv_pred_direct
(
AVSContext
*
h
,
vector_t
*
pmv_fw
,
vector_t
*
col_mv
)
{
vector_t
*
pmv_bw
=
pmv_fw
+
MV_BWD_OFFS
;
static
inline
void
mv_pred_direct
(
AVSContext
*
h
,
cavs_vector
*
pmv_fw
,
cavs_vector
*
col_mv
)
{
cavs_vector
*
pmv_bw
=
pmv_fw
+
MV_BWD_OFFS
;
int
den
=
h
->
direct_den
[
col_mv
->
ref
];
int
m
=
col_mv
->
x
>>
31
;
...
...
@@ -77,8 +77,8 @@ static inline void mv_pred_direct(AVSContext *h, vector_t *pmv_fw,
pmv_bw
->
y
=
m
-
(((
den
+
(
den
*
col_mv
->
y
*
pmv_bw
->
dist
^
m
)
-
m
-
1
)
>>
14
)
^
m
);
}
static
inline
void
mv_pred_sym
(
AVSContext
*
h
,
vector_t
*
src
,
enum
block_t
size
)
{
vector_t
*
dst
=
src
+
MV_BWD_OFFS
;
static
inline
void
mv_pred_sym
(
AVSContext
*
h
,
cavs_vector
*
src
,
enum
block_t
size
)
{
cavs_vector
*
dst
=
src
+
MV_BWD_OFFS
;
/* backward mv is the scaled and negated forward mv */
dst
->
x
=
-
((
src
->
x
*
h
->
sym_factor
+
256
)
>>
9
);
...
...
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