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
a6d9f9e6
Commit
a6d9f9e6
authored
Aug 26, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cavs: Move inline functions only used in one file out of the header
parent
ef07ac1e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
48 additions
and
48 deletions
+48
-48
cavs.c
libavcodec/cavs.c
+9
-0
cavs.h
libavcodec/cavs.h
+0
-48
cavsdec.c
libavcodec/cavsdec.c
+39
-0
No files found.
libavcodec/cavs.c
View file @
a6d9f9e6
...
...
@@ -328,6 +328,15 @@ static void intra_pred_lp_top(uint8_t *d,uint8_t *top,uint8_t *left,int stride)
#undef LOWPASS
static
inline
void
modify_pred
(
const
int8_t
*
mod_table
,
int
*
mode
)
{
*
mode
=
mod_table
[
*
mode
];
if
(
*
mode
<
0
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"Illegal intra prediction mode
\n
"
);
*
mode
=
0
;
}
}
void
ff_cavs_modify_mb_i
(
AVSContext
*
h
,
int
*
pred_mode_uv
)
{
/* save pred modes before they get modified */
h
->
pred_mode_Y
[
3
]
=
h
->
pred_mode_Y
[
5
];
...
...
libavcodec/cavs.h
View file @
a6d9f9e6
...
...
@@ -229,25 +229,6 @@ extern const uint8_t ff_cavs_partition_flags[30];
extern
const
cavs_vector
ff_cavs_intra_mv
;
extern
const
cavs_vector
ff_cavs_dir_mv
;
static
inline
void
modify_pred
(
const
int8_t
*
mod_table
,
int
*
mode
)
{
*
mode
=
mod_table
[
*
mode
];
if
(
*
mode
<
0
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"Illegal intra prediction mode
\n
"
);
*
mode
=
0
;
}
}
static
inline
void
set_intra_mode_default
(
AVSContext
*
h
)
{
if
(
h
->
stream_revision
>
0
)
{
h
->
pred_mode_Y
[
3
]
=
h
->
pred_mode_Y
[
6
]
=
NOT_AVAIL
;
h
->
top_pred_Y
[
h
->
mbx
*
2
+
0
]
=
h
->
top_pred_Y
[
h
->
mbx
*
2
+
1
]
=
NOT_AVAIL
;
}
else
{
h
->
pred_mode_Y
[
3
]
=
h
->
pred_mode_Y
[
6
]
=
INTRA_L_LP
;
h
->
top_pred_Y
[
h
->
mbx
*
2
+
0
]
=
h
->
top_pred_Y
[
h
->
mbx
*
2
+
1
]
=
INTRA_L_LP
;
}
}
static
inline
void
set_mvs
(
cavs_vector
*
mv
,
enum
cavs_block
size
)
{
switch
(
size
)
{
case
BLK_16X16
:
...
...
@@ -262,35 +243,6 @@ static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
}
}
static
inline
void
set_mv_intra
(
AVSContext
*
h
)
{
h
->
mv
[
MV_FWD_X0
]
=
ff_cavs_intra_mv
;
set_mvs
(
&
h
->
mv
[
MV_FWD_X0
],
BLK_16X16
);
h
->
mv
[
MV_BWD_X0
]
=
ff_cavs_intra_mv
;
set_mvs
(
&
h
->
mv
[
MV_BWD_X0
],
BLK_16X16
);
if
(
h
->
pic_type
!=
AV_PICTURE_TYPE_B
)
h
->
col_type_base
[
h
->
mbidx
]
=
I_8X8
;
}
static
inline
int
dequant
(
AVSContext
*
h
,
DCTELEM
*
level_buf
,
uint8_t
*
run_buf
,
DCTELEM
*
dst
,
int
mul
,
int
shift
,
int
coeff_num
)
{
int
round
=
1
<<
(
shift
-
1
);
int
pos
=
-
1
;
const
uint8_t
*
scantab
=
h
->
scantable
.
permutated
;
/* inverse scan and dequantization */
while
(
--
coeff_num
>=
0
){
pos
+=
run_buf
[
coeff_num
];
if
(
pos
>
63
)
{
av_log
(
h
->
s
.
avctx
,
AV_LOG_ERROR
,
"position out of block bounds at pic %d MB(%d,%d)
\n
"
,
h
->
picture
.
poc
,
h
->
mbx
,
h
->
mby
);
return
-
1
;
}
dst
[
scantab
[
pos
]]
=
(
level_buf
[
coeff_num
]
*
mul
+
round
)
>>
shift
;
}
return
0
;
}
void
ff_cavs_filter
(
AVSContext
*
h
,
enum
cavs_mb
mb_type
);
void
ff_cavs_load_intra_pred_luma
(
AVSContext
*
h
,
uint8_t
*
top
,
uint8_t
**
left
,
int
block
);
...
...
libavcodec/cavsdec.c
View file @
a6d9f9e6
...
...
@@ -511,6 +511,26 @@ static inline int get_ue_code(GetBitContext *gb, int order) {
return
get_ue_golomb
(
gb
);
}
static
inline
int
dequant
(
AVSContext
*
h
,
DCTELEM
*
level_buf
,
uint8_t
*
run_buf
,
DCTELEM
*
dst
,
int
mul
,
int
shift
,
int
coeff_num
)
{
int
round
=
1
<<
(
shift
-
1
);
int
pos
=
-
1
;
const
uint8_t
*
scantab
=
h
->
scantable
.
permutated
;
/* inverse scan and dequantization */
while
(
--
coeff_num
>=
0
){
pos
+=
run_buf
[
coeff_num
];
if
(
pos
>
63
)
{
av_log
(
h
->
s
.
avctx
,
AV_LOG_ERROR
,
"position out of block bounds at pic %d MB(%d,%d)
\n
"
,
h
->
picture
.
poc
,
h
->
mbx
,
h
->
mby
);
return
-
1
;
}
dst
[
scantab
[
pos
]]
=
(
level_buf
[
coeff_num
]
*
mul
+
round
)
>>
shift
;
}
return
0
;
}
/**
* decode coefficients from one 8x8 block, dequantize, inverse transform
* and add them to sample block
...
...
@@ -597,6 +617,15 @@ static inline int decode_residual_inter(AVSContext *h) {
*
****************************************************************************/
static
inline
void
set_mv_intra
(
AVSContext
*
h
)
{
h
->
mv
[
MV_FWD_X0
]
=
ff_cavs_intra_mv
;
set_mvs
(
&
h
->
mv
[
MV_FWD_X0
],
BLK_16X16
);
h
->
mv
[
MV_BWD_X0
]
=
ff_cavs_intra_mv
;
set_mvs
(
&
h
->
mv
[
MV_BWD_X0
],
BLK_16X16
);
if
(
h
->
pic_type
!=
AV_PICTURE_TYPE_B
)
h
->
col_type_base
[
h
->
mbidx
]
=
I_8X8
;
}
static
int
decode_mb_i
(
AVSContext
*
h
,
int
cbp_code
)
{
GetBitContext
*
gb
=
&
h
->
s
.
gb
;
unsigned
pred_mode_uv
;
...
...
@@ -664,6 +693,16 @@ static int decode_mb_i(AVSContext *h, int cbp_code) {
return
0
;
}
static
inline
void
set_intra_mode_default
(
AVSContext
*
h
)
{
if
(
h
->
stream_revision
>
0
)
{
h
->
pred_mode_Y
[
3
]
=
h
->
pred_mode_Y
[
6
]
=
NOT_AVAIL
;
h
->
top_pred_Y
[
h
->
mbx
*
2
+
0
]
=
h
->
top_pred_Y
[
h
->
mbx
*
2
+
1
]
=
NOT_AVAIL
;
}
else
{
h
->
pred_mode_Y
[
3
]
=
h
->
pred_mode_Y
[
6
]
=
INTRA_L_LP
;
h
->
top_pred_Y
[
h
->
mbx
*
2
+
0
]
=
h
->
top_pred_Y
[
h
->
mbx
*
2
+
1
]
=
INTRA_L_LP
;
}
}
static
void
decode_mb_p
(
AVSContext
*
h
,
enum
cavs_mb
mb_type
)
{
GetBitContext
*
gb
=
&
h
->
s
.
gb
;
int
ref
[
4
];
...
...
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