From patchwork Mon Feb 8 12:23:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25509 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 53A5444A631 for ; Mon, 8 Feb 2021 14:24:17 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3CD5B689E13; Mon, 8 Feb 2021 14:24:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8384068832B for ; Mon, 8 Feb 2021 14:24:08 +0200 (EET) Received: by mail-ej1-f45.google.com with SMTP id y9so24250832ejp.10 for ; Mon, 08 Feb 2021 04:24:08 -0800 (PST) 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:reply-to :mime-version:content-transfer-encoding; bh=eM4RQMP6H0dgwbkUWvZLye/tZdvsWCU6hIqSOKVbeew=; b=PT6fNpwHz12MMlyCt7hbwPUH9p4ReiyQKLclgsXjfIlC8MTvH+ipV2gm/BdMS12kyO qJioVwq/WJVXexfI0kzKR7BfnD4wBs5dgYe6rZRZwvhCV2U4cFdoHhSQAqfQNmdaHcbe VT9TTxq8uMHHSPu8cPwD2UMTRVPvUGKSF6dfHR7LHocgmnz+YnrEDc+Ko2XSyQmIk/pO KcsGw1mRnxEjCts5MAME6UnrBb5RXebIrszO7qoCkdSrxWB6cdPPRKOJ+Dv4BSY6XLsV zjQQr73RIsreHspdEdGdHQlRIjNDT+jvoA3zuLiFxAlhRZbpaWfaBZzGrYjaLJ2vzQK8 aTfg== 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:reply-to:mime-version:content-transfer-encoding; bh=eM4RQMP6H0dgwbkUWvZLye/tZdvsWCU6hIqSOKVbeew=; b=OQ5Dtfq0LeLyXXs6b+40jb7gVLyarm7ds1Aal4o+9kexkdvgRerlDXfI/Qxip8MA4v aGdzLPPhhLFPSkpTxP/OxzmMCoZnmiZlXOqqzNW0WAbfK+la43aFl+FZKssBOgTJuZ5a ggjAXN+t6ErODm3d3WdfJB4eRHdFuiymHcjtEjjIDOyYlQ0KJ6QC02pldzbT95w1ukYI 6cQOe+PQkFXtMiagGRt76d65QiUFoWLFGSsmWZPfzvDMyJVnoJBLIN6Y2R/6+SuudCUY gqUtyXu2jU6oYp+ZBI1bJdyLNHd4nIvMJ9fS/lMdqzsQMN2isVUOvCvOQrlLLq+o0DIJ RwPA== X-Gm-Message-State: AOAM530/RAeiaBMtD0QT6EhEJKX2Wz7u0Yeo/luuDg5oJOA9NzsaN3zr zM5EdsfzF5TLreCeGcHB4uGRr8EdQ18= X-Google-Smtp-Source: ABdhPJxpTTQlQfgETiCL3Q4V7EIV5X8Wsa6CRoTOU++9Vm00da6tJ3dv0fru6OBmUTT2kbxrX5S64A== X-Received: by 2002:a17:906:3916:: with SMTP id f22mr11111611eje.328.1612787047855; Mon, 08 Feb 2021 04:24:07 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id ah20sm8486820ejc.99.2021.02.08.04.24.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Feb 2021 04:24:07 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Feb 2021 13:23:29 +0100 Message-Id: <20210208122330.555354-7-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210208122330.555354-1-andreas.rheinhardt@gmail.com> References: <20210208122330.555354-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 7/8] avcodec/frame_thread_encoder: Reduce amount of code guarded by mutex 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- This is not done for speed, but for consistency (because the return statement already accessed outtask after unlocking the mutex). libavcodec/frame_thread_encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index c6323b6246..f1f4fcb490 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -305,6 +305,7 @@ int ff_thread_video_encode_frame(AVCodecContext *avctx, AVPacket *pkt, while (!outtask->finished) { pthread_cond_wait(&c->finished_task_cond, &c->finished_task_mutex); } + pthread_mutex_unlock(&c->finished_task_mutex); /* We now own outtask completely: No worker thread touches it any more, * because there is no outstanding task with this index. */ outtask->finished = 0; @@ -312,7 +313,6 @@ int ff_thread_video_encode_frame(AVCodecContext *avctx, AVPacket *pkt, if(pkt->data) *got_packet_ptr = 1; c->finished_task_index = (c->finished_task_index + 1) % c->max_tasks; - pthread_mutex_unlock(&c->finished_task_mutex); return outtask->return_code; }