How to control exposure and gain using GStreamer

Hi,
I’m trying to control the exposure time and analogue gain of the Raspberry Pi camera using GStreamer with the libcamerasrc element.

When I tried checking the element properties, I got the below
auto-focus-mode : AfModeManual / AfModeAuto / AfModeContinuous
camera-name : Select camera

Version GStreamer 1.22.0

However, I don’t see any properties for: exposure-time, exposure-mode, analogue-gain, ae-mode (auto exposure). How do I set these controls to reduce motion blur on image capture using gstreamer pipeline.
//Current pipeline for streaming
std::string pipeline = "libcamerasrc ! " + std::string(m_caps) + " ! " + m_clockOverlay +
“queue name=q1 ! videoconvert ! jpegenc quality=80 ! multifilesink max-files=1 location=” + m_tmpFramePath;

Hi Sowmiya,

The set of properties exposed by libcamerasrc can depend on how libcamera was built and installed on your system. For example, when using a distribution-packaged version (such as apt install gstreamer1.0-libcamera), the set of exposed properties may differ from a version built directly from source.

In my case, I initially saw only properties such as auto-focus-mode and camera-name when using the packaged version.

After following the official Getting Started guide (Getting Started — libcamera) and building libcamera from source:

git clone https://git.libcamera.org/libcamera/libcamera.git
cd libcamera
meson setup build
ninja -C build install

The libcamerasrc element exposed the full set of sensor controls, including exposure-time, analogue-gain, ae-enable, etc.

You can verify what your current build exposes with:

gst-inspect-1.0 libcamerasrc

If those controls are not listed, it means they are not exposed by your current plugin build. In that case, you may want to compare it with a version built from the upstream source.

I hope this helps! If it still doesn’t work after building from source, feel free to share a bit more about your setup (libcamera version, how it was installed, and which camera you’re using), and we can take a closer look.