Hi, under highly-threaded loads, parallel decoding of WPP is subject to a race condition.
This basically fixes ticket #4365. -- Christophe
From ec49c1774c93b52ff83098b8b531ba4084b3bbb2 Mon Sep 17 00:00:00 2001 From: Christophe Gisquet <christophe.gisq...@gmail.com> Date: Tue, 14 Apr 2015 17:56:54 +0200 Subject: [PATCH 71/88] hevc: fix WPP mode Since cf92cc8, hevc_filters (and SAO) fills a per-CTB-line pre-filtering buffer (modified since then) to be used for next CTB lines. However, thread progress report is cast without this buffer being filled, in turn causing issues as the buffer may not hold (yet) the expected data. Fixes ticket #4365. --- libavcodec/hevc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index b2e2152..bbcc31d 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -2444,8 +2444,8 @@ static int hls_decode_entry_wpp(AVCodecContext *avctxt, void *input_ctb_row, int ctb_addr_ts++; ff_hevc_save_states(s, ctb_addr_ts); - ff_thread_report_progress2(s->avctx, ctb_row, thread, 1); ff_hevc_hls_filters(s, x_ctb, y_ctb, ctb_size); + ff_thread_report_progress2(s->avctx, ctb_row, thread, 1); if (!more_data && (x_ctb+ctb_size) < s->ps.sps->width && ctb_row != s->sh.num_entry_point_offsets) { avpriv_atomic_int_set(&s1->wpp_err, 1); -- 2.5.3.windows.1
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel