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
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
Hide 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