[{"id":33625,"web_url":"https://patchwork.libcamera.org/comment/33625/","msgid":"<174224903694.1463678.4871150681696595661@ping.linuxembedded.co.uk>","date":"2025-03-17T22:03:56","subject":"Re: [PATCH] apps: cam: Fix include order","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2025-03-17 21:57:05)\n> Several .cpp files in the cam application don't include their\n> corresponding header first, as usually done by libcamera to ensure that\n> headers are self-contained. Reorder headers to fix it. This shows\n> through a compilation error that file_sink.h is missing\n> libcamera/controls.h, fix it as well.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nEasy tag:\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n>  src/apps/cam/camera_session.cpp | 3 ++-\n>  src/apps/cam/file_sink.cpp      | 4 ++--\n>  src/apps/cam/file_sink.h        | 1 +\n>  src/apps/cam/main.cpp           | 3 ++-\n>  4 files changed, 7 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> index 9e93482775c3..a352494bed57 100644\n> --- a/src/apps/cam/camera_session.cpp\n> +++ b/src/apps/cam/camera_session.cpp\n> @@ -5,6 +5,8 @@\n>   * Camera capture session\n>   */\n> \n> +#include \"camera_session.h\"\n> +\n>  #include <iomanip>\n>  #include <iostream>\n>  #include <limits.h>\n> @@ -16,7 +18,6 @@\n>  #include \"../common/event_loop.h\"\n>  #include \"../common/stream_options.h\"\n> \n> -#include \"camera_session.h\"\n>  #include \"capture_script.h\"\n>  #include \"file_sink.h\"\n>  #ifdef HAVE_KMS\n> diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp\n> index 76e21db9bf9a..65794a2f90a8 100644\n> --- a/src/apps/cam/file_sink.cpp\n> +++ b/src/apps/cam/file_sink.cpp\n> @@ -5,6 +5,8 @@\n>   * File Sink\n>   */\n> \n> +#include \"file_sink.h\"\n> +\n>  #include <array>\n>  #include <assert.h>\n>  #include <fcntl.h>\n> @@ -21,8 +23,6 @@\n>  #include \"../common/image.h\"\n>  #include \"../common/ppm_writer.h\"\n> \n> -#include \"file_sink.h\"\n> -\n>  using namespace libcamera;\n> \n>  FileSink::FileSink([[maybe_unused]] const libcamera::Camera *camera,\n> diff --git a/src/apps/cam/file_sink.h b/src/apps/cam/file_sink.h\n> index 71b7fe0feab5..26cd61b36d04 100644\n> --- a/src/apps/cam/file_sink.h\n> +++ b/src/apps/cam/file_sink.h\n> @@ -11,6 +11,7 @@\n>  #include <memory>\n>  #include <string>\n> \n> +#include <libcamera/controls.h>\n>  #include <libcamera/stream.h>\n> \n>  #include \"frame_sink.h\"\n> diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\n> index 460dbc813060..fa266eca6d30 100644\n> --- a/src/apps/cam/main.cpp\n> +++ b/src/apps/cam/main.cpp\n> @@ -5,6 +5,8 @@\n>   * cam - The libcamera swiss army knife\n>   */\n> \n> +#include \"main.h\"\n> +\n>  #include <atomic>\n>  #include <iomanip>\n>  #include <iostream>\n> @@ -19,7 +21,6 @@\n>  #include \"../common/stream_options.h\"\n> \n>  #include \"camera_session.h\"\n> -#include \"main.h\"\n> \n>  using namespace libcamera;\n> \n> \n> base-commit: 39419ce431dbd4f34d8772bd31bb7f44a3534f86\n> --\n> Regards,\n> \n> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 85D86C32F5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 17 Mar 2025 22:04:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5CBD868942;\n\tMon, 17 Mar 2025 23:04:01 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E4EC3617F8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 17 Mar 2025 23:03:59 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EC7EB8DB;\n\tMon, 17 Mar 2025 23:02:17 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Fj/A5YT4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1742248938;\n\tbh=M+hkYZZ38O68J8h2/uWpHSAhzdr9cuuDCsHM98xSPo8=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=Fj/A5YT4qkAb9u1YY0gWTpNE/lnppdAkku7kAIL9kgOSnGOMyaHgvRwxAnyU5AE6l\n\tmG4dSGUoTdcCNChfvaIzksXF2bMbQ9v/M+vXA24X2TZeez/PyFtwEibLX0BkTGAuzg\n\tPd6H3Vr0H6zc59t5Y52+VHcX+jn0P6HaavZuvWRw=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250317215705.14219-1-laurent.pinchart@ideasonboard.com>","References":"<20250317215705.14219-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH] apps: cam: Fix include order","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 17 Mar 2025 22:03:56 +0000","Message-ID":"<174224903694.1463678.4871150681696595661@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33626,"web_url":"https://patchwork.libcamera.org/comment/33626/","msgid":"<ngyu5f2vfaih2qc7bjxkc3enjzqmzr262jyfh2e46muqyo6fbk@6g5b3ysmbbpf>","date":"2025-03-18T05:42:21","subject":"Re: [PATCH] apps: cam: Fix include order","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Laurent,\n\nThank you for the patch. \n\nOn Mon, Mar 17, 2025 at 11:57:05PM +0200, Laurent Pinchart wrote:\n> Several .cpp files in the cam application don't include their\n> corresponding header first, as usually done by libcamera to ensure that\n> headers are self-contained. Reorder headers to fix it. This shows\n> through a compilation error that file_sink.h is missing\n> libcamera/controls.h, fix it as well.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nRegards,\nStefan\n\n> ---\n>  src/apps/cam/camera_session.cpp | 3 ++-\n>  src/apps/cam/file_sink.cpp      | 4 ++--\n>  src/apps/cam/file_sink.h        | 1 +\n>  src/apps/cam/main.cpp           | 3 ++-\n>  4 files changed, 7 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> index 9e93482775c3..a352494bed57 100644\n> --- a/src/apps/cam/camera_session.cpp\n> +++ b/src/apps/cam/camera_session.cpp\n> @@ -5,6 +5,8 @@\n>   * Camera capture session\n>   */\n> \n> +#include \"camera_session.h\"\n> +\n>  #include <iomanip>\n>  #include <iostream>\n>  #include <limits.h>\n> @@ -16,7 +18,6 @@\n>  #include \"../common/event_loop.h\"\n>  #include \"../common/stream_options.h\"\n> \n> -#include \"camera_session.h\"\n>  #include \"capture_script.h\"\n>  #include \"file_sink.h\"\n>  #ifdef HAVE_KMS\n> diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp\n> index 76e21db9bf9a..65794a2f90a8 100644\n> --- a/src/apps/cam/file_sink.cpp\n> +++ b/src/apps/cam/file_sink.cpp\n> @@ -5,6 +5,8 @@\n>   * File Sink\n>   */\n> \n> +#include \"file_sink.h\"\n> +\n>  #include <array>\n>  #include <assert.h>\n>  #include <fcntl.h>\n> @@ -21,8 +23,6 @@\n>  #include \"../common/image.h\"\n>  #include \"../common/ppm_writer.h\"\n> \n> -#include \"file_sink.h\"\n> -\n>  using namespace libcamera;\n> \n>  FileSink::FileSink([[maybe_unused]] const libcamera::Camera *camera,\n> diff --git a/src/apps/cam/file_sink.h b/src/apps/cam/file_sink.h\n> index 71b7fe0feab5..26cd61b36d04 100644\n> --- a/src/apps/cam/file_sink.h\n> +++ b/src/apps/cam/file_sink.h\n> @@ -11,6 +11,7 @@\n>  #include <memory>\n>  #include <string>\n> \n> +#include <libcamera/controls.h>\n>  #include <libcamera/stream.h>\n> \n>  #include \"frame_sink.h\"\n> diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\n> index 460dbc813060..fa266eca6d30 100644\n> --- a/src/apps/cam/main.cpp\n> +++ b/src/apps/cam/main.cpp\n> @@ -5,6 +5,8 @@\n>   * cam - The libcamera swiss army knife\n>   */\n> \n> +#include \"main.h\"\n> +\n>  #include <atomic>\n>  #include <iomanip>\n>  #include <iostream>\n> @@ -19,7 +21,6 @@\n>  #include \"../common/stream_options.h\"\n> \n>  #include \"camera_session.h\"\n> -#include \"main.h\"\n> \n>  using namespace libcamera;\n> \n> \n> base-commit: 39419ce431dbd4f34d8772bd31bb7f44a3534f86\n> --\n> Regards,\n> \n> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 7FB87BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 18 Mar 2025 05:42:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6504868942;\n\tTue, 18 Mar 2025 06:42:26 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5F61E617F6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 18 Mar 2025 06:42:24 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:7ab4:bdb3:124f:f29e])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2182C6A2;\n\tTue, 18 Mar 2025 06:40:41 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"atxbj/CL\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1742276442;\n\tbh=S9KSwL/sj9cpZd6YdMzeVwg7zslnJ3SIuaxnbL1Qm/Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=atxbj/CLxUmu6rnx20aZsOSP8y9//bUqWQT0nDZU+F4eEmW7LuKgBCoYpejGZCqgd\n\tU25jwR5ioMhylGRLX0XXSFIzSutkdlMtYCBVL2w5tfaNotZhxgg1NOCucXkeps6vl2\n\tBEwfql7Piom9MoSIcrKuakpsMpelbXL5XKPgVVs0=","Date":"Tue, 18 Mar 2025 06:42:21 +0100","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] apps: cam: Fix include order","Message-ID":"<ngyu5f2vfaih2qc7bjxkc3enjzqmzr262jyfh2e46muqyo6fbk@6g5b3ysmbbpf>","References":"<20250317215705.14219-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250317215705.14219-1-laurent.pinchart@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]