[{"id":34411,"web_url":"https://patchwork.libcamera.org/comment/34411/","msgid":"<e2790adc-111d-4889-ae50-bffddf01066f@ideasonboard.com>","date":"2025-06-04T13:23:45","subject":"Re: [PATCH v2 7/7] gstreamer: Replace NULL with nullptr","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 06. 04. 15:07 keltezéssel, Laurent Pinchart írta:\n> Usage of NULL has slowly crept in the libcamerasrc sources. Replace it\n> with nullptr.\n\nI think we should set up clang-tidy in the CI. It has:\nhttps://clang.llvm.org/extra/clang-tidy/checks/modernize/use-nullptr.html\nand many more useful things. Unfortunately every time I run it I am faced\nwith the fact that it runs quite slowly when using a number of checks, so\nit would probably have to be limited to the changed source files.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>   src/gstreamer/gstlibcamera-controls.cpp.in |  2 +-\n>   src/gstreamer/gstlibcamerapad.cpp          |  2 +-\n>   src/gstreamer/gstlibcamerasrc.cpp          | 23 +++++++++++-----------\n>   3 files changed, 14 insertions(+), 13 deletions(-)\n> \n> diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in b/src/gstreamer/gstlibcamera-controls.cpp.in\n> index 89c530da0b4a..2a16b39a93d9 100644\n> --- a/src/gstreamer/gstlibcamera-controls.cpp.in\n> +++ b/src/gstreamer/gstlibcamera-controls.cpp.in\n> @@ -68,7 +68,7 @@ static const GEnumValue {{ ctrl.name|snake_case }}_types[] = {\n>   \t\t\"{{ enum.gst_name }}\"\n>   \t},\n>   {%- endfor %}\n> -\t{0, NULL, NULL}\n> +\t{0, nullptr, nullptr}\n>   };\n>   \n>   #define TYPE_{{ ctrl.name|snake_case|upper }} \\\n> diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp\n> index 3bc2bc87e773..81a0ef44cc6f 100644\n> --- a/src/gstreamer/gstlibcamerapad.cpp\n> +++ b/src/gstreamer/gstlibcamerapad.cpp\n> @@ -102,7 +102,7 @@ gst_libcamera_stream_role_get_type()\n>   \t\t\t\"libcamera::Viewfinder\",\n>   \t\t\t\"view-finder\",\n>   \t\t},\n> -\t\t{ 0, NULL, NULL }\n> +\t\t{ 0, nullptr, nullptr }\n>   \t};\n>   \n>   \tif (!type)\n> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> index eec8163e88e7..16b1d08b3053 100644\n> --- a/src/gstreamer/gstlibcamerasrc.cpp\n> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> @@ -367,10 +367,10 @@ int GstLibcameraSrcState::processRequest()\n>   \n>   \t\tif (video_pool) {\n>   \t\t\t/* Only set video pool when a copy is needed. */\n> -\t\t\tGstBuffer *copy = NULL;\n> +\t\t\tGstBuffer *copy = nullptr;\n>   \t\t\tconst GstVideoInfo info = gst_libcamera_pad_get_video_info(srcpad);\n>   \n> -\t\t\tret = gst_buffer_pool_acquire_buffer(video_pool, &copy, NULL);\n> +\t\t\tret = gst_buffer_pool_acquire_buffer(video_pool, &copy, nullptr);\n>   \t\t\tif (ret != GST_FLOW_OK) {\n>   \t\t\t\tgst_buffer_unref(buffer);\n>   \t\t\t\tGST_ELEMENT_ERROR(src_, RESOURCE, SETTINGS,\n> @@ -541,8 +541,8 @@ static std::tuple<GstBufferPool *, int>\n>   gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n>   \t\t\t\tGstCaps *caps, const GstVideoInfo *info)\n>   {\n> -\tg_autoptr(GstQuery) query = NULL;\n> -\tg_autoptr(GstBufferPool) pool = NULL;\n> +\tg_autoptr(GstQuery) query = nullptr;\n> +\tg_autoptr(GstBufferPool) pool = nullptr;\n>   \tconst gboolean need_pool = true;\n>   \n>   \t/*\n> @@ -554,8 +554,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n>   \n>   \tif (!gst_pad_peer_query(srcpad, query))\n>   \t\tGST_DEBUG_OBJECT(self, \"Didn't get downstream ALLOCATION hints\");\n> -\telse if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))\n> -\t\treturn { NULL, 0 };\n> +\telse if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr))\n> +\t\treturn { nullptr, 0 };\n>   \n>   \tGST_WARNING_OBJECT(self, \"Downstream doesn't support video meta, need to copy frame.\");\n>   \n> @@ -564,7 +564,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n>   \t * create a new pool.\n>   \t */\n>   \tif (gst_query_get_n_allocation_pools(query) > 0)\n> -\t\tgst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);\n> +\t\tgst_query_parse_nth_allocation_pool(query, 0, &pool, nullptr,\n> +\t\t\t\t\t\t    nullptr, nullptr);\n>   \n>   \tif (!pool) {\n>   \t\tGstStructure *config;\n> @@ -583,7 +584,7 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n>   \t\tGST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,\n>   \t\t\t\t  (\"Failed to active buffer pool\"),\n>   \t\t\t\t  (\"gst_libcamera_src_negotiate() failed.\"));\n> -\t\treturn { NULL, -EINVAL };\n> +\t\treturn { nullptr, -EINVAL };\n>   \t}\n>   \n>   \treturn { reinterpret_cast<GstBufferPool *>(g_steal_pointer(&pool)), 0 };\n> @@ -660,7 +661,7 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self)\n>   \tfor (gsize i = 0; i < state->srcpads_.size(); i++) {\n>   \t\tGstPad *srcpad = state->srcpads_[i];\n>   \t\tconst StreamConfiguration &stream_cfg = state->config_->at(i);\n> -\t\tGstBufferPool *video_pool = NULL;\n> +\t\tGstBufferPool *video_pool = nullptr;\n>   \t\tGstVideoInfo info;\n>   \n>   \t\tg_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]);\n> @@ -1065,7 +1066,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,\n>   \t\t\t\t  const gchar *name, [[maybe_unused]] const GstCaps *caps)\n>   {\n>   \tGstLibcameraSrc *self = GST_LIBCAMERA_SRC(element);\n> -\tg_autoptr(GstPad) pad = NULL;\n> +\tg_autoptr(GstPad) pad = nullptr;\n>   \n>   \tGST_DEBUG_OBJECT(self, \"new request pad created\");\n>   \n> @@ -1079,7 +1080,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,\n>   \t\tGST_ELEMENT_ERROR(element, STREAM, FAILED,\n>   \t\t\t\t  (\"Internal data stream error.\"),\n>   \t\t\t\t  (\"Could not add pad to element\"));\n> -\t\treturn NULL;\n> +\t\treturn nullptr;\n>   \t}\n>   \n>   \tgst_child_proxy_child_added(GST_CHILD_PROXY(self), G_OBJECT(pad), GST_OBJECT_NAME(pad));","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 01CBDC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  4 Jun 2025 13:23:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A6AA168DBD;\n\tWed,  4 Jun 2025 15:23: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 0D95E68DA8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  4 Jun 2025 15:23:50 +0200 (CEST)","from [192.168.33.16] (185.182.214.22.nat.pool.zt.hu\n\t[185.182.214.22])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D05A778C;\n\tWed,  4 Jun 2025 15:23:46 +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=\"lWGEt3dq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1749043427;\n\tbh=arbFYIKHPAyy44PCuP7zQF+A7YiPCbKj1W9+jWaT/2U=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=lWGEt3dqdTfMkiECH4pFJCYicWu3Fxq8aMhSY+mXtVSrc7mSZ5VquULVaG9eym66+\n\tbm/68/Yr6hiDDT07IZFA4i4FlU3IiY9xgPbhjNG2iNH996xhV/IfLgcbhHEdzbhjXx\n\tGrlpQL8fhpjJ4TNhMn7J5ljR462hnj8/rLdijNTI=","Message-ID":"<e2790adc-111d-4889-ae50-bffddf01066f@ideasonboard.com>","Date":"Wed, 4 Jun 2025 15:23:45 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 7/7] gstreamer: Replace NULL with nullptr","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Hou Qi <qi.hou@nxp.com>,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>","References":"<20250604130741.9228-1-laurent.pinchart@ideasonboard.com>\n\t<20250604130741.9228-8-laurent.pinchart@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250604130741.9228-8-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":34432,"web_url":"https://patchwork.libcamera.org/comment/34432/","msgid":"<f2629f0b2f760946cd4ab4be04b9f9ffb4c1bbfb.camel@collabora.com>","date":"2025-06-05T12:53:18","subject":"Re: [PATCH v2 7/7] gstreamer: Replace NULL with nullptr","submitter":{"id":31,"url":"https://patchwork.libcamera.org/api/people/31/","name":"Nicolas Dufresne","email":"nicolas.dufresne@collabora.com"},"content":"Le mercredi 04 juin 2025 à 15:23 +0200, Barnabás Pőcze a écrit :\n> Hi\n> \n> 2025. 06. 04. 15:07 keltezéssel, Laurent Pinchart írta:\n> > Usage of NULL has slowly crept in the libcamerasrc sources. Replace it\n> > with nullptr.\n> \n> I think we should set up clang-tidy in the CI. It has:\n> https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-nullptr.html\n> and many more useful things. Unfortunately every time I run it I am faced\n> with the fact that it runs quite slowly when using a number of checks, so\n> it would probably have to be limited to the changed source files.\n> \n> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\nReported-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\nReviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\ncheers,\nNicolas\n> \n> \n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >   src/gstreamer/gstlibcamera-controls.cpp.in |  2 +-\n> >   src/gstreamer/gstlibcamerapad.cpp          |  2 +-\n> >   src/gstreamer/gstlibcamerasrc.cpp          | 23 +++++++++++-----------\n> >   3 files changed, 14 insertions(+), 13 deletions(-)\n> > \n> > diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in b/src/gstreamer/gstlibcamera-controls.cpp.in\n> > index 89c530da0b4a..2a16b39a93d9 100644\n> > --- a/src/gstreamer/gstlibcamera-controls.cpp.in\n> > +++ b/src/gstreamer/gstlibcamera-controls.cpp.in\n> > @@ -68,7 +68,7 @@ static const GEnumValue {{ ctrl.name|snake_case }}_types[] = {\n> >   \t\t\"{{ enum.gst_name }}\"\n> >   \t},\n> >   {%- endfor %}\n> > -\t{0, NULL, NULL}\n> > +\t{0, nullptr, nullptr}\n> >   };\n> >   \n> >   #define TYPE_{{ ctrl.name|snake_case|upper }} \\\n> > diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp\n> > index 3bc2bc87e773..81a0ef44cc6f 100644\n> > --- a/src/gstreamer/gstlibcamerapad.cpp\n> > +++ b/src/gstreamer/gstlibcamerapad.cpp\n> > @@ -102,7 +102,7 @@ gst_libcamera_stream_role_get_type()\n> >   \t\t\t\"libcamera::Viewfinder\",\n> >   \t\t\t\"view-finder\",\n> >   \t\t},\n> > -\t\t{ 0, NULL, NULL }\n> > +\t\t{ 0, nullptr, nullptr }\n> >   \t};\n> >   \n> >   \tif (!type)\n> > diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> > index eec8163e88e7..16b1d08b3053 100644\n> > --- a/src/gstreamer/gstlibcamerasrc.cpp\n> > +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> > @@ -367,10 +367,10 @@ int GstLibcameraSrcState::processRequest()\n> >   \n> >   \t\tif (video_pool) {\n> >   \t\t\t/* Only set video pool when a copy is needed. */\n> > -\t\t\tGstBuffer *copy = NULL;\n> > +\t\t\tGstBuffer *copy = nullptr;\n> >   \t\t\tconst GstVideoInfo info = gst_libcamera_pad_get_video_info(srcpad);\n> >   \n> > -\t\t\tret = gst_buffer_pool_acquire_buffer(video_pool, &copy, NULL);\n> > +\t\t\tret = gst_buffer_pool_acquire_buffer(video_pool, &copy, nullptr);\n> >   \t\t\tif (ret != GST_FLOW_OK) {\n> >   \t\t\t\tgst_buffer_unref(buffer);\n> >   \t\t\t\tGST_ELEMENT_ERROR(src_, RESOURCE, SETTINGS,\n> > @@ -541,8 +541,8 @@ static std::tuple<GstBufferPool *, int>\n> >   gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n> >   \t\t\t\tGstCaps *caps, const GstVideoInfo *info)\n> >   {\n> > -\tg_autoptr(GstQuery) query = NULL;\n> > -\tg_autoptr(GstBufferPool) pool = NULL;\n> > +\tg_autoptr(GstQuery) query = nullptr;\n> > +\tg_autoptr(GstBufferPool) pool = nullptr;\n> >   \tconst gboolean need_pool = true;\n> >   \n> >   \t/*\n> > @@ -554,8 +554,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n> >   \n> >   \tif (!gst_pad_peer_query(srcpad, query))\n> >   \t\tGST_DEBUG_OBJECT(self, \"Didn't get downstream ALLOCATION hints\");\n> > -\telse if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))\n> > -\t\treturn { NULL, 0 };\n> > +\telse if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr))\n> > +\t\treturn { nullptr, 0 };\n> >   \n> >   \tGST_WARNING_OBJECT(self, \"Downstream doesn't support video meta, need to copy frame.\");\n> >   \n> > @@ -564,7 +564,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n> >   \t * create a new pool.\n> >   \t */\n> >   \tif (gst_query_get_n_allocation_pools(query) > 0)\n> > -\t\tgst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);\n> > +\t\tgst_query_parse_nth_allocation_pool(query, 0, &pool, nullptr,\n> > +\t\t\t\t\t\t    nullptr, nullptr);\n> >   \n> >   \tif (!pool) {\n> >   \t\tGstStructure *config;\n> > @@ -583,7 +584,7 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,\n> >   \t\tGST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,\n> >   \t\t\t\t  (\"Failed to active buffer pool\"),\n> >   \t\t\t\t  (\"gst_libcamera_src_negotiate() failed.\"));\n> > -\t\treturn { NULL, -EINVAL };\n> > +\t\treturn { nullptr, -EINVAL };\n> >   \t}\n> >   \n> >   \treturn { reinterpret_cast<GstBufferPool *>(g_steal_pointer(&pool)), 0 };\n> > @@ -660,7 +661,7 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self)\n> >   \tfor (gsize i = 0; i < state->srcpads_.size(); i++) {\n> >   \t\tGstPad *srcpad = state->srcpads_[i];\n> >   \t\tconst StreamConfiguration &stream_cfg = state->config_->at(i);\n> > -\t\tGstBufferPool *video_pool = NULL;\n> > +\t\tGstBufferPool *video_pool = nullptr;\n> >   \t\tGstVideoInfo info;\n> >   \n> >   \t\tg_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]);\n> > @@ -1065,7 +1066,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,\n> >   \t\t\t\t  const gchar *name, [[maybe_unused]] const GstCaps *caps)\n> >   {\n> >   \tGstLibcameraSrc *self = GST_LIBCAMERA_SRC(element);\n> > -\tg_autoptr(GstPad) pad = NULL;\n> > +\tg_autoptr(GstPad) pad = nullptr;\n> >   \n> >   \tGST_DEBUG_OBJECT(self, \"new request pad created\");\n> >   \n> > @@ -1079,7 +1080,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,\n> >   \t\tGST_ELEMENT_ERROR(element, STREAM, FAILED,\n> >   \t\t\t\t  (\"Internal data stream error.\"),\n> >   \t\t\t\t  (\"Could not add pad to element\"));\n> > -\t\treturn NULL;\n> > +\t\treturn nullptr;\n> >   \t}\n> >   \n> >   \tgst_child_proxy_child_added(GST_CHILD_PROXY(self), G_OBJECT(pad), GST_OBJECT_NAME(pad));","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 D733AC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Jun 2025 12:53:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6100568DBD;\n\tThu,  5 Jun 2025 14:53:22 +0200 (CEST)","from bali.collaboradmins.com (bali.collaboradmins.com\n\t[148.251.105.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D211868D96\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Jun 2025 14:53:20 +0200 (CEST)","from [IPv6:2606:6d00:10:5285::5ac] (unknown\n\t[IPv6:2606:6d00:10:5285::5ac])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (4096 bits)\n\tserver-digest SHA256)\n\t(No client certificate requested) (Authenticated sender: nicolas)\n\tby bali.collaboradmins.com (Postfix) with ESMTPSA id 88DBA17E02B0;\n\tThu,  5 Jun 2025 14:53:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=collabora.com header.i=@collabora.com\n\theader.b=\"lKoaac2s\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com;\n\ts=mail; t=1749128000;\n\tbh=crqS0XAHrUOf3CfUqbdDRbPTN8G9fo/Fb2KeSlmN108=;\n\th=Subject:From:To:Cc:Date:In-Reply-To:References:From;\n\tb=lKoaac2sDezLXvAcCJ9Wg0suvN38rNxRLNa25FIs8wv5l6wUIJ+pqd8H7kyWhTqAB\n\t8qH+Ir0yeXlTPdjAEenGUyRrTBQ3+rJF5bMYRS537NDM9+CxKb84Jvas6OgPmq5P9s\n\tchrCfA9SFaAtS09WsfAdPq+IP0vp8usIP9f5q2A9S/C31zUyrmJa6UG4ktNqNFqkho\n\tYN9gIkixtoUCPoiIWEN6rDR921zL3JaPqbtwMec3QjJaDjZP9zyhFWhJOATzqCvgrC\n\trJYnOTztdfbLaPl79qf1eH/42s24PubZSit1ojfW3q8SkAOwOWmELqROvLTCq4HlAW\n\t8av39pI7qUGPA==","Message-ID":"<f2629f0b2f760946cd4ab4be04b9f9ffb4c1bbfb.camel@collabora.com>","Subject":"Re: [PATCH v2 7/7] gstreamer: Replace NULL with nullptr","From":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org","Cc":"Hou Qi <qi.hou@nxp.com>","Date":"Thu, 05 Jun 2025 08:53:18 -0400","In-Reply-To":"<e2790adc-111d-4889-ae50-bffddf01066f@ideasonboard.com>","References":"<20250604130741.9228-1-laurent.pinchart@ideasonboard.com>\n\t<20250604130741.9228-8-laurent.pinchart@ideasonboard.com>\n\t<e2790adc-111d-4889-ae50-bffddf01066f@ideasonboard.com>","Organization":"Collabora Canada","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.56.2 (3.56.2-1.fc42) ","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>"}}]