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
aebb5d6d
Commit
aebb5d6d
authored
Dec 18, 2008
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
indent
Originally committed as revision 16222 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
96465b90
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
36 deletions
+36
-36
h264.c
libavcodec/h264.c
+36
-36
No files found.
libavcodec/h264.c
View file @
aebb5d6d
...
...
@@ -2463,40 +2463,40 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple){
idct_dc_add
=
s
->
dsp
.
h264_idct_dc_add
;
idct_add
=
s
->
dsp
.
h264_idct_add
;
}
for
(
i
=
0
;
i
<
16
;
i
++
){
uint8_t
*
const
ptr
=
dest_y
+
block_offset
[
i
];
const
int
dir
=
h
->
intra4x4_pred_mode_cache
[
scan8
[
i
]
];
for
(
i
=
0
;
i
<
16
;
i
++
){
uint8_t
*
const
ptr
=
dest_y
+
block_offset
[
i
];
const
int
dir
=
h
->
intra4x4_pred_mode_cache
[
scan8
[
i
]
];
if
(
transform_bypass
&&
h
->
sps
.
profile_idc
==
244
&&
dir
<=
1
){
h
->
hpc
.
pred4x4_add
[
dir
](
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
}
else
{
uint8_t
*
topright
;
int
nnz
,
tr
;
if
(
dir
==
DIAG_DOWN_LEFT_PRED
||
dir
==
VERT_LEFT_PRED
){
const
int
topright_avail
=
(
h
->
topright_samples_available
<<
i
)
&
0x8000
;
assert
(
mb_y
||
linesize
<=
block_offset
[
i
]);
if
(
!
topright_avail
){
tr
=
ptr
[
3
-
linesize
]
*
0x01010101
;
topright
=
(
uint8_t
*
)
&
tr
;
}
else
topright
=
ptr
+
4
-
linesize
;
}
else
topright
=
NULL
;
h
->
hpc
.
pred4x4
[
dir
](
ptr
,
topright
,
linesize
);
nnz
=
h
->
non_zero_count_cache
[
scan8
[
i
]
];
if
(
nnz
){
if
(
is_h264
){
if
(
nnz
==
1
&&
h
->
mb
[
i
*
16
])
idct_dc_add
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
else
idct_add
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
if
(
transform_bypass
&&
h
->
sps
.
profile_idc
==
244
&&
dir
<=
1
){
h
->
hpc
.
pred4x4_add
[
dir
](
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
}
else
{
uint8_t
*
topright
;
int
nnz
,
tr
;
if
(
dir
==
DIAG_DOWN_LEFT_PRED
||
dir
==
VERT_LEFT_PRED
){
const
int
topright_avail
=
(
h
->
topright_samples_available
<<
i
)
&
0x8000
;
assert
(
mb_y
||
linesize
<=
block_offset
[
i
]);
if
(
!
topright_avail
){
tr
=
ptr
[
3
-
linesize
]
*
0x01010101
;
topright
=
(
uint8_t
*
)
&
tr
;
}
else
topright
=
ptr
+
4
-
linesize
;
}
else
svq3_add_idct_c
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
,
s
->
qscale
,
0
);
topright
=
NULL
;
h
->
hpc
.
pred4x4
[
dir
](
ptr
,
topright
,
linesize
);
nnz
=
h
->
non_zero_count_cache
[
scan8
[
i
]
];
if
(
nnz
){
if
(
is_h264
){
if
(
nnz
==
1
&&
h
->
mb
[
i
*
16
])
idct_dc_add
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
else
idct_add
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
);
}
else
svq3_add_idct_c
(
ptr
,
h
->
mb
+
i
*
16
,
linesize
,
s
->
qscale
,
0
);
}
}
}
}
}
}
}
else
{
h
->
hpc
.
pred16x16
[
h
->
intra16x16_pred_mode
](
dest_y
,
linesize
);
...
...
@@ -2576,21 +2576,21 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple){
idct_dc_add
=
s
->
dsp
.
h264_idct_dc_add
;
chroma_dc_dequant_idct_c
(
h
->
mb
+
16
*
16
,
h
->
chroma_qp
[
0
],
h
->
dequant4_coeff
[
IS_INTRA
(
mb_type
)
?
1
:
4
][
h
->
chroma_qp
[
0
]][
0
]);
chroma_dc_dequant_idct_c
(
h
->
mb
+
16
*
16
+
4
*
16
,
h
->
chroma_qp
[
1
],
h
->
dequant4_coeff
[
IS_INTRA
(
mb_type
)
?
2
:
5
][
h
->
chroma_qp
[
1
]][
0
]);
if
(
is_h264
){
if
(
is_h264
){
for
(
i
=
16
;
i
<
16
+
8
;
i
++
){
if
(
h
->
non_zero_count_cache
[
scan8
[
i
]
])
idct_add
(
dest
[(
i
&
4
)
>>
2
]
+
block_offset
[
i
],
h
->
mb
+
i
*
16
,
uvlinesize
);
else
if
(
h
->
mb
[
i
*
16
])
idct_dc_add
(
dest
[(
i
&
4
)
>>
2
]
+
block_offset
[
i
],
h
->
mb
+
i
*
16
,
uvlinesize
);
}
}
else
{
for
(
i
=
16
;
i
<
16
+
8
;
i
++
){
if
(
h
->
non_zero_count_cache
[
scan8
[
i
]
]
||
h
->
mb
[
i
*
16
]){
uint8_t
*
const
ptr
=
dest
[(
i
&
4
)
>>
2
]
+
block_offset
[
i
];
svq3_add_idct_c
(
ptr
,
h
->
mb
+
i
*
16
,
uvlinesize
,
chroma_qp
[
s
->
qscale
+
12
]
-
12
,
2
);
}
else
{
for
(
i
=
16
;
i
<
16
+
8
;
i
++
){
if
(
h
->
non_zero_count_cache
[
scan8
[
i
]
]
||
h
->
mb
[
i
*
16
]){
uint8_t
*
const
ptr
=
dest
[(
i
&
4
)
>>
2
]
+
block_offset
[
i
];
svq3_add_idct_c
(
ptr
,
h
->
mb
+
i
*
16
,
uvlinesize
,
chroma_qp
[
s
->
qscale
+
12
]
-
12
,
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