From patchwork Sun Mar 11 23:01:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rostislav Pehlivanov X-Patchwork-Id: 7926 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp988747jad; Sun, 11 Mar 2018 16:06:44 -0700 (PDT) X-Google-Smtp-Source: AG47ELtZXkVAoWPzvQLkYyw1uNXQ+BtRwvFISvFUuSqKwm2MLvdGRle7lHYmRh4KTEC8vpY3U7tg X-Received: by 10.223.141.143 with SMTP id o15mr1704028wrb.272.1520809604251; Sun, 11 Mar 2018 16:06:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520809604; cv=none; d=google.com; s=arc-20160816; b=aFWJMOM+2YkJViN5HL4VwOO6YXujqBeBNq2S8rFTaYHUIKxD9IkujLaXO7pLZJurAe RtSKrLg8qEKJ1ARNGs6m7MS35XYRSeZ9VTOjWsdOzRc8/PjXRj42/yekq+ze3yBP0IK+ o1K1WoXPTe8S64iU1NFGIc3qS/vbKWxRCEF9Y4VAWpZnl2aa2GhP66tE0fVUiRtGGPTw k0umub54Ua8ZkZZhscwH88cko1Y69o3+/J0MVM6j7VB8+jpcPstkT2haY04BBBMiZbeY jFmH2V1fIJieA6CXek2Vji2irUSNByr4WNAhBWZEll9jOu+4/GXHGmy9YCMjN+Kwgavp a6/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=ac2GCsSXC0YJmJdGZNchbNG+RSgJvzNQALzeDnpQiXU=; b=m4rNHVJEWwislvUwz1E41CZy2RDEy8NIw4GTvN09TSIidYb+GH9uDD8rFbi908MjQJ lCwPOx5SdRnA73w26tn0oLwnCxIcdjUvCBAO9YzQ1/fqfkGIvgwJdFFvIiqkqa0e44S2 olLMGfb1PoENiep5IRG5q69LL3YycdzwIEpZHkn8JGHe/d4c52GigMevjwNpedYOR6P0 GBsG5GUahm+uu+yuEtO+IOoQMeBAVafUSSN0uTx2erIZCfE0wua0JQ2Vsg8iVuUmh3RE wWPUcy7A7/Y2wSqtPePc7UG5AQvzOPl7Pjh8jkS1rUFBED9iGk9JtCwP9hwPREjGfD3S Yryg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=FNTeudFp; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p26si4349762wrp.224.2018.03.11.16.06.43; Sun, 11 Mar 2018 16:06:44 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=FNTeudFp; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E31B5689F61; Mon, 12 Mar 2018 01:06:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 01942689C11 for ; Mon, 12 Mar 2018 01:06:26 +0200 (EET) Received: by mail-wm0-f67.google.com with SMTP id 188so12768507wme.1 for ; Sun, 11 Mar 2018 16:06:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=JWYQvn3X/ehPL9D2r4hP4sTnaYQLgZtc1V/ewkA2ogk=; b=FNTeudFpVo/i0k77cnIONpRDujRMvDhYp8wR63qAs69+/8b88xMIWL0qozVyo0dctJ WdaEdwa6HV55C0fu63MEoIY8RowgpXgnz3DOWucnM0vo+swUHjPG8qPfKOs7qlgQlECX KTLWWs2GLhAsykcSMMx4SSPJrc1xTZicj+5QjpVAeBBgFsAzO3bNtLX1YDhd0pD4V1MU cL5ynUu0QnfLf1R/Mq15E+lI2FloSUswWvfuPUDwOXJdcWLXsBfK9Ml3ukQJNI1sFLOw AZ9jDC+bfWMXwGGgSkzeSpbeUgLn/LCmPjPK+vr1zTaf+qtIBV6Nfy0q/7LPtUsltqlm O9LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=JWYQvn3X/ehPL9D2r4hP4sTnaYQLgZtc1V/ewkA2ogk=; b=fa/lv41HOOM6d7mITwoh7SYlucTZ/dHyaXDSF89qBdBhZ37PWu23wMC4fSHogu4Tc9 ihPfsCcsAbrvRAuf2Q1/NM2kCBlbUeTchMvvkKaH8FGe1MiWpYaLnP8CcRj6UdQqXlm5 /0npCIa0SBxZdBy0FGuAZVy7kTLlsCM2Uyvajg5XIFwizIVarm7M1D4dVjS6nZnK0JpW H7XxG/cYKEiCGEjWAnT5nxN9clmGwpXRX9y4uYRj5sxYsUPAqJLPpfJGcWYi2cwFyVZN ejt0kUUyB4Vr2SZFx4iEbqI8aYMPjWida75AlbmOvRN3Cb0gshjCBuRjpwK7MIgIRvd7 DfnQ== X-Gm-Message-State: AElRT7HGqx/9Qn3SLWAUEFbawfWTUecgxj7eNwRwVZfCko+O4lrUMmwJ PvYc/nchgmHUctFjPkXrt/AcSmxr X-Received: by 10.28.239.18 with SMTP id n18mr4153501wmh.56.1520809264528; Sun, 11 Mar 2018 16:01:04 -0700 (PDT) Received: from moonbase.pars.ee ([2a00:23c4:7c88:af00:64dd:68b8:fc90:e59e]) by smtp.gmail.com with ESMTPSA id b9sm7217598wrh.68.2018.03.11.16.01.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 11 Mar 2018 16:01:03 -0700 (PDT) From: Rostislav Pehlivanov To: ffmpeg-devel@ffmpeg.org Date: Sun, 11 Mar 2018 23:01:02 +0000 Message-Id: <20180311230102.13713-1-atomnuker@gmail.com> X-Mailer: git-send-email 2.16.2 Subject: [FFmpeg-devel] [PATCH] h264_slice: correct atomics usage X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Rostislav Pehlivanov MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Reported by tmm1 Signed-off-by: Rostislav Pehlivanov --- libavcodec/h264_slice.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 90e05ed8f1..b381397b4d 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -2762,7 +2762,7 @@ int ff_h264_execute_decode_slices(H264Context *h) sl = &h->slice_ctx[i]; if (CONFIG_ERROR_RESILIENCE) { - sl->er.error_count = 0; + sl->er.error_count = ATOMIC_VAR_INIT(0); } /* make sure none of those slices overlap */ @@ -2786,7 +2786,8 @@ int ff_h264_execute_decode_slices(H264Context *h) h->mb_y = sl->mb_y; if (CONFIG_ERROR_RESILIENCE) { for (i = 1; i < context_count; i++) - h->slice_ctx[0].er.error_count += h->slice_ctx[i].er.error_count; + atomic_fetch_add(&h->slice_ctx[0].er.error_count, + atomic_load(&h->slice_ctx[i].er.error_count)); } if (h->postpone_filter) {