[v2,7/7] gstreamer: Replace NULL with nullptr
diff mbox series

Message ID 20250604130741.9228-8-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • gstreamer: Miscellaneous cleanups + two fixes
Related show

Commit Message

Laurent Pinchart June 4, 2025, 1:07 p.m. UTC
Usage of NULL has slowly crept in the libcamerasrc sources. Replace it
with nullptr.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/gstreamer/gstlibcamera-controls.cpp.in |  2 +-
 src/gstreamer/gstlibcamerapad.cpp          |  2 +-
 src/gstreamer/gstlibcamerasrc.cpp          | 23 +++++++++++-----------
 3 files changed, 14 insertions(+), 13 deletions(-)

Comments

Barnabás Pőcze June 4, 2025, 1:23 p.m. UTC | #1
Hi

2025. 06. 04. 15:07 keltezéssel, Laurent Pinchart írta:
> Usage of NULL has slowly crept in the libcamerasrc sources. Replace it
> with nullptr.

I think we should set up clang-tidy in the CI. It has:
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-nullptr.html
and many more useful things. Unfortunately every time I run it I am faced
with the fact that it runs quite slowly when using a number of checks, so
it would probably have to be limited to the changed source files.

Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>


> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>   src/gstreamer/gstlibcamera-controls.cpp.in |  2 +-
>   src/gstreamer/gstlibcamerapad.cpp          |  2 +-
>   src/gstreamer/gstlibcamerasrc.cpp          | 23 +++++++++++-----------
>   3 files changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in b/src/gstreamer/gstlibcamera-controls.cpp.in
> index 89c530da0b4a..2a16b39a93d9 100644
> --- a/src/gstreamer/gstlibcamera-controls.cpp.in
> +++ b/src/gstreamer/gstlibcamera-controls.cpp.in
> @@ -68,7 +68,7 @@ static const GEnumValue {{ ctrl.name|snake_case }}_types[] = {
>   		"{{ enum.gst_name }}"
>   	},
>   {%- endfor %}
> -	{0, NULL, NULL}
> +	{0, nullptr, nullptr}
>   };
>   
>   #define TYPE_{{ ctrl.name|snake_case|upper }} \
> diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
> index 3bc2bc87e773..81a0ef44cc6f 100644
> --- a/src/gstreamer/gstlibcamerapad.cpp
> +++ b/src/gstreamer/gstlibcamerapad.cpp
> @@ -102,7 +102,7 @@ gst_libcamera_stream_role_get_type()
>   			"libcamera::Viewfinder",
>   			"view-finder",
>   		},
> -		{ 0, NULL, NULL }
> +		{ 0, nullptr, nullptr }
>   	};
>   
>   	if (!type)
> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
> index eec8163e88e7..16b1d08b3053 100644
> --- a/src/gstreamer/gstlibcamerasrc.cpp
> +++ b/src/gstreamer/gstlibcamerasrc.cpp
> @@ -367,10 +367,10 @@ int GstLibcameraSrcState::processRequest()
>   
>   		if (video_pool) {
>   			/* Only set video pool when a copy is needed. */
> -			GstBuffer *copy = NULL;
> +			GstBuffer *copy = nullptr;
>   			const GstVideoInfo info = gst_libcamera_pad_get_video_info(srcpad);
>   
> -			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, NULL);
> +			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, nullptr);
>   			if (ret != GST_FLOW_OK) {
>   				gst_buffer_unref(buffer);
>   				GST_ELEMENT_ERROR(src_, RESOURCE, SETTINGS,
> @@ -541,8 +541,8 @@ static std::tuple<GstBufferPool *, int>
>   gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
>   				GstCaps *caps, const GstVideoInfo *info)
>   {
> -	g_autoptr(GstQuery) query = NULL;
> -	g_autoptr(GstBufferPool) pool = NULL;
> +	g_autoptr(GstQuery) query = nullptr;
> +	g_autoptr(GstBufferPool) pool = nullptr;
>   	const gboolean need_pool = true;
>   
>   	/*
> @@ -554,8 +554,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
>   
>   	if (!gst_pad_peer_query(srcpad, query))
>   		GST_DEBUG_OBJECT(self, "Didn't get downstream ALLOCATION hints");
> -	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))
> -		return { NULL, 0 };
> +	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr))
> +		return { nullptr, 0 };
>   
>   	GST_WARNING_OBJECT(self, "Downstream doesn't support video meta, need to copy frame.");
>   
> @@ -564,7 +564,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
>   	 * create a new pool.
>   	 */
>   	if (gst_query_get_n_allocation_pools(query) > 0)
> -		gst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);
> +		gst_query_parse_nth_allocation_pool(query, 0, &pool, nullptr,
> +						    nullptr, nullptr);
>   
>   	if (!pool) {
>   		GstStructure *config;
> @@ -583,7 +584,7 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
>   		GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
>   				  ("Failed to active buffer pool"),
>   				  ("gst_libcamera_src_negotiate() failed."));
> -		return { NULL, -EINVAL };
> +		return { nullptr, -EINVAL };
>   	}
>   
>   	return { reinterpret_cast<GstBufferPool *>(g_steal_pointer(&pool)), 0 };
> @@ -660,7 +661,7 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self)
>   	for (gsize i = 0; i < state->srcpads_.size(); i++) {
>   		GstPad *srcpad = state->srcpads_[i];
>   		const StreamConfiguration &stream_cfg = state->config_->at(i);
> -		GstBufferPool *video_pool = NULL;
> +		GstBufferPool *video_pool = nullptr;
>   		GstVideoInfo info;
>   
>   		g_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]);
> @@ -1065,7 +1066,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
>   				  const gchar *name, [[maybe_unused]] const GstCaps *caps)
>   {
>   	GstLibcameraSrc *self = GST_LIBCAMERA_SRC(element);
> -	g_autoptr(GstPad) pad = NULL;
> +	g_autoptr(GstPad) pad = nullptr;
>   
>   	GST_DEBUG_OBJECT(self, "new request pad created");
>   
> @@ -1079,7 +1080,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
>   		GST_ELEMENT_ERROR(element, STREAM, FAILED,
>   				  ("Internal data stream error."),
>   				  ("Could not add pad to element"));
> -		return NULL;
> +		return nullptr;
>   	}
>   
>   	gst_child_proxy_child_added(GST_CHILD_PROXY(self), G_OBJECT(pad), GST_OBJECT_NAME(pad));
Nicolas Dufresne June 5, 2025, 12:53 p.m. UTC | #2
Le mercredi 04 juin 2025 à 15:23 +0200, Barnabás Pőcze a écrit :
> Hi
> 
> 2025. 06. 04. 15:07 keltezéssel, Laurent Pinchart írta:
> > Usage of NULL has slowly crept in the libcamerasrc sources. Replace it
> > with nullptr.
> 
> I think we should set up clang-tidy in the CI. It has:
> https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-nullptr.html
> and many more useful things. Unfortunately every time I run it I am faced
> with the fact that it runs quite slowly when using a number of checks, so
> it would probably have to be limited to the changed source files.
> 
> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>

Reported-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>

cheers,
Nicolas
> 
> 
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >   src/gstreamer/gstlibcamera-controls.cpp.in |  2 +-
> >   src/gstreamer/gstlibcamerapad.cpp          |  2 +-
> >   src/gstreamer/gstlibcamerasrc.cpp          | 23 +++++++++++-----------
> >   3 files changed, 14 insertions(+), 13 deletions(-)
> > 
> > diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in b/src/gstreamer/gstlibcamera-controls.cpp.in
> > index 89c530da0b4a..2a16b39a93d9 100644
> > --- a/src/gstreamer/gstlibcamera-controls.cpp.in
> > +++ b/src/gstreamer/gstlibcamera-controls.cpp.in
> > @@ -68,7 +68,7 @@ static const GEnumValue {{ ctrl.name|snake_case }}_types[] = {
> >   		"{{ enum.gst_name }}"
> >   	},
> >   {%- endfor %}
> > -	{0, NULL, NULL}
> > +	{0, nullptr, nullptr}
> >   };
> >   
> >   #define TYPE_{{ ctrl.name|snake_case|upper }} \
> > diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
> > index 3bc2bc87e773..81a0ef44cc6f 100644
> > --- a/src/gstreamer/gstlibcamerapad.cpp
> > +++ b/src/gstreamer/gstlibcamerapad.cpp
> > @@ -102,7 +102,7 @@ gst_libcamera_stream_role_get_type()
> >   			"libcamera::Viewfinder",
> >   			"view-finder",
> >   		},
> > -		{ 0, NULL, NULL }
> > +		{ 0, nullptr, nullptr }
> >   	};
> >   
> >   	if (!type)
> > diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
> > index eec8163e88e7..16b1d08b3053 100644
> > --- a/src/gstreamer/gstlibcamerasrc.cpp
> > +++ b/src/gstreamer/gstlibcamerasrc.cpp
> > @@ -367,10 +367,10 @@ int GstLibcameraSrcState::processRequest()
> >   
> >   		if (video_pool) {
> >   			/* Only set video pool when a copy is needed. */
> > -			GstBuffer *copy = NULL;
> > +			GstBuffer *copy = nullptr;
> >   			const GstVideoInfo info = gst_libcamera_pad_get_video_info(srcpad);
> >   
> > -			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, NULL);
> > +			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, nullptr);
> >   			if (ret != GST_FLOW_OK) {
> >   				gst_buffer_unref(buffer);
> >   				GST_ELEMENT_ERROR(src_, RESOURCE, SETTINGS,
> > @@ -541,8 +541,8 @@ static std::tuple<GstBufferPool *, int>
> >   gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
> >   				GstCaps *caps, const GstVideoInfo *info)
> >   {
> > -	g_autoptr(GstQuery) query = NULL;
> > -	g_autoptr(GstBufferPool) pool = NULL;
> > +	g_autoptr(GstQuery) query = nullptr;
> > +	g_autoptr(GstBufferPool) pool = nullptr;
> >   	const gboolean need_pool = true;
> >   
> >   	/*
> > @@ -554,8 +554,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
> >   
> >   	if (!gst_pad_peer_query(srcpad, query))
> >   		GST_DEBUG_OBJECT(self, "Didn't get downstream ALLOCATION hints");
> > -	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))
> > -		return { NULL, 0 };
> > +	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr))
> > +		return { nullptr, 0 };
> >   
> >   	GST_WARNING_OBJECT(self, "Downstream doesn't support video meta, need to copy frame.");
> >   
> > @@ -564,7 +564,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
> >   	 * create a new pool.
> >   	 */
> >   	if (gst_query_get_n_allocation_pools(query) > 0)
> > -		gst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);
> > +		gst_query_parse_nth_allocation_pool(query, 0, &pool, nullptr,
> > +						    nullptr, nullptr);
> >   
> >   	if (!pool) {
> >   		GstStructure *config;
> > @@ -583,7 +584,7 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
> >   		GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
> >   				  ("Failed to active buffer pool"),
> >   				  ("gst_libcamera_src_negotiate() failed."));
> > -		return { NULL, -EINVAL };
> > +		return { nullptr, -EINVAL };
> >   	}
> >   
> >   	return { reinterpret_cast<GstBufferPool *>(g_steal_pointer(&pool)), 0 };
> > @@ -660,7 +661,7 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self)
> >   	for (gsize i = 0; i < state->srcpads_.size(); i++) {
> >   		GstPad *srcpad = state->srcpads_[i];
> >   		const StreamConfiguration &stream_cfg = state->config_->at(i);
> > -		GstBufferPool *video_pool = NULL;
> > +		GstBufferPool *video_pool = nullptr;
> >   		GstVideoInfo info;
> >   
> >   		g_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]);
> > @@ -1065,7 +1066,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
> >   				  const gchar *name, [[maybe_unused]] const GstCaps *caps)
> >   {
> >   	GstLibcameraSrc *self = GST_LIBCAMERA_SRC(element);
> > -	g_autoptr(GstPad) pad = NULL;
> > +	g_autoptr(GstPad) pad = nullptr;
> >   
> >   	GST_DEBUG_OBJECT(self, "new request pad created");
> >   
> > @@ -1079,7 +1080,7 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
> >   		GST_ELEMENT_ERROR(element, STREAM, FAILED,
> >   				  ("Internal data stream error."),
> >   				  ("Could not add pad to element"));
> > -		return NULL;
> > +		return nullptr;
> >   	}
> >   
> >   	gst_child_proxy_child_added(GST_CHILD_PROXY(self), G_OBJECT(pad), GST_OBJECT_NAME(pad));

Patch
diff mbox series

diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in b/src/gstreamer/gstlibcamera-controls.cpp.in
index 89c530da0b4a..2a16b39a93d9 100644
--- a/src/gstreamer/gstlibcamera-controls.cpp.in
+++ b/src/gstreamer/gstlibcamera-controls.cpp.in
@@ -68,7 +68,7 @@  static const GEnumValue {{ ctrl.name|snake_case }}_types[] = {
 		"{{ enum.gst_name }}"
 	},
 {%- endfor %}
-	{0, NULL, NULL}
+	{0, nullptr, nullptr}
 };
 
 #define TYPE_{{ ctrl.name|snake_case|upper }} \
diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
index 3bc2bc87e773..81a0ef44cc6f 100644
--- a/src/gstreamer/gstlibcamerapad.cpp
+++ b/src/gstreamer/gstlibcamerapad.cpp
@@ -102,7 +102,7 @@  gst_libcamera_stream_role_get_type()
 			"libcamera::Viewfinder",
 			"view-finder",
 		},
-		{ 0, NULL, NULL }
+		{ 0, nullptr, nullptr }
 	};
 
 	if (!type)
diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index eec8163e88e7..16b1d08b3053 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -367,10 +367,10 @@  int GstLibcameraSrcState::processRequest()
 
 		if (video_pool) {
 			/* Only set video pool when a copy is needed. */
-			GstBuffer *copy = NULL;
+			GstBuffer *copy = nullptr;
 			const GstVideoInfo info = gst_libcamera_pad_get_video_info(srcpad);
 
-			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, NULL);
+			ret = gst_buffer_pool_acquire_buffer(video_pool, &copy, nullptr);
 			if (ret != GST_FLOW_OK) {
 				gst_buffer_unref(buffer);
 				GST_ELEMENT_ERROR(src_, RESOURCE, SETTINGS,
@@ -541,8 +541,8 @@  static std::tuple<GstBufferPool *, int>
 gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
 				GstCaps *caps, const GstVideoInfo *info)
 {
-	g_autoptr(GstQuery) query = NULL;
-	g_autoptr(GstBufferPool) pool = NULL;
+	g_autoptr(GstQuery) query = nullptr;
+	g_autoptr(GstBufferPool) pool = nullptr;
 	const gboolean need_pool = true;
 
 	/*
@@ -554,8 +554,8 @@  gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
 
 	if (!gst_pad_peer_query(srcpad, query))
 		GST_DEBUG_OBJECT(self, "Didn't get downstream ALLOCATION hints");
-	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))
-		return { NULL, 0 };
+	else if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr))
+		return { nullptr, 0 };
 
 	GST_WARNING_OBJECT(self, "Downstream doesn't support video meta, need to copy frame.");
 
@@ -564,7 +564,8 @@  gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
 	 * create a new pool.
 	 */
 	if (gst_query_get_n_allocation_pools(query) > 0)
-		gst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);
+		gst_query_parse_nth_allocation_pool(query, 0, &pool, nullptr,
+						    nullptr, nullptr);
 
 	if (!pool) {
 		GstStructure *config;
@@ -583,7 +584,7 @@  gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
 		GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
 				  ("Failed to active buffer pool"),
 				  ("gst_libcamera_src_negotiate() failed."));
-		return { NULL, -EINVAL };
+		return { nullptr, -EINVAL };
 	}
 
 	return { reinterpret_cast<GstBufferPool *>(g_steal_pointer(&pool)), 0 };
@@ -660,7 +661,7 @@  gst_libcamera_src_negotiate(GstLibcameraSrc *self)
 	for (gsize i = 0; i < state->srcpads_.size(); i++) {
 		GstPad *srcpad = state->srcpads_[i];
 		const StreamConfiguration &stream_cfg = state->config_->at(i);
-		GstBufferPool *video_pool = NULL;
+		GstBufferPool *video_pool = nullptr;
 		GstVideoInfo info;
 
 		g_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]);
@@ -1065,7 +1066,7 @@  gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
 				  const gchar *name, [[maybe_unused]] const GstCaps *caps)
 {
 	GstLibcameraSrc *self = GST_LIBCAMERA_SRC(element);
-	g_autoptr(GstPad) pad = NULL;
+	g_autoptr(GstPad) pad = nullptr;
 
 	GST_DEBUG_OBJECT(self, "new request pad created");
 
@@ -1079,7 +1080,7 @@  gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ,
 		GST_ELEMENT_ERROR(element, STREAM, FAILED,
 				  ("Internal data stream error."),
 				  ("Could not add pad to element"));
-		return NULL;
+		return nullptr;
 	}
 
 	gst_child_proxy_child_added(GST_CHILD_PROXY(self), G_OBJECT(pad), GST_OBJECT_NAME(pad));