avcodec/vp8: Fix hang with slice threads

Fixes: 447860.webm

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9bbc73ae9f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Thomas Guilbert 2017-03-10 00:15:39 +01:00 committed by Michael Niedermayer
parent a9394ee7ec
commit baa3d3e7d7
1 changed files with 3 additions and 1 deletions

View File

@ -2496,8 +2496,10 @@ int vp78_decode_mb_row_sliced(AVCodecContext *avctx, void *tdata, int jobnr,
for (mb_y = jobnr; mb_y < s->mb_height; mb_y += num_jobs) {
td->thread_mb_pos = mb_y << 16;
ret = s->decode_mb_row_no_filter(avctx, tdata, jobnr, threadnr);
if (ret < 0)
if (ret < 0) {
update_pos(td, s->mb_height, INT_MAX & 0xFFFF);
return ret;
}
if (s->deblock_filter)
s->filter_mb_row(avctx, tdata, jobnr, threadnr);
update_pos(td, mb_y, INT_MAX & 0xFFFF);