howdy icon indicating copy to clipboard operation
howdy copied to clipboard

Add Intel IPU6 and libcamera support via GStreamer integration

Open bilalobe opened this issue 5 months ago • 1 comments

Add GStreamer Integration for Modern Camera Support (Intel IPU6, libcamera)

🎯 Problem Solved

Modern laptops with Intel IPU6 cameras are incompatible with Howdy because they rely on the libcamera stack and don't provide stable V4L2 devices for OpenCV. This locks out a growing number of users with newer hardware.

✨ Solution

This PR introduces optional GStreamer integration that allows Howdy to work with any camera supported by GStreamer/libcamera:

  • On-demand camera activation: Camera only turns on during authentication (no always-on indicator light)
  • Subprocess management: GStreamer pipeline is launched and terminated by Howdy automatically
  • Graceful fallback: Disabled by default, zero impact on existing users
  • Comprehensive error handling: Clear error messages guide users through setup

🔧 How It Works

  1. User enables use_gstreamer = true in config
  2. User provides a GStreamer pipeline command that outputs to v4l2loopback
  3. During authentication, Howdy launches the pipeline as a subprocess
  4. After authentication, pipeline is automatically terminated
  5. Camera light only stays on during the brief authentication window

🧪 Testing

Tested extensively on:

  • Intel IPU6 cameras (Tiger Lake, Alder Lake laptops)
  • openSUSE with libcamera stack
  • Complete test suite included (test_gstreamer.py)

📚 Documentation

Comprehensive setup guide included in GSTREAMER_INTEGRATION.md covering:

  • Prerequisites and package installation
  • v4l2loopback configuration
  • Troubleshooting common issues
  • Example configurations

🔄 Backward Compatibility

  • Zero breaking changes: Feature is disabled by default
  • Safe defaults: Empty pipeline configuration prevents accidental activation
  • Clear documentation: Existing config options unchanged

🎉 Impact

Enables Howdy compatibility with modern laptop cameras, expanding hardware support significantly without affecting existing users.

bilalobe avatar Jul 17 '25 16:07 bilalobe

Hello,

first off, a big Thank You @bilalobe for your effort.

This functionality is very much needed, and will only be more necessary going forward. I have several Microsoft Surface tablets and laptops and would love to have this working.

@boltgolt - did you have a chance to take a look at this PR?

Thanks, Andrej

afalout avatar Aug 19 '25 06:08 afalout