9 Commits

Author SHA1 Message Date
b19c2ab070 Fix: D-Bus CreateSession signature mismatch (final fix)\n\nCorrected the CreateSession call in wayland_poc.cpp to only send the options dictionary, as the xdg-desktop-portal API does not expect a parent_window argument for this method. Updated lessons_learned.md. 2025-08-14 07:47:18 +02:00
4b1d8116bd Fix: D-Bus CreateSession signature mismatch (revisited)\n\nRemoved the unexpected parent_window argument from the CreateSession call in wayland_poc.cpp, as the xdg-desktop-portal API expects only the options dictionary. Updated lessons_learned.md. 2025-08-14 07:43:30 +02:00
536e264590 Fix: D-Bus CreateSession "Missing token" error\n\nAdded a handle_token to the QVariantMap passed to the CreateSession call in wayland_poc.cpp to resolve the "Missing token" error. Updated lessons_learned.md. 2025-08-14 07:16:48 +02:00
0ccac075a4 Fix: D-Bus CreateSession signature mismatch\n\nModified the CreateSession call in wayland_poc.cpp to only send an empty QVariantMap as its argument, aligning with the expected a{sv} signature. Updated lessons_learned.md. 2025-08-14 07:16:11 +02:00
46a5aa63a1 Fix: QDBusMessage::clearArguments() method not found\n\nRemoved the call to clearArguments() as it was causing a compilation error due to its removal in Qt 5.15. Updated lessons_learned.md. 2025-08-14 07:15:06 +02:00
c0626e7232 Fix: D-Bus SelectSources signature mismatch in wayland_poc.cpp\n\nCorrected the D-Bus call flow for SelectSources by introducing a dedicated handler for CreateSession replies, ensuring proper argument passing and resolving the signature mismatch error. Updated lessons_learned.md. 2025-08-14 07:14:05 +02:00
ecc2b95670 feat: Implement Wayland screen sharing POC and related fixes 2025-08-14 06:15:31 +02:00
710918a622 feat: Refactor wayland_poc to use QDBus for xdg-desktop-portal interaction
This commit refactors the wayland_poc executable to use Qt's QDBus
module for interacting with xdg-desktop-portal. This approach bypasses
the problematic direct inclusion of PipeWire session manager headers
(e.g., session-manager.h) that were causing persistent compilation errors.

The wayland_poc now focuses solely on requesting screen capture permission
via D-Bus and retrieving the PipeWire node ID, without attempting to
create or manage PipeWire streams directly.

This change aims to provide a working foundation for the xdg-desktop-portal
interaction, which can then be integrated with the core PipeWire stream
capture logic (demonstrated by tutorial5.c).
2025-08-14 04:26:53 +02:00
cdc253bbc7 feat: Add Wayland screen capture POC using PipeWire
This commit introduces a standalone proof-of-concept (POC) for screen
capture on Wayland using PipeWire and xdg-desktop-portal.

The POC demonstrates:
- Initializing PipeWire context and core.
- Requesting screen capture permission via xdg-desktop-portal, which
  triggers a user consent dialog.
- Receiving the PipeWire node ID for the selected screen/window.
- Connecting a PipeWire stream to the capture node.
- Processing a single video frame from the PipeWire stream.
- Converting the raw frame data into a QImage and saving it as a PNG file.

This POC serves as a foundational step towards adapting the Hyperion
grabber to work natively on Wayland, replacing the existing X11-specific
grabbing logic.

Further work will involve integrating this logic into the main grabber
application and handling continuous frame processing.
2025-08-14 03:02:54 +02:00