query/set parameters/controls from GST pipeline

Joel Winarske joel.winarske at gmail.com
Tue Mar 5 18:27:24 CET 2024


Hi Kieran,

> I see this commit referenced from Umang Jain's slide deck:
> > https://gitlab.collabora.com/nicolas/libcamera/-/commit/83d67744
>
> I think we're still waiting for something like that to get posted.
>
> Ideally based on some autogeneration from the control definitions yaml
> file perhaps.
>

I can assist with building a cpp tool that transforms
src/libcamera/control_ids.yaml into src/gstreamer/gstlibcamera-controls*.


> > I'm looking at Pipewire use cases.
>
> I'm not sure if that helps Pipewire though as I think PW uses the
> libcamera API directly?
>
> Pipewire could probably be more suited to reporting controls through a
> more introspection type handling and expose those based on their type
> and information in the ControlInfo that it can identify at runtime?
>

Consider this pipeline:

    gst-launch-1.0 libcamerasrc ! 'video/x-raw,width=640,height=360' !
queue leaky=downstream max-size-buffers=3 max-size-bytes=0 max-size-time=0
! pipewiresink stream-properties="p,node.description=camera_out,node.name=camera_out"
mode=provide sync=false

* It represents an input node on a PipeWire Helvum graph.
* It's a standalone process.
* Control for this pipeline should cover libcamerasrc
(setup/controls/properties) and the pipeline itself, allowing runtime
adjustments.

The gaps I'm interested in are:
* passing parameters back to libcamerasrc to properly configure
libcamerasrc from a GST pipeline instance.
* iterate get/set libcamerasrc properties at runtime from the same code
that controls the GST pipeline instance.
* Enabling some form of node control directly in Helvum.
https://gitlab.freedesktop.org/pipewire/helvum

Cheers,
Joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20240305/e53c9b5f/attachment.htm>


More information about the libcamera-devel mailing list