Skip to content

Add WebRTC stream support (WHEP signaling) - #359

Open
bhjelstrom wants to merge 25 commits into
Gold872:mainfrom
bhjelstrom:whep
Open

Add WebRTC stream support (WHEP signaling)#359
bhjelstrom wants to merge 25 commits into
Gold872:mainfrom
bhjelstrom:whep

Conversation

@bhjelstrom

@bhjelstrom bhjelstrom commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
  • Adds whepcontroller
  • Works across platforms including web
  • Publisher determines stream type priority. The first stream type in the list is the "priority" stream type in automatic mode.
  • Users can force a connection to particular stream in the camera stream widget properties window.
  • Add stream type display name to the bottom of the camera stream widget
  • The formatting does not perfectly match just yet.
image

In-motion, medium detail image:
image

Hidden max-quality mode in LLOS:
image

@github-actions github-actions Bot added GUI Changes to Elastic's UI dependencies Changes to Elastic's dependencies labels Apr 17, 2026
@codecov

codecov Bot commented Apr 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 48.73096% with 202 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.55%. Comparing base (4fb4bbd) to head (c082312).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
lib/widgets/whep.dart 36.22% 125 Missing ⚠️
.../widgets/nt_widgets/multi_topic/camera_stream.dart 47.28% 68 Missing ⚠️
lib/widgets/camera_stream_controller.dart 91.07% 5 Missing ⚠️
lib/widgets/mjpeg.dart 69.23% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #359      +/-   ##
==========================================
- Coverage   78.61%   77.55%   -1.07%     
==========================================
  Files          95       97       +2     
  Lines        9587     9891     +304     
==========================================
+ Hits         7537     7671     +134     
- Misses       2050     2220     +170     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Gold872

Gold872 commented Apr 19, 2026

Copy link
Copy Markdown
Owner

Wow! Thanks for getting this working!

Is there currently anyway I can test this out myself locally?

As for the implementation, I would definitely want to clean up the WhepController part, in particular, superclass a generic CameraStreamController which MjpegController and WhepController implement so that way a lot of the connection/disconnection logic can be re-used between stream types. If you want to try restructuring this feel free to, but you've already done a huge amount of the heavy lifting for this.

@bhjelstrom

Copy link
Copy Markdown
Contributor Author

Nice, I see you have implemented the changes you wanted to see. I'll send a camera for local testing. Thanks again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Changes to Elastic's dependencies GUI Changes to Elastic's UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants