[PATCH] gst: provider: Do not hide v4l2deviceprovider

Umang Jain umang.jain at ideasonboard.com
Mon May 6 16:33:53 CEST 2024


Hi Hou Qi

On 06/05/24 7:55 am, Hou Qi wrote:
> Currently libcameraprovider hides "v4l2deviceprovider" to avoid devices
> being duplicated. When running "gst-gst-device-monitor-1.0 Video",
> device monitor probes device providers one by one and sends bus message
> to gst-device-monitor to print device information.
>
> There is one case that libcameraprovider and v4l2deviceprovider both
> exit, libcameraprovider fails to probe device while v4l2deviceprovider
> probes successfully. "gst-device-monitor Video" will show nothing as
> v4l2deviceprovider is hidden and the bus message it uses to convey
> device information is dropped.
>
> To fix this issue, not to hide v4l2deviceprovider when do
> gst_libcamera_provider_init().

I think this just circumvents the issue rather than fixing it. I would 
be more interested in knowing /why/ libcameraprovider can't probe it.

Can you explain on the use case / your case in this regards please? OR

Can you enable the debug and see if holds any clue on the problem ?

For e.g.

($) LIBCAMERA_LOG_LEVELS=0 GST_DEBUG=2 gst-device-monitor-1.0 Source/Video

Also, gst-device-monitor provides option to include hidden providers:

   -i, --include-hidden              Include devices from hidden device 
providers.



>
> Signed-off-by: Hou Qi <qi.hou at nxp.com>
> ---
>   src/gstreamer/gstlibcameraprovider.cpp | 4 ----
>   1 file changed, 4 deletions(-)
>
> diff --git a/src/gstreamer/gstlibcameraprovider.cpp b/src/gstreamer/gstlibcameraprovider.cpp
> index ce3e0a08..454e7aaa 100644
> --- a/src/gstreamer/gstlibcameraprovider.cpp
> +++ b/src/gstreamer/gstlibcameraprovider.cpp
> @@ -227,10 +227,6 @@ gst_libcamera_provider_probe(GstDeviceProvider *provider)
>   static void
>   gst_libcamera_provider_init(GstLibcameraProvider *self)
>   {
> -	GstDeviceProvider *provider = GST_DEVICE_PROVIDER(self);
> -
> -	/* Avoid devices being duplicated. */
> -	gst_device_provider_hide_provider(provider, "v4l2deviceprovider");
>   }
>   
>   static void



More information about the libcamera-devel mailing list