Repository navigation
feat(linux): Linux desktop support — Part 4/6: Audio, video, and media sessions - #42
Merged
Merged
Conversation
…uts, network & BLE (Part 2) Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
…-monitor parser Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
…ode for watched PIDs Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
…rdings (Part 4) Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
Owner
|
Thanks for opening this. Our notes from testing are all in one place on #38 (comment), with a section for this part; I checked them against
Happy to look again whenever you push. |
… D-Bus, and packaging Applies the Part 2 review improvements and fixes from upstream/linux-review-fixes (b346bfe, 47e3e06, 6291b51, a815275, 0be2ddf, 20c70f3, ccb9318): - USB ADB: retry another local TCP port only when adb reports a port bind failure (47e3e06) - Linux platform layer: native D-Bus/Netlink/Qt integrations for clipboard, tray, notifications (6291b51), single-instance activation token, BlueZ/NetworkManager, Wake-on-LAN, BLE beacon, and clean SIGTERM/SIGINT/SIGHUP shutdown (ccb9318) - Shell & Doctor: remove Windows settings links/explorer.exe shims (20c70f3) and provide plain Linux Doctor readiness checks and wording with German and Chinese translations (a815275) - Release workflow & packaging: pin AppImage tools with SHA-256 verification and smoke-test every Linux package (.deb, AppImage, tarball) with --version (0be2ddf) Many thanks to @thtbee for the thorough review and reference implementation on linux-review-fixes! Co-authored-by: Bee <302257494+thtbee@users.noreply.github.com> Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
…and window capture Merges updated linux-2-basics and applies the Part 3 review improvements from upstream/linux-review-fixes (b346bfe, 7bc9b2b, a815275): - Keyboard layout resolution (7bc9b2b): add desktop/app/src/linux/keymap.rs using libxkbcommon / libxkbcommon-x11 to resolve keysyms and keycodes against the user's active X11 or Wayland keyboard layout for text typing and shortcuts - Input injection & window capture (b346bfe): native XTest/uinput/RemoteDesktop portal input handling and X11/Portal window capture improvements - DeckPage QML & i18n (a815275): use Linux shortcut labels (Super+D, Screenshot, Super) with German and Chinese translations Many thanks to @thtbee for the collaborative review and reference implementation on linux-review-fixes! Co-authored-by: Bee <302257494+thtbee@users.noreply.github.com> Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
… portal, and OpenH264 ABI Applies the Part 4 review improvements and fixes from upstream/linux-review-fixes (b346bfe, c41f185, 20c70f3): - Wayland ScreenCast portal: open the portal's PipeWire remote connection via OpenPipeWireRemote and pass it as fd 3 to gst-launch-1.0 pipewiresrc, with session restore_token persistence (c41f185) - Media & audio: PipeWire/PulseAudio speaker monitor capture, MPRIS D-Bus client & server, FFmpeg 8 libavcodec compatibility, v4l2loopback virtual camera, and virtual microphone - OpenH264 ABI compatibility: auto-detect 40-byte (Debian/Ubuntu libopenh264.so.7 2.4.1) vs 56-byte (upstream 2.3+ r_psnr) SLayerBSInfo layout at runtime and install libopenh264-dev in Linux CI Many thanks to @thtbee for the thorough review and reference implementation on linux-review-fixes! Co-authored-by: Bee <302257494+thtbee@users.noreply.github.com> Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
Contributor
Author
|
Updated with |
Signed-off-by: Jochen Kirstätter <7329802+jochenkirstaetter@users.noreply.github.com>
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part 4 of 6 for Linux desktop support (stacked on #41 /
linux-3-inputand #38 /linux-2-basics).Adds Linux audio capture/render, media session (MPRIS) integration, screen capture, hardware/software H.264 video pipeline, MP4 muxer, and virtual camera (
v4l2loopback) support:desktop/app/src/linux/audio.rs,voice.rs):pw-cat/parec/pacat) PCM audio capture and playback workers with automatic backend selection and fallback.desktop/app/src/linux/media_sessions.rs,smtc.rs):zbus) MPRIS (org.mpris.MediaPlayer2.Player) discovery, metadata polling, and transport controls (Play,Pause,Next,Previous,Seek), withplayerctlCLI fallback so the 2s polling loop does not fork subprocesses.org.mpris.MediaPlayer2.nectarlink) exported overzbuson/org/mpris/MediaPlayer2withPropertiesChangedemission alongsidempris-state.json.desktop/app/src/linux/video.rs,screen_capture.rs,mp4_muxer.rs,vcam.rs):ffmpeg/gstreamerH.264 decoder/encoder and MP4 muxer backends.v4l2loopbackvirtual camera frame output (desktop/app/src/linux/vcam.rsanddesktop/vcam/).Verification
cargo fmt --all --checkcargo xtask strings --checkcargo clippy --locked -p nectarlink-desktop -p nectarlink-vcam -p s1-qt-rust --all-targets -- -D warningscargo test --locked -p nectarlink-desktop -p nectarlink-vcam(302 + 6 unit tests pass)