feat(VideoManager): add HTTP MJPEG video source - #14730
Conversation
cc522a8 to
536a1d7
Compare
536a1d7 to
ad69015
Compare
Build ResultsPlatform Status
All builds passed. Pre-commit
Pre-commit hooks: 0 passed, 0 failed, 0 skipped. Test Resultslinux-coverage-integration: 37 passed, 0 skipped Code CoverageCoverage: 69.4% No baseline available for comparison Artifact Sizes
Updated: 2026-07-31 02:52:43 UTC • Commit: af1201e • Triggered by: Windows |
Codecov Report❌ Patch coverage is ❌ Your patch check has failed because the patch coverage (12.24%) is below the target coverage (30.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #14730 +/- ##
==========================================
+ Coverage 25.47% 32.63% +7.16%
==========================================
Files 769 784 +15
Lines 65912 67686 +1774
Branches 30495 31376 +881
==========================================
+ Hits 16788 22092 +5304
+ Misses 37285 30679 -6606
- Partials 11839 14915 +3076
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 469 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
@HTRamsey, this focused HTTP MJPEG source is ready for review. Exact head |
e9303ae to
2cc2389
Compare
Description
QGroundControl supports RTP, RTSP, and MPEG transports, but not the multipart MJPEG feeds exposed by many cameras and small video servers.
This adds a generic HTTP MJPEG Video Stream source:
http://andhttps://URLs in Video settings;souphttpsrc ! multipartdemux ! jpegparseinto QGC's existing decode/display receiver;The endpoint must return
multipart/x-mixed-replacewith JPEG parts. Web pages, single-image URLs, arbitrary HTTP video files, request-header authentication, and recording-policy changes are out of scope.This branch carries #14727 and #14729 as independently reviewable prerequisites. After those prerequisites, the HTTP transport slice is 15 files with 415 additions and 18 deletions. The Windows software-frame fallback from #14728 is now in master.
Type of Change
Testing
An integrated candidate containing this transport was manually exercised on Linux, Windows, and Android. The camera-free GStreamer test starts a local HTTP server, sends a real multipart JPEG response, and requires frame delivery through
appsink. Additional tests cover source properties, plugin packaging, malformed or unsafe URLs, TLS policy, and diagnostic handling.Exact PR head:
af1201e83ffce288ba2a4ea3bd900ce818d41725.Exact-head QGC CI is complete: Linux x64/arm64 release builds, unit and integration tests, ASan/UBSan, coverage thresholds, Windows, macOS, iOS, Android, Docker, custom-plugin, and CodeQL checks passed. Linux evidence: run 30598322052.
Platforms Tested
Flight Stacks Tested
Not applicable; this change is confined to video reception.
Screenshots
Not applicable; the UI addition uses the existing Video settings layout.
Checklist
Related Issues
By submitting this pull request, I confirm that my contribution is made under the terms of the project's dual license (Apache 2.0 and GPL v3).