[{"id":18666,"web_url":"https://patchwork.libcamera.org/comment/18666/","msgid":"<20210810093807.GU2167@pyrite.rasen.tech>","date":"2021-08-10T09:38:07","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Vedant,\n\nOn Tue, Aug 10, 2021 at 02:54:09PM +0530, Vedant Paranjape wrote:\n> This patch adds a test to test if single stream using\n> libcamera's gstreamer element works.\n> \n> Signed-off-by: Vedant Paranjape <vedantparanjape160201@gmail.com>\n> ---\n>  .../gstreamer_single_stream_test.cpp          | 119 ++++++++++++++++++\n>  test/gstreamer/meson.build                    |  15 +++\n>  test/meson.build                              |   1 +\n>  3 files changed, 135 insertions(+)\n>  create mode 100644 test/gstreamer/gstreamer_single_stream_test.cpp\n>  create mode 100644 test/gstreamer/meson.build\n> \n> diff --git a/test/gstreamer/gstreamer_single_stream_test.cpp b/test/gstreamer/gstreamer_single_stream_test.cpp\n> new file mode 100644\n> index 00000000..11f55e1c\n> --- /dev/null\n> +++ b/test/gstreamer/gstreamer_single_stream_test.cpp\n> @@ -0,0 +1,119 @@\n> +#include <iostream>\n> +#include <gst/gst.h>\n> +\n> +#include \"test.h\"\n> +\n> +using namespace std;\n> +\n> +class GstreamerSingleStreamTest: public Test\n\ns/: / : /\n\n> +{\n> +private:\n\nprivate goes after protected\n\n> +\tGstElement *pipeline_, *libcamera_src_, *convert0_, *sink0_;\n> +\tGstBus *bus_;\n> +\tGstMessage *msg_;\n> +\tGstStateChangeReturn ret_;\n> +\n> +protected:\n> +\tvoid GstreamerPrintError(GstMessage *msg)\n> +\t{\n> +\t\tGError *err;\n> +\t\tgchar *debug_info;\n> +\n> +\t\tgst_message_parse_error(msg, &err, &debug_info);\n> +\t\tg_printerr(\"Error received from element %s: %s\\n\", GST_OBJECT_NAME(msg->src), err->message);\n\ntoo long line\n\n> +\t\tg_printerr(\"Debugging information: %s\\n\", debug_info ? debug_info : \"none\");\n\ntoo long line\n\n> +\t\tg_clear_error(&err);\n> +\t\tg_free(debug_info);\n> +\t}\n> +\n> +\tint init() override\n> +\t{\n> +\t\t/* Initialize GStreamer */\n> +\t\tGError *err_init = nullptr;\n> +\t\tif (!gst_init_check(nullptr, nullptr, &err_init)) {\n> +\t\t\tg_printerr (\"Could not initialize GStreamer: %s\\n\", \n> +\t\t\t\t\t\t\terr_init ? err_init->message : \"unknown error\");\n\nthe broken line should line up nicely:\n\n+\t\t\tg_printerr(\"Could not initialize GStreamer: %s\\n\", \n+\t\t\t\t   err_init ? err_init->message : \"unknown error\");\n\nAlso you have a space between g_printerr and (\n\n> +\t\t\tif (err_init)\n> +\t\t\t\tg_error_free(err_init);\n> +\n> +\t\t\treturn TestFail;\n> +\t\t}\n> +\n> +\t\t/* Create the elements */\n> +\t\tlibcamera_src_ = gst_element_factory_make(\"libcamerasrc\", \"libcamera\");\n> +\t\tconvert0_ = gst_element_factory_make(\"videoconvert\", \"convert0\");\n> +\t\tsink0_ = gst_element_factory_make(\"autovideosink\", \"sink0\");\n> +\n> +\t\t/* Create the empty pipeline_ */\n> +\t\tpipeline_ = gst_pipeline_new(\"test-pipeline\");\n> +\n> +\t\tif (!pipeline_ || !convert0_ || !sink0_ || !libcamera_src_) {\n> +\t\t\tg_printerr(\"Not all elements could be created.\\n\");\n> +\t\t\treturn TestFail;\n> +\t\t}\n> +\n> +\t\treturn TestPass;\n> +\t}\n> +\n> +\tvoid cleanup() override\n> +\t{\n> +\t\tgst_message_unref(msg_);\n> +\t\tgst_object_unref(bus_);\n> +\t\tgst_element_set_state(pipeline_, GST_STATE_NULL);\n> +\t\tgst_object_unref(pipeline_);\n> +\t}\n> +\n> +\tint run() override\n> +\t{\n> +\t\t/* Build the pipeline */\n> +\t\tgst_bin_add_many(GST_BIN(pipeline_), libcamera_src_, convert0_, sink0_, NULL);\n> +\t\tif (gst_element_link_many(libcamera_src_, convert0_, sink0_, NULL) != TRUE) {\n> +\t\t\tg_printerr(\"Elements could not be linked.\\n\");\n> +\t\t\tgst_object_unref(pipeline_);\n> +\t\t\treturn TestFail;\n> +\t\t}\n> +\n> +\t\t/* Start playing */\n> +\t\tret_ = gst_element_set_state(pipeline_, GST_STATE_PLAYING);\n> +\t\tif (ret_ == GST_STATE_CHANGE_FAILURE) {\n> +\t\t\tg_printerr(\"Unable to set the pipeline to the playing state.\\n\");\n> +\t\t\tgst_object_unref(pipeline_);\n> +\t\t\treturn TestFail;\n> +\t\t}\n> +\n> +\t\t/* Wait until error or EOS or timeout after 2 seconds*/\n> +\t\tGstClockTime timeout = 2000000000;\n> +\t\tbus_ = gst_element_get_bus(pipeline_);\n> +\t\tmsg_ = gst_bus_timed_pop_filtered(bus_, timeout,\n> +\t\t\t\t\t\t\t\t\tGstMessageType((uint)GST_MESSAGE_ERROR | (uint)GST_MESSAGE_EOS));\n\nThis line is too long even when wrapped, so it's probably fine to just\nindent it one more level with tab.\n\n> +\n> +\t\t/* Parse error message */\n> +\t\tif (msg_ != NULL) {\n\nThis results in too much indentation. Better to return TestPass on if msg_\n== NULL and then move everything else out of this block.\n\n> +\t\t\tint TestResult;\n\nJust return directly, no need for this temporary variable.\n\n> +\n> +\t\t\tswitch (GST_MESSAGE_TYPE(msg_)) {\n> +\t\t\t\tcase GST_MESSAGE_ERROR:\n> +\t\t\t\t\tGstreamerPrintError(msg_);\n> +\t\t\t\t\tTestResult = TestFail;\n> +\t\t\t\t\tbreak;\n> +\t\t\t\tcase GST_MESSAGE_EOS:\n> +\t\t\t\t\tg_print(\"End-Of-Stream reached.\\n\");\n> +\t\t\t\t\tTestResult = TestFail;\n> +\t\t\t\t\tbreak;\n> +\t\t\t\tdefault:\n> +\t\t\t\t\t/* We should not reach here because we only asked for ERRORs and EOS */\n\nI think the g_printerr message conveys this; no need for this comment.\n\n\nAlmost there.\n\nPaul\n\n> +\t\t\t\t\tg_printerr(\"Unexpected message received.\\n\");\n> +\t\t\t\t\tTestResult = TestFail;\n> +\t\t\t\t\tbreak;\n> +\t\t\t}\n> +\n> +\t\t\tif (TestResult == TestFail) {\n> +\t\t\t\treturn TestFail;\n> +\t\t\t}\n> +\t\t}\n> +\n> +\t\treturn TestPass;\n> +\t}\n> +};\n> +\n> +TEST_REGISTER(GstreamerSingleStreamTest)\n> diff --git a/test/gstreamer/meson.build b/test/gstreamer/meson.build\n> new file mode 100644\n> index 00000000..36643d4a\n> --- /dev/null\n> +++ b/test/gstreamer/meson.build\n> @@ -0,0 +1,15 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n> +gstreamer_tests = [\n> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n> +]\n> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n> +\n> +foreach t : gstreamer_tests\n> +    exe = executable(t[0], t[1],\n> +                     dependencies : [libcamera_private, gstreamer_dep],\n> +                     link_with : test_libraries,\n> +                     include_directories : test_includes_internal)\n> +\n> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n> +endforeach\n> diff --git a/test/meson.build b/test/meson.build\n> index 3bceb5df..d0466f17 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -11,6 +11,7 @@ subdir('libtest')\n>  \n>  subdir('camera')\n>  subdir('controls')\n> +subdir('gstreamer')\n>  subdir('ipa')\n>  subdir('ipc')\n>  subdir('log')\n> -- \n> 2.25.1\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 CFF78BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 09:38:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4A4D7687DE;\n\tTue, 10 Aug 2021 11:38:17 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8F387687DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 11:38:15 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0CDCD3F0;\n\tTue, 10 Aug 2021 11:38:13 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"OJ2auGZJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628588295;\n\tbh=ySaJ3gQsmjyk4XQPQFEATOErPwNRPsIvWn8kSsIW+xw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=OJ2auGZJMLF3FMP9dn5c6+aH51lyKgdmQBzv3wN83tEETc3ikaSyCwj+tmrbXMdOg\n\tfZ5wjZxN8iuFbJ+35GMAgJBqbonmqbVYo2kmqvz/DxezN7ecHdFKSQeNPupTf7daLY\n\tKImH+j5ImKtYoDL/wJMOaED3HUHZPYhsRIpg1pcg=","Date":"Tue, 10 Aug 2021 18:38:07 +0900","From":"paul.elder@ideasonboard.com","To":"Vedant Paranjape <vedantparanjape160201@gmail.com>","Message-ID":"<20210810093807.GU2167@pyrite.rasen.tech>","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18668,"web_url":"https://patchwork.libcamera.org/comment/18668/","msgid":"<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","date":"2021-08-10T10:05:45","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Vedant,\n\nThank you for this, I'm very glad to see gstreamer tests being introduced!\n\n\nOn 10/08/2021 10:38, paul.elder@ideasonboard.com wrote:\n\n<snip>\n\n>> --- /dev/null\n>> +++ b/test/gstreamer/meson.build\n>> @@ -0,0 +1,15 @@\n>> +# SPDX-License-Identifier: CC0-1.0\n>> +\n>> +gstreamer_tests = [\n>> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n>> +]\n>> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n\ninstead of required: true, we should depend upon whether we are built\nwith gstreamer_support.\n\nI think this would do it, but please check/test.\n\ngstreamer_dep =\n dependency('gstreamer-1.0', required: get_option('gstreamer'))\n\nAnd then we would want to skip all tests from being built if there is no\ngstreamer:\n\n\nif not gstreamer_dep.found()gstallocator_dep.found()\n    subdir_done()\nendif\n\nI would put the dependency checking, and this subdir_done() addition at\nthe beginning, before even listing the tests.\n\n--\nKieran\n\n\n>> +\n>> +foreach t : gstreamer_tests\n>> +    exe = executable(t[0], t[1],\n>> +                     dependencies : [libcamera_private, gstreamer_dep],\n>> +                     link_with : test_libraries,\n>> +                     include_directories : test_includes_internal)\n>> +\n>> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n>> +endforeach\n>> diff --git a/test/meson.build b/test/meson.build\n>> index 3bceb5df..d0466f17 100644\n>> --- a/test/meson.build\n>> +++ b/test/meson.build\n>> @@ -11,6 +11,7 @@ subdir('libtest')\n>>  \n>>  subdir('camera')\n>>  subdir('controls')\n>> +subdir('gstreamer')\n>>  subdir('ipa')\n>>  subdir('ipc')\n>>  subdir('log')\n>> -- \n>> 2.25.1\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 EBD45C3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 10:05:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4850D6884D;\n\tTue, 10 Aug 2021 12:05:49 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2ABBD687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 12:05:48 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8E33D3F0;\n\tTue, 10 Aug 2021 12:05:47 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"UlTAXlcK\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628589947;\n\tbh=3N8ku37dDEW4qBm2HtY7o7Mj6tri+iIrPrSV/qciMPk=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=UlTAXlcKU1/UAs3vVLKe2EOrA36XqacntC0BgHZpN7/xl/QQt2nTzl3EN/Fd4qf/o\n\t/5U4RAVWh587n1u3OfiDVwS6k9G7Q+gfzQVuFWueVqsdsB5AGiElxrcZrA+ZBTf/iP\n\t/9HkhroKqXrNTZF6CDyXKZWdWNawKgk6sExmbczg=","To":"paul.elder@ideasonboard.com,\n\tVedant Paranjape <vedantparanjape160201@gmail.com>","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>\n\t<20210810093807.GU2167@pyrite.rasen.tech>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","Date":"Tue, 10 Aug 2021 11:05:45 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<20210810093807.GU2167@pyrite.rasen.tech>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18671,"web_url":"https://patchwork.libcamera.org/comment/18671/","msgid":"<YRJT04tSdz5azqDX@pendragon.ideasonboard.com>","date":"2021-08-10T10:24:19","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Aug 10, 2021 at 11:05:45AM +0100, Kieran Bingham wrote:\n> Hi Vedant,\n> \n> Thank you for this, I'm very glad to see gstreamer tests being introduced!\n> \n> \n> On 10/08/2021 10:38, paul.elder@ideasonboard.com wrote:\n> \n> <snip>\n> \n> >> --- /dev/null\n> >> +++ b/test/gstreamer/meson.build\n> >> @@ -0,0 +1,15 @@\n> >> +# SPDX-License-Identifier: CC0-1.0\n> >> +\n> >> +gstreamer_tests = [\n> >> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n> >> +]\n> >> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n> \n> instead of required: true, we should depend upon whether we are built\n> with gstreamer_support.\n> \n> I think this would do it, but please check/test.\n> \n> gstreamer_dep =\n>  dependency('gstreamer-1.0', required: get_option('gstreamer'))\n> \n> And then we would want to skip all tests from being built if there is no\n> gstreamer:\n> \n> \n> if not gstreamer_dep.found()gstallocator_dep.found()\n>     subdir_done()\n> endif\n\nThere a multiple dependencies for the gstreamer plugin. You can simply\nuse\n\nif not gst_enabled\n\tsubdir_done()\nendif\n\n> \n> I would put the dependency checking, and this subdir_done() addition at\n> the beginning, before even listing the tests.\n> \n> >> +\n> >> +foreach t : gstreamer_tests\n> >> +    exe = executable(t[0], t[1],\n> >> +                     dependencies : [libcamera_private, gstreamer_dep],\n> >> +                     link_with : test_libraries,\n> >> +                     include_directories : test_includes_internal)\n> >> +\n> >> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n> >> +endforeach\n> >> diff --git a/test/meson.build b/test/meson.build\n> >> index 3bceb5df..d0466f17 100644\n> >> --- a/test/meson.build\n> >> +++ b/test/meson.build\n> >> @@ -11,6 +11,7 @@ subdir('libtest')\n> >>  \n> >>  subdir('camera')\n> >>  subdir('controls')\n> >> +subdir('gstreamer')\n> >>  subdir('ipa')\n> >>  subdir('ipc')\n> >>  subdir('log')","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 1D453C3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 10:24:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 42A366884F;\n\tTue, 10 Aug 2021 12:24:23 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E2C72687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 12:24:21 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4ADEDEE;\n\tTue, 10 Aug 2021 12:24:21 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ObufIn0y\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628591061;\n\tbh=FB6Fncb4NECpYeuex7vXYgzMOYLLvpW/rV6GQx1IgfY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ObufIn0yKSVvaYE0ky8od3BgCfRBOssYOKtkir8oPWdTsu2S84GT+NLGS/DCQUrQR\n\tazopXICz/ttY15H09iV9YxRg22qFyWFquzvgnNUP4B+tsAd5F0CLQA6/gCzXb8sx7l\n\tDvUniOF7NsydqbNrO793kdOMeW/kZBLtj+XXBLQw=","Date":"Tue, 10 Aug 2021 13:24:19 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YRJT04tSdz5azqDX@pendragon.ideasonboard.com>","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>\n\t<20210810093807.GU2167@pyrite.rasen.tech>\n\t<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org,\n\tVedant Paranjape <vedantparanjape160201@gmail.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18672,"web_url":"https://patchwork.libcamera.org/comment/18672/","msgid":"<CACGrz-NaHsHpQq7Hr_9ZCsfPsFDMHw3d3qmJcTRU99HwgFKmhQ@mail.gmail.com>","date":"2021-08-10T10:56:16","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":85,"url":"https://patchwork.libcamera.org/api/people/85/","name":"Vedant Paranjape","email":"vedantparanjape160201@gmail.com"},"content":"Hi Kieran,\nThanks for the review.\n\nOn Tue, Aug 10, 2021 at 3:35 PM Kieran Bingham <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Hi Vedant,\n>\n> Thank you for this, I'm very glad to see gstreamer tests being introduced!\n>\n>\n> On 10/08/2021 10:38, paul.elder@ideasonboard.com wrote:\n>\n> <snip>\n>\n> >> --- /dev/null\n> >> +++ b/test/gstreamer/meson.build\n> >> @@ -0,0 +1,15 @@\n> >> +# SPDX-License-Identifier: CC0-1.0\n> >> +\n> >> +gstreamer_tests = [\n> >> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n> >> +]\n> >> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n>\n> instead of required: true, we should depend upon whether we are built\n> with gstreamer_support.\n>\n> I think this would do it, but please check/test.\n>\n> gstreamer_dep =\n>  dependency('gstreamer-1.0', required: get_option('gstreamer'))\n>\n> And then we would want to skip all tests from being built if there is no\n> gstreamer:\n>\n>\n> if not gstreamer_dep.found()gstallocator_dep.found()\n>     subdir_done()\n> endif\n>\n\nThis is needs to be added by my patch ? or it will added sometime in future\n?\n\nI would put the dependency checking, and this subdir_done() addition at\n> the beginning, before even listing the tests.\n>\n> --\n> Kieran\n>\n>\n> >> +\n> >> +foreach t : gstreamer_tests\n> >> +    exe = executable(t[0], t[1],\n> >> +                     dependencies : [libcamera_private, gstreamer_dep],\n> >> +                     link_with : test_libraries,\n> >> +                     include_directories : test_includes_internal)\n> >> +\n> >> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n> >> +endforeach\n> >> diff --git a/test/meson.build b/test/meson.build\n> >> index 3bceb5df..d0466f17 100644\n> >> --- a/test/meson.build\n> >> +++ b/test/meson.build\n> >> @@ -11,6 +11,7 @@ subdir('libtest')\n> >>\n> >>  subdir('camera')\n> >>  subdir('controls')\n> >> +subdir('gstreamer')\n> >>  subdir('ipa')\n> >>  subdir('ipc')\n> >>  subdir('log')\n> >> --\n> >> 2.25.1\n> >>\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 019B0BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 10:56:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6535B68822;\n\tTue, 10 Aug 2021 12:56:30 +0200 (CEST)","from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com\n\t[IPv6:2607:f8b0:4864:20::b2b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0B1E3687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 12:56:29 +0200 (CEST)","by mail-yb1-xb2b.google.com with SMTP id p145so35291390ybg.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 03:56:28 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"P+sVnmYJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=Xnwhdf+f4HWtMH5xR0S1NUURbVLn6tv8BvkplA03MjM=;\n\tb=P+sVnmYJabll9PY4sGsbyGgjl7aRatpC4AJfbUCgqnRrs5yAWxPra1aC7K6gbZl4Ry\n\ta5pdKoIgC1DPvz33Etna1A0efxZ3LDfQePmur2aZqFvgMYmjL+f4UUMSW18sacOytENO\n\tBssRvpDBp1V0H0QxK6mtyi8hJLVIfLL/OftLXkP+haHKxg9j0T+ZfqcDxqe1+6t06h9w\n\tQkDMNBg/PTZaETmdbpNPqjm8LzXn+WaNkDd8b8MDkruCT+Z0Rb7DPWmKbkZGqxOKIO0o\n\tcdredq5hYgTwRU6qVFU8pFEPAVFnyuZlYMhxG+dAMySYBHxJ/Rc5LPWiRkUgtf86Ws6P\n\tURzQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=Xnwhdf+f4HWtMH5xR0S1NUURbVLn6tv8BvkplA03MjM=;\n\tb=d1HYDIklgp0i7/oqYlg8T5a12vHS6b9rbzfqsbU4cBg0Z/QJOaV4R0J/Jzn7RLWbrp\n\tC/c7a4CAK21tfr2qgPIhET7kRiyFXPZgE+TmuxTZWQuoL7BVwTWGHVU4gd8UfC5BCaIo\n\tmRRe5AxaoaU+ayA39pe07rbeDshyUdl3Nl9guYmMtv5gyicGEmXboMUv2t/4Mg2bSgRW\n\t2YRmUUkv/K+47wi7wGZjqjIi8ir3z7PCKtB4yibM4Eixb3KvVhN2/72An9ed3Q4jtgqS\n\t8DJ1PJWVw3U2ARoDe01xYRCp4h8f0hB83tXI8Rx3BZHYpBMn4kI9RnKYICfAEE8wQTsS\n\tNzpg==","X-Gm-Message-State":"AOAM533pP8kSa3Dnkeltz74x9tynZRAUA+JjSyUYmERAlDoNcMg/Tuy3\n\tCcRtAdQDwV+0QQWCzj3L2PPPgLqdmmTQkKYdI2nup+/Dv9hCTQ==","X-Google-Smtp-Source":"ABdhPJxeb2B0+l3ji6752xJNxDuuGH12fozmOuu9u8HTUn1vAExUGbMZI5ag79SEQDuY8g9gdegiTpqtoqiw0x6sSy0=","X-Received":"by 2002:a25:b787:: with SMTP id\n\tn7mr39096506ybh.468.1628592987815; \n\tTue, 10 Aug 2021 03:56:27 -0700 (PDT)","MIME-Version":"1.0","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>\n\t<20210810093807.GU2167@pyrite.rasen.tech>\n\t<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","In-Reply-To":"<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>","From":"Vedant Paranjape <vedantparanjape160201@gmail.com>","Date":"Tue, 10 Aug 2021 16:26:16 +0530","Message-ID":"<CACGrz-NaHsHpQq7Hr_9ZCsfPsFDMHw3d3qmJcTRU99HwgFKmhQ@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"00000000000085c21805c9325a26\"","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18673,"web_url":"https://patchwork.libcamera.org/comment/18673/","msgid":"<1d9e25f8-f793-afaf-5436-3797a34bda7c@ideasonboard.com>","date":"2021-08-10T11:08:47","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Vedant,\n\nOn 10/08/2021 11:56, Vedant Paranjape wrote:\n> Hi Kieran,\n> Thanks for the review.\n> \n> On Tue, Aug 10, 2021 at 3:35 PM Kieran Bingham\n> <kieran.bingham@ideasonboard.com\n> <mailto:kieran.bingham@ideasonboard.com>> wrote:\n> \n>     Hi Vedant,\n> \n>     Thank you for this, I'm very glad to see gstreamer tests being\n>     introduced!\n> \n> \n>     On 10/08/2021 10:38, paul.elder@ideasonboard.com\n>     <mailto:paul.elder@ideasonboard.com> wrote:\n> \n>     <snip>\n> \n>     >> --- /dev/null\n>     >> +++ b/test/gstreamer/meson.build\n>     >> @@ -0,0 +1,15 @@\n>     >> +# SPDX-License-Identifier: CC0-1.0\n>     >> +\n>     >> +gstreamer_tests = [\n>     >> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n>     >> +]\n>     >> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n> \n>     instead of required: true, we should depend upon whether we are built\n>     with gstreamer_support.\n> \n>     I think this would do it, but please check/test.\n> \n>     gstreamer_dep =\n>      dependency('gstreamer-1.0', required: get_option('gstreamer'))\n> \n>     And then we would want to skip all tests from being built if there is no\n>     gstreamer:\n> \n> \n>     if not gstreamer_dep.found()gstallocator_dep.found()\n>         subdir_done()\n>     endif\n> \n> \n> This is needs to be added by my patch ? or it will added sometime in\n> future ?\n\nYour patch should add it.\n\nBut Laurent's suggestion is subtly different and better.\n\nSo you should start the meson.build by checking:\n\nif not gst_enabled\n\tsubdir_done()\nendif\n\n\nThen your\n\n\tgstreamer_dep = dependency('gstreamer-1.0', required: true)\n\nline can stay as it is, because if gst_enabled is true, you /do/ require\nthe gstreamer_dep anyway .\n\nSo it's just Lauren'ts three lines to add to the beginning of the\nmeson.build.\n\n\n--\nKieran\n\n> \n>     I would put the dependency checking, and this subdir_done() addition at\n>     the beginning, before even listing the tests.\n> \n>     --\n>     Kieran\n> \n> \n>     >> +\n>     >> +foreach t : gstreamer_tests\n>     >> +    exe = executable(t[0], t[1],\n>     >> +                     dependencies : [libcamera_private,\n>     gstreamer_dep],\n>     >> +                     link_with : test_libraries,\n>     >> +                     include_directories : test_includes_internal)\n>     >> +\n>     >> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n>     >> +endforeach\n>     >> diff --git a/test/meson.build b/test/meson.build\n>     >> index 3bceb5df..d0466f17 100644\n>     >> --- a/test/meson.build\n>     >> +++ b/test/meson.build\n>     >> @@ -11,6 +11,7 @@ subdir('libtest')\n>     >> \n>     >>  subdir('camera')\n>     >>  subdir('controls')\n>     >> +subdir('gstreamer')\n>     >>  subdir('ipa')\n>     >>  subdir('ipc')\n>     >>  subdir('log')\n>     >> --\n>     >> 2.25.1\n>     >>\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 17FE4C3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 11:08:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 944706884D;\n\tTue, 10 Aug 2021 13:08:51 +0200 (CEST)","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 B9F8C687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 13:08:50 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2B687EE;\n\tTue, 10 Aug 2021 13:08:50 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"vfqBMXDe\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628593730;\n\tbh=ZkaXq2Z9wSFivSQ7R3Q3Tv41UvVQlLOzCbVFelkv+ts=;\n\th=From:Subject:To:Cc:References:Date:In-Reply-To:From;\n\tb=vfqBMXDedi6Qt6rEguDEXoZtN7OI403ZcQIHj4C1kou6ZDd55WJPEMKMgCzht9P9J\n\tJa7J9DwUnqa6RuX4ICKOO7QpAvjQ/h0ycba16goY//iq/8YTR5iGLuOkjGo5RT2v9Z\n\tvdjLLoueonPKzfbsZk0eS2aDjKLMp4CeaCRiv9GQ=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Vedant Paranjape <vedantparanjape160201@gmail.com>","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>\n\t<20210810093807.GU2167@pyrite.rasen.tech>\n\t<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>\n\t<CACGrz-NaHsHpQq7Hr_9ZCsfPsFDMHw3d3qmJcTRU99HwgFKmhQ@mail.gmail.com>","Message-ID":"<1d9e25f8-f793-afaf-5436-3797a34bda7c@ideasonboard.com>","Date":"Tue, 10 Aug 2021 12:08:47 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<CACGrz-NaHsHpQq7Hr_9ZCsfPsFDMHw3d3qmJcTRU99HwgFKmhQ@mail.gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18674,"web_url":"https://patchwork.libcamera.org/comment/18674/","msgid":"<CACGrz-NeZNLG=P6GjnR0+ofCf-LH8Ui=Y+zaZcDNVFJbYwSpBw@mail.gmail.com>","date":"2021-08-10T11:14:38","subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","submitter":{"id":85,"url":"https://patchwork.libcamera.org/api/people/85/","name":"Vedant Paranjape","email":"vedantparanjape160201@gmail.com"},"content":"Okay, sounds good.\n\nOn Tue, Aug 10, 2021 at 4:38 PM Kieran Bingham <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Hi Vedant,\n>\n> On 10/08/2021 11:56, Vedant Paranjape wrote:\n> > Hi Kieran,\n> > Thanks for the review.\n> >\n> > On Tue, Aug 10, 2021 at 3:35 PM Kieran Bingham\n> > <kieran.bingham@ideasonboard.com\n> > <mailto:kieran.bingham@ideasonboard.com>> wrote:\n> >\n> >     Hi Vedant,\n> >\n> >     Thank you for this, I'm very glad to see gstreamer tests being\n> >     introduced!\n> >\n> >\n> >     On 10/08/2021 10:38, paul.elder@ideasonboard.com\n> >     <mailto:paul.elder@ideasonboard.com> wrote:\n> >\n> >     <snip>\n> >\n> >     >> --- /dev/null\n> >     >> +++ b/test/gstreamer/meson.build\n> >     >> @@ -0,0 +1,15 @@\n> >     >> +# SPDX-License-Identifier: CC0-1.0\n> >     >> +\n> >     >> +gstreamer_tests = [\n> >     >> +    ['single_stream_test',   'gstreamer_single_stream_test.cpp'],\n> >     >> +]\n> >     >> +gstreamer_dep = dependency('gstreamer-1.0', required: true)\n> >\n> >     instead of required: true, we should depend upon whether we are built\n> >     with gstreamer_support.\n> >\n> >     I think this would do it, but please check/test.\n> >\n> >     gstreamer_dep =\n> >      dependency('gstreamer-1.0', required: get_option('gstreamer'))\n> >\n> >     And then we would want to skip all tests from being built if there\n> is no\n> >     gstreamer:\n> >\n> >\n> >     if not gstreamer_dep.found()gstallocator_dep.found()\n> >         subdir_done()\n> >     endif\n> >\n> >\n> > This is needs to be added by my patch ? or it will added sometime in\n> > future ?\n>\n> Your patch should add it.\n>\n> But Laurent's suggestion is subtly different and better.\n>\n> So you should start the meson.build by checking:\n>\n> if not gst_enabled\n>         subdir_done()\n> endif\n>\n>\n> Then your\n>\n>         gstreamer_dep = dependency('gstreamer-1.0', required: true)\n>\n> line can stay as it is, because if gst_enabled is true, you /do/ require\n> the gstreamer_dep anyway .\n>\n> So it's just Lauren'ts three lines to add to the beginning of the\n> meson.build.\n>\n>\n> --\n> Kieran\n>\n> >\n> >     I would put the dependency checking, and this subdir_done() addition\n> at\n> >     the beginning, before even listing the tests.\n> >\n> >     --\n> >     Kieran\n> >\n> >\n> >     >> +\n> >     >> +foreach t : gstreamer_tests\n> >     >> +    exe = executable(t[0], t[1],\n> >     >> +                     dependencies : [libcamera_private,\n> >     gstreamer_dep],\n> >     >> +                     link_with : test_libraries,\n> >     >> +                     include_directories :\n> test_includes_internal)\n> >     >> +\n> >     >> +    test(t[0], exe, suite : 'gstreamer', is_parallel : false)\n> >     >> +endforeach\n> >     >> diff --git a/test/meson.build b/test/meson.build\n> >     >> index 3bceb5df..d0466f17 100644\n> >     >> --- a/test/meson.build\n> >     >> +++ b/test/meson.build\n> >     >> @@ -11,6 +11,7 @@ subdir('libtest')\n> >     >>\n> >     >>  subdir('camera')\n> >     >>  subdir('controls')\n> >     >> +subdir('gstreamer')\n> >     >>  subdir('ipa')\n> >     >>  subdir('ipc')\n> >     >>  subdir('log')\n> >     >> --\n> >     >> 2.25.1\n> >     >>\n> >\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 EED73BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 11:14:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 618C26884D;\n\tTue, 10 Aug 2021 13:14:52 +0200 (CEST)","from mail-yb1-xb34.google.com (mail-yb1-xb34.google.com\n\t[IPv6:2607:f8b0:4864:20::b34])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EAD3F687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 13:14:50 +0200 (CEST)","by mail-yb1-xb34.google.com with SMTP id x192so35533668ybe.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 04:14:50 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"kSb2IePS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=T5Oi32fTvfEaayBTtjBWCXheuEckq/amJKI3xkWD21I=;\n\tb=kSb2IePSvcEJHag3rwgaNL3K0QvcCfmA3cNF/9iFWpfLn+fLGk6rxXDWWxialF/as2\n\tteqk++lAjy+nJ/hXqXO+AX/bEJJwJcWcXrzGxD44n6n2IgFKjxVzSpDPMOCOUQRTB3es\n\td3Wel8BHqhtzEsVSgmb5uq2VNZjHdeX6bNbeaeMa8wIFKSLS6cUUxv7lrJqRJ2AKnbtE\n\twsK97UgTttyhUzX22EmTOedUv+potczOlnnKjDiF/5gUDU9gmAD2dMo5hpc0dJRJXI4E\n\tF0IuQXckv4C8IWIjJTrA8mjmoJlI6fHNLU91fq2XEF1HMRbISCvOtLBQ8jN91zDx1ZM2\n\tel1A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=T5Oi32fTvfEaayBTtjBWCXheuEckq/amJKI3xkWD21I=;\n\tb=bNhmp43AOEPFTQXbRdIq9TttG7JNpbQJKAUyyzWGlyDBtoCdrMTMnQPKtsbkr3t8BY\n\tbsG2c6Bup2lLY0+LRxUVPR2ITeTF3I6JVF+AWsGtFnEFAbOgetU3yqpp/hLfVuP1r7AK\n\txulZgth73DnmSSuFYA3igBrg4+0z7dFCVsUIStjWZ8WXw+5d3MIGqVLzGG8wU+V4qJH/\n\tYFOKF1gwApJLJNIPRHLXM+x/F3NhS7JR/rgidiNjRrtQf4zHUo5DhEZapV/tSyPkw66B\n\tp5mddXGl2Qi9H0bXBe4jrP1ALNMrZ3d2l+dT4zlTiTR7UYvlFi8luDMwprB6iXxK2bKg\n\t+GZA==","X-Gm-Message-State":"AOAM532zpR8y5gpsS1yyMRupc8GXSAKYJN+69kyZTn7tDXEVOlh/lWHD\n\tAwJ1rJuJHCX1YCmgDDHhLzIj/zwCDu90LHxBDP4=","X-Google-Smtp-Source":"ABdhPJzTxy4nMnAm4jviGbCQg0Pxuqf1ykq1l8VlNDaWZdZPe3Ldwn9UOgNpEZS8RSJF8TLBcUkagFWzy5tEbgZeOGw=","X-Received":"by 2002:a25:37cf:: with SMTP id\n\te198mr16674278yba.223.1628594089809; \n\tTue, 10 Aug 2021 04:14:49 -0700 (PDT)","MIME-Version":"1.0","References":"<20210810092409.1776260-1-vedantparanjape160201@gmail.com>\n\t<20210810093807.GU2167@pyrite.rasen.tech>\n\t<91ccd051-aff9-15a6-eb3e-724f9c2b117d@ideasonboard.com>\n\t<CACGrz-NaHsHpQq7Hr_9ZCsfPsFDMHw3d3qmJcTRU99HwgFKmhQ@mail.gmail.com>\n\t<1d9e25f8-f793-afaf-5436-3797a34bda7c@ideasonboard.com>","In-Reply-To":"<1d9e25f8-f793-afaf-5436-3797a34bda7c@ideasonboard.com>","From":"Vedant Paranjape <vedantparanjape160201@gmail.com>","Date":"Tue, 10 Aug 2021 16:44:38 +0530","Message-ID":"<CACGrz-NeZNLG=P6GjnR0+ofCf-LH8Ui=Y+zaZcDNVFJbYwSpBw@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"00000000000034dafb05c9329cb6\"","Subject":"Re: [libcamera-devel] [PATCH v3] test: gstreamer: Add test for\n\tgstreamer single stream","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]