summaryrefslogtreecommitdiffstats
path: root/libavcodec/vp9mvs.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2016-08-02 07:55:31 +0200
committerAnton Khirnov <anton@khirnov.net>2016-08-11 10:54:44 +0200
commit1730a67ab99de0648dd55e81ea7fec12ab70225c (patch)
tree232cb02caace8db403fad9a2f5284131c2adcf07 /libavcodec/vp9mvs.c
parent5b995452a63ed754545a0ac90be79fac63b3390d (diff)
downloadffmpeg-streaming-1730a67ab99de0648dd55e81ea7fec12ab70225c.zip
ffmpeg-streaming-1730a67ab99de0648dd55e81ea7fec12ab70225c.tar.gz
vp9: add frame threading
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavcodec/vp9mvs.c')
-rw-r--r--libavcodec/vp9mvs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/vp9mvs.c b/libavcodec/vp9mvs.c
index 5edcb19..dde0e84 100644
--- a/libavcodec/vp9mvs.c
+++ b/libavcodec/vp9mvs.c
@@ -164,6 +164,9 @@ static void find_ref_mvs(VP9Context *s,
if (s->use_last_frame_mvs) {
VP9MVRefPair *mv = &s->frames[LAST_FRAME].mv[row * s->sb_cols * 8 + col];
+ if (!s->last_uses_2pass)
+ ff_thread_await_progress(&s->frames[LAST_FRAME].tf, row >> 3, 0);
+
if (mv->ref[0] == ref)
RETURN_MV(mv->mv[0]);
else if (mv->ref[1] == ref)
@@ -205,6 +208,7 @@ static void find_ref_mvs(VP9Context *s,
if (s->use_last_frame_mvs) {
VP9MVRefPair *mv = &s->frames[LAST_FRAME].mv[row * s->sb_cols * 8 + col];
+ // no need to await_progress, because we already did that above
if (mv->ref[0] != ref && mv->ref[0] >= 0)
RETURN_SCALE_MV(mv->mv[0],
s->signbias[mv->ref[0]] != s->signbias[ref]);
OpenPOWER on IntegriCloud