Skip to content
GitLab
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
a1ef75bb
Commit
a1ef75bb
authored
Mar 06, 2015
by
Hangyu Kuang
Committed by
Gerrit Code Review
Mar 06, 2015
Browse files
Merge "Only wait for previous frame's motion vector if needed."
parents
274af39e
d5fa786b
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_mvref_common.c
View file @
a1ef75bb
...
...
@@ -69,13 +69,23 @@ static void find_mv_refs_idx(const VP9_COMMON *cm, const MACROBLOCKD *xd,
}
}
// Synchronize here for frame parallel decode if sync function is provided.
if
(
sync
!=
NULL
)
{
sync
(
data
,
mi_row
);
}
// TODO(hkuang): Remove this sync after fixing pthread_cond_broadcast
// on windows platform. The sync here is unncessary if use_perv_frame_mvs
// is 0. But after removing it, there will be hang in the unit test on windows
// due to several threads waiting for a thread's signal.
#if defined(_WIN32) && !HAVE_PTHREAD_H
if
(
cm
->
frame_parallel_decode
&&
sync
!=
NULL
)
{
sync
(
data
,
mi_row
);
}
#endif
// Check the last frame's mode and mv info.
if
(
cm
->
use_prev_frame_mvs
)
{
// Synchronize here for frame parallel decode if sync function is provided.
if
(
cm
->
frame_parallel_decode
&&
sync
!=
NULL
)
{
sync
(
data
,
mi_row
);
}
if
(
prev_frame_mvs
->
ref_frame
[
0
]
==
ref_frame
)
{
ADD_MV_REF_LIST
(
prev_frame_mvs
->
mv
[
0
],
refmv_count
,
mv_ref_list
,
Done
);
}
else
if
(
prev_frame_mvs
->
ref_frame
[
1
]
==
ref_frame
)
{
...
...
vp9/decoder/vp9_dthread.c
View file @
a1ef75bb
...
...
@@ -38,8 +38,14 @@ void vp9_frameworker_unlock_stats(VP9Worker *const worker) {
void
vp9_frameworker_signal_stats
(
VP9Worker
*
const
worker
)
{
#if CONFIG_MULTITHREAD
FrameWorkerData
*
const
worker_data
=
worker
->
data1
;
// TODO(hkuang): Investigate using broadcast or signal.
// TODO(hkuang): Fix the pthread_cond_broadcast in windows wrapper.
#if defined(_WIN32) && !HAVE_PTHREAD_H
pthread_cond_signal
(
&
worker_data
->
stats_cond
);
#else
pthread_cond_broadcast
(
&
worker_data
->
stats_cond
);
#endif
#else
(
void
)
worker
;
#endif
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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