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.