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

Reply via email to