From patchwork Sun Mar 27 13:52:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 15562 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id C5A79C3256 for ; Sun, 27 Mar 2022 13:53:07 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E7D7C65631; Sun, 27 Mar 2022 15:53:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1648389186; bh=pW2CuPhbOkJg8Raw+4awP+y1FL9ePnxjcoV0dOQqT00=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=O/pmHkVelHT7nkylkAVh3tBT3QkBSIix6rr0kHFWStuCfTBQZY9ZBUPOGG1HBKk+P hLQ0FSuEqQ2dg+rsPoTayFLh2gr3YIAczkzhXSqnRDkrP97yWdSfsOSJm8R5FO27cN zoZ5QP2bIdVGeY27ocOjNI6Phj97STgRkUfam/9vLa9BYDHJp6HU520K46Udod9PFQ 1MRGNKzkyi9So7LwqG+iQy4NTTEnP/MYGZlqBZJLUhQqHKD1Gk0P9GzrmnWuiFbk3j 5H123zNUhsyHVj2PQrYtz5Fiv3KSmfo0iZZFznu+ER0b/vsi9UnTIND83Gqjent1mc joCLe0QHoTE/g== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5A9E7600AB for ; Sun, 27 Mar 2022 15:53:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="O7+H0AIj"; dkim-atps=neutral Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 783712EC; Sun, 27 Mar 2022 15:53:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1648389184; bh=pW2CuPhbOkJg8Raw+4awP+y1FL9ePnxjcoV0dOQqT00=; h=From:To:Cc:Subject:Date:From; b=O7+H0AIjeJbWtpuVMnSAfwd/zpEqJLnG5/JRy5ttd2UQ50N1Riyp3wj72l3CsqDMG N+/sCB3TQ8e4xFqYlvbq/snxE1e4EmrHnBU9VjOKy/RIycTg6tnt1iesDS0SNinjvP 1Q/4Yd1a6g/988bkzojAR5IbE8j2GeyNqY8HoPWY= To: libcamera-devel@lists.libcamera.org Date: Sun, 27 Mar 2022 16:52:58 +0300 Message-Id: <20220327135258.1998-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] gstreamer: Cleanup inner scope in gst_libcamera_src_task_run() X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Cc: Nicolas Dufresne , Vedant Paranjape Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The code block that checks for flow errors in gst_libcamera_src_task_run() is located in an inner scope whose purpose it to handling locking. The flow error handling however occurs before the lock is taken, so there's no need to place it in the inner scope. Move it one level up. Signed-off-by: Laurent Pinchart --- src/gstreamer/gstlibcamerasrc.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 46fd02d207be..8016a98d6a4d 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -311,21 +311,21 @@ gst_libcamera_src_task_run(gpointer user_data) srcpad, ret); } - { - if (ret != GST_FLOW_OK) { - if (ret == GST_FLOW_EOS) { - g_autoptr(GstEvent) eos = gst_event_new_eos(); - guint32 seqnum = gst_util_seqnum_next(); - gst_event_set_seqnum(eos, seqnum); - for (GstPad *srcpad : state->srcpads_) - gst_pad_push_event(srcpad, gst_event_ref(eos)); - } else if (ret != GST_FLOW_FLUSHING) { - GST_ELEMENT_FLOW_ERROR(self, ret); - } - gst_task_stop(self->task); - return; + if (ret != GST_FLOW_OK) { + if (ret == GST_FLOW_EOS) { + g_autoptr(GstEvent) eos = gst_event_new_eos(); + guint32 seqnum = gst_util_seqnum_next(); + gst_event_set_seqnum(eos, seqnum); + for (GstPad *srcpad : state->srcpads_) + gst_pad_push_event(srcpad, gst_event_ref(eos)); + } else if (ret != GST_FLOW_FLUSHING) { + GST_ELEMENT_FLOW_ERROR(self, ret); } + gst_task_stop(self->task); + return; + } + { /* * Here we need to decide if we want to pause. This needs to * happen in lock step with the callback thread which may want