Skip to content

Improve Windows mirroring reliability, latency and window controls - #2

Open
phoenixray2000 wants to merge 4 commits into
donerfolk:mainfrom
phoenixray2000:fix/windows-discovery-video-integrity
Open

phoenixray2000 wants to merge 4 commits into
donerfolk:mainfrom
phoenixray2000:fix/windows-discovery-video-integrity

Conversation

@phoenixray2000

@phoenixray2000 phoenixray2000 commented Nov 3, 2026 •

Copy link
Copy Markdown

On Windows hosts with VPN or Hyper-V/WSL adapters, discovery can advertise an address the iPhone cannot reach. Bursts of compressed video can also damage reference-dependent pictures or leave playback behind audio. This PR fixes those paths and adds native-resolution window controls, portrait-aware full-screen display, and a way to stop the current mirroring session from the receiver.

Changes

  • Select an active, multicast-capable physical Ethernet or Wi-Fi interface and use its preferred IPv4 address consistently for discovery and multicast membership.
  • Use nonblocking reads with the existing partial-header/payload receive loop. Keep the compressed H.264 queue bounded with backpressure, and copy only the visible region of hardware-decoded textures.
  • Separate video decoding from presentation. Follow the audio playback clock and skip overdue decoded frames. Add saved streaming-quality presets, with 1080p at 30 FPS as the default.
  • Add a Size submenu for 0.5x, 1x, 1.5x and 2x the reported source resolution, with Ctrl+1 through Ctrl+4. Account for the window frame so the picture area has the requested pixel dimensions.
  • Save Fixed Ratio and Auto Rotate Window preferences. Constrain manual resizing to the source proportions, using the initial drag rectangle throughout the gesture. Update the restored window size when orientation changes during full screen.
  • Fit portrait full-screen video to the display height while preserving the complete picture. Restrict the Fill screen option to landscape video and update the scaling mode when the source rotates.
  • Add Stop mirroring immediately above Exit. Close the active session, clear audio/video, and restart the listener on the same advertised port while keeping discovery available.
  • Add window-sizing regression cases to CTest and retain the MSVC forced-include quoting fix.

Validation

  • Windows Release builds passed with MSVC 19.29 and Windows SDK 10.0.19041 for both the complete local checkout and an isolated source snapshot containing exactly the proposed commits.
  • A full GitHub Actions run on the exact PR head, 5bf9698, passed in the fork: Build. Release build, CTest, installer packaging and artifact upload all succeeded; the AirScreen-installer artifact is available on that run.
  • GUI and device-level behavior remains subject to manual validation. The upstream PR workflow has not started any jobs and remains action_required; a maintainer with write access must approve the fork workflow.
  • Earlier native discovery/socket checks and D3D11 replay/readback checks verified physical-interface discovery, complete final frames under burst input, bounded backpressure, and shutdown during partial receive.
  • Manual iPhone testing confirmed the original discovery and video-integrity fixes.

@phoenixray2000 phoenixray2000 changed the title Fix Windows discovery and mirrored video integrity Improve Windows mirroring reliability, latency and window controls Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant