From patchwork Tue Mar 28 19:06:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ronald S. Bultje" X-Patchwork-Id: 3149 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.44.195 with SMTP id s186csp766142vss; Tue, 28 Mar 2017 12:06:17 -0700 (PDT) X-Received: by 10.28.187.68 with SMTP id l65mr15816777wmf.24.1490727977776; Tue, 28 Mar 2017 12:06:17 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c185si4322435wmf.168.2017.03.28.12.06.17; Tue, 28 Mar 2017 12:06:17 -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; 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=NONE 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 A9BE06898A7; Tue, 28 Mar 2017 22:05:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com [209.85.220.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 829C268921D for ; Tue, 28 Mar 2017 22:05:45 +0300 (EEST) Received: by mail-qk0-f175.google.com with SMTP id f11so74128493qkb.0 for ; Tue, 28 Mar 2017 12:06:07 -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:in-reply-to:references; bh=hWMppkwbw1rj8KxFJLnHy8F4TC01nbY/c6K4OggfkdU=; b=E6bOOpaTe8yd5ZR11xVnBt0q2WUz6BXuHwl55Q0X1rp4PkJYnSkjlnnEb3n+iwl36Z t3Ih/NDluqSTvwauiLlY7MmNVUTYqHefW668/NU3N5K3Y6P8jkbemxAoFgTSC8jXskZI NuMiWNPWSsrnxM3D9W++UuuntLVy8lBaToQxSGRA/ZgL1aht+V2f+REI0TtIjtAmuoQ6 C0eO4s7UFS2imvYWClS69sA0uc9aVaaxPH/gFoIp6vG1cmUT3Glj1hBWso48DQ5i0Jm9 dnoxqy9TMD6HXMGWuqrUTURw6HtvCsrvwN50/hV3yz27dAxTeYK+gszpygGIXgcrP9ar mfXA== 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:in-reply-to :references; bh=hWMppkwbw1rj8KxFJLnHy8F4TC01nbY/c6K4OggfkdU=; b=Zufv91YC8FC9uRf3+14CzjaIJLA1sT7sjdOPCAO/MTbrnlEG9NmugANPZ8YNovqSAt Sq+hESl7xHviYrzbai2DK+wOjzana6u9cPns1olv0BI8yLp7fslTxRIZkIuB5W0+jCY+ tyNMjJEnafVzu7TFb+wzyTLJB0DXG8H7ZzwPiNEF/oXPGzfe43MRvTzr9I+mt2PTX9C7 xRK4vMSAbKW0BGn+3LC/2aHGWWjXrr+tr2hEyuR4GBTVXgBPVJN62CbDXRglC1q9YX6R MdsMwHhbxZsU8OYsrhqfBtQoxW3JYNS5UsB4UjZs3UljJ8AFjYnIf1EjXUeKiYJuwAqf g+oA== X-Gm-Message-State: AFeK/H1+0f8CGhfPxu852CsecJQuQp2GG2NOSrX3JdGPjwwXJVk3yfE+1abFn6idxT4BcA== X-Received: by 10.55.122.134 with SMTP id v128mr25934407qkc.115.1490727966311; Tue, 28 Mar 2017 12:06:06 -0700 (PDT) Received: from localhost.localdomain ([65.206.95.146]) by smtp.gmail.com with ESMTPSA id k30sm3254567qkh.50.2017.03.28.12.06.05 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 28 Mar 2017 12:06:05 -0700 (PDT) From: "Ronald S. Bultje" To: ffmpeg-devel@ffmpeg.org Date: Tue, 28 Mar 2017 15:06:01 -0400 Message-Id: <1490727961-9760-1-git-send-email-rsbultje@gmail.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1490724349-95400-1-git-send-email-rsbultje@gmail.com> References: <1490724349-95400-1-git-send-email-rsbultje@gmail.com> Subject: [FFmpeg-devel] [PATCH] pthread_frame: don't sync items between threads for intra-only codecs. 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: "Ronald S. Bultje" MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Intra-only codecs should either be able to read these items from the bitstream, or they should be set upon codec initialization. In both cases, syncing these items at runtime is unnecessary. In practice, this fixes race conditions for decoders that read these values from the bitstream. --- libavcodec/pthread_frame.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index b618be0..295763a 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -244,7 +244,7 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src, { int err = 0; - if (dst != src) { + if (dst != src && (for_user || !(av_codec_get_codec_descriptor(src)->props & AV_CODEC_PROP_INTRA_ONLY))) { dst->time_base = src->time_base; dst->framerate = src->framerate; dst->width = src->width;