Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
1fe6496b
Commit
1fe6496b
authored
May 15, 2014
by
hkuang
Committed by
Gerrit Code Review
May 15, 2014
Browse files
Merge "Refactor calling loopfilter code."
parents
71854f3a
bf8c58be
Changes
1
Hide whitespace changes
Inline
Side-by-side
vp9/decoder/vp9_decodeframe.c
View file @
1fe6496b
...
...
@@ -1326,16 +1326,6 @@ int vp9_decode_frame(VP9Decoder *pbi,
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_CORRUPT_FRAME
,
"Truncated packet or corrupt header length"
);
if
(
do_loopfilter_inline
&&
pbi
->
lf_worker
.
data1
==
NULL
)
{
CHECK_MEM_ERROR
(
cm
,
pbi
->
lf_worker
.
data1
,
vpx_memalign
(
32
,
sizeof
(
LFWorkerData
)));
pbi
->
lf_worker
.
hook
=
(
VP9WorkerHook
)
vp9_loop_filter_worker
;
if
(
pbi
->
max_threads
>
1
&&
!
vp9_worker_reset
(
&
pbi
->
lf_worker
))
{
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_ERROR
,
"Loop filter thread creation failed"
);
}
}
init_macroblockd
(
cm
,
&
pbi
->
mb
);
if
(
cm
->
coding_use_prev_mi
)
...
...
@@ -1358,9 +1348,23 @@ int vp9_decode_frame(VP9Decoder *pbi,
if
(
pbi
->
max_threads
>
1
&&
tile_rows
==
1
&&
tile_cols
>
1
&&
cm
->
frame_parallel_decoding_mode
)
{
*
p_data_end
=
decode_tiles_mt
(
pbi
,
data
+
first_partition_size
,
data_end
);
// If multiple threads are used to decode tiles, then we use those threads
// to do parallel loopfiltering.
vp9_loop_filter_frame_mt
(
new_fb
,
pbi
,
cm
,
cm
->
lf
.
filter_level
,
0
,
0
);
}
else
{
if
(
do_loopfilter_inline
&&
pbi
->
lf_worker
.
data1
==
NULL
)
{
CHECK_MEM_ERROR
(
cm
,
pbi
->
lf_worker
.
data1
,
vpx_memalign
(
32
,
sizeof
(
LFWorkerData
)));
pbi
->
lf_worker
.
hook
=
(
VP9WorkerHook
)
vp9_loop_filter_worker
;
if
(
pbi
->
max_threads
>
1
&&
!
vp9_worker_reset
(
&
pbi
->
lf_worker
))
{
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_ERROR
,
"Loop filter thread creation failed"
);
}
}
*
p_data_end
=
decode_tiles
(
pbi
,
data
+
first_partition_size
,
data_end
,
do_loopfilter_inline
);
if
(
!
do_loopfilter_inline
)
vp9_loop_filter_frame
(
new_fb
,
cm
,
&
pbi
->
mb
,
cm
->
lf
.
filter_level
,
0
,
0
);
}
new_fb
->
corrupted
|=
xd
->
corrupted
;
...
...
@@ -1389,16 +1393,5 @@ int vp9_decode_frame(VP9Decoder *pbi,
if
(
cm
->
refresh_frame_context
)
cm
->
frame_contexts
[
cm
->
frame_context_idx
]
=
cm
->
fc
;
// Loopfilter
if
(
!
do_loopfilter_inline
)
{
// If multiple threads are used to decode tiles, then we use those threads
// to do parallel loopfiltering.
if
(
pbi
->
num_tile_workers
)
{
vp9_loop_filter_frame_mt
(
new_fb
,
pbi
,
cm
,
cm
->
lf
.
filter_level
,
0
,
0
);
}
else
{
vp9_loop_filter_frame
(
new_fb
,
cm
,
&
pbi
->
mb
,
cm
->
lf
.
filter_level
,
0
,
0
);
}
}
return
0
;
}
Write
Preview
Supports
Markdown
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