Skip to content

Conversation

@zortos293
Copy link
Owner

@zortos293 zortos293 commented Jan 5, 2026

Todo's

Implementations

zortos293 and others added 25 commits January 5, 2026 00:40
- Added functionality to fetch server mapping and queue data from PrintedWaste API.
- Defined data structures for server mapping and queue data, including custom deserialization.
- Implemented methods to fetch server mapping and queue data asynchronously.
- Created a combined server info structure for displaying queue information.
- Added utility functions for formatting ETA, calculating server scores, and sorting servers by various criteria.
- Included error handling for API responses and data parsing.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Implemented region filtering for queue servers.
- Added sorting options based on best value, queue time, ping, and alphabetical order.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This was linked to issues Jan 5, 2026
zortos293 and others added 22 commits January 6, 2026 11:10
Audio:
- Fix glitchy audio on multi-channel devices (e.g., 7.1 headsets)
- Add proper channel upmixing from stereo (2ch) to device channels (up
  to 8ch)
- Track input/output channels separately in AudioResampler
- Map stereo to surround: FL/FR direct, center mixed, rear/side at
  reduced levels
- Update resampler to handle both sample rate conversion and channel
  upmixing

Rendering:
- Fix render FPS running at double the decode rate (296fps instead of
  120fps)
- Remove duplicate request_redraw() call from RedrawRequested handler
- Let about_to_wait handle frame pacing based on decoder output
- Render rate now properly synchronized to decode rate
- Added Queue Times tab for viewing server queue information
- Integrated PrintedWaste API for fetching queue data and server mapping
- Added caching for queue server data
- Added sorting/filtering options for queue times display
- Added server selection modal for launching games with specific servers

Resolves conflicts with Native branch formatting and structure.
Updated Raspberry Pi support status and codec information.
@zortos293 zortos293 marked this pull request as ready for review January 6, 2026 17:18
Copilot AI review requested due to automatic review settings January 6, 2026 17:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements significant performance improvements and stability enhancements for the OpenNOW streamer, focusing on video decoding and cross-platform compatibility. The main goal is to improve performance by using native platform-specific decoders instead of relying solely on FFmpeg, and to enhance stability through better error handling and state management.

Key changes:

  • Removes AV1 codec support to simplify the codebase and focus on H.264/H.265
  • Implements native D3D11 Video API decoder for Windows (bypassing FFmpeg limitations)
  • Adds Vulkan Video decoder for modern Linux systems (Intel Arc, NVIDIA RTX, AMD RDNA2+)
  • Adds GStreamer V4L2 decoder for Raspberry Pi and embedded devices

Reviewed changes

Copilot reviewed 29 out of 33 changed files in this pull request and generated no comments.

Show a summary per file
File Description
opennow-streamer/src/webrtc/sdp.rs Removes AV1 codec handling, applies code formatting
opennow-streamer/src/webrtc/mod.rs Removes AV1 depacketizer, updates to use UnifiedVideoDecoder
opennow-streamer/src/media/vulkan_video.rs New Vulkan Video decoder for Linux (567 lines)
opennow-streamer/src/media/videotoolbox.rs Adds legacy macOS support flag, formatting improvements
opennow-streamer/src/media/video.rs Major refactoring: adds UnifiedVideoDecoder, removes AV1, adds transfer function support
opennow-streamer/src/media/vaapi.rs New VAAPI zero-copy support for Linux (601 lines)
opennow-streamer/src/media/v4l2.rs New V4L2 decoder support for Raspberry Pi (363 lines)
opennow-streamer/src/media/native_video.rs New native DXVA decoder wrapper for Windows (305 lines)
opennow-streamer/src/media/mod.rs Reorganizes exports, adds new decoder modules
opennow-streamer/src/media/hevc_parser.rs New HEVC NAL unit parser for native DXVA (1014 lines)
opennow-streamer/src/media/gstreamer_decoder.rs New GStreamer decoder for Linux (350 lines)
opennow-streamer/src/media/d3d11.rs Adds P010 HDR support, GPU sync improvements
opennow-streamer/src/media/audio.rs Improves resampling (Catmull-Rom spline), adds channel upmixing
opennow-streamer/src/input/windows.rs Fixes window class registration, improves cleanup
opennow-streamer/src/gui/image_cache.rs Adds image resizing for performance
opennow-streamer/src/app/types.rs Adds queue times tab, sort/filter modes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@zortos293 zortos293 changed the title [WIP] V0.2.2 Performance Improvements + Stability V0.2.2 Performance Improvements + Stability Jan 6, 2026
@zortos293 zortos293 merged commit 3c6b232 into main Jan 6, 2026
6 checks passed
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.

High CPU% after open Mouse movement stutters/skips

3 participants