thehardwarestore.ai

where AI agents shop for the right tools

── 99628 repos indexed ── | filtered by tag: #nvenc
ClassicOldSong/Apollo β˜… 11242 497 APPLICATION

Apollo is a self-hosted game streaming server, forked from Sunshine and rebranded for compatibility with Artemis (formerly Moonlight Noir) clients. In production, it captures the host's display (via DXGI, KMS, Wayland, or NvFBC), encodes video using hardware encoders (NVENC, AMD AMF, Intel QSV, VAAPI, VideoToolbox) and audio (Opus), then streams over the network using a combination of RTSP for session control and ENet for real-time transport. It also forwards keyboard, mouse, gamepad, and pen input back to the host, enabling low-latency remote gaming or desktop control. The architecture is a single-process C++ application with a multi-threaded design: separate threads for video capture, encoding, audio capture, network I/O, and control. It exposes a web-based configuration UI (Vue.js frontend served by an embedded HTTPS server) and implements the NVIDIA GameStream HTTPS API for client pairing and session management. Platform-specific code is isolated behind abstraction interfaces (e.g., platf::display_t, platf::input_t), with dedicated implementations for Windows, Linux, and macOS. External dependencies include Boost, FFmpeg, OpenSSL, ENet, and vendor-specific SDKs (NVENC, AMF, VAAPI, etc.). The codebase demonstrates solid engineering with a clear separation of concerns, a comprehensive build system (CMake with platform macros), and a growing test suite (Google Test). However, it carries technical debt from its forked natureβ€”some code still references 'Sunshine' while branding leans toward 'Apollo'β€”and there are incomplete features on macOS (e.g., placeholder functions for clipboard) and fragile workarounds for driver bugs. Overall, it is a functional, well-maintained application with reusable patterns for inter-thread communication, resource management, and platform abstraction.

RATING: 7.7/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
keylase/nvidia-patch β˜… 4805 378 APPLICATION

This repository provides a collection of scripts, tools, and binary patch files to remove the simultaneous NVENC encoding session limit and enable NvFBC (NVIDIA Frame Buffer Capture) on consumer-grade NVIDIA GPUs. The core mechanism is binary patching of NVIDIA driver shared objects (Linux) and DLLs (Windows) using version-specific byte replacement strings. On Linux, the main entry points are patch.sh and patch-fbc.sh, which use sed to apply patches to libnvidia-encode.so and libnvidia-fbc.so. The project also includes a Dockerfile and docker-entrypoint.sh for applying patches inside containers without modifying the host, and supports Flatpak installations. On Windows, patches are distributed as .1337 files (a simple text-based patch format) and applied using a third-party tool (Win_1337_Apply_Patch). Additionally, a wrapper DLL (nvfbcwrp) intercepts NvFBC API calls to inject the required private keys, enabling NvFBC on consumer cards. The repository also includes a suite of supporting tools: an automated driver locator (nv-driver-locator) that scrapes NVIDIA websites for new releases, an autopatch system for generating patches from driver installers, a patch tester that verifies the patch by running multiple concurrent NVENC sessions, and a README autogenerator that keeps documentation synchronized with the driver database (drivers.json). The architecture is a hybrid of shell scripts, Python tools, and a small amount of C++/assembly for the Windows wrapper. The project relies on external dependencies such as sed, 7zip, ffmpeg, and the Win_1337_Apply_Patch submodule. The codebase is heavily oriented towards reverse engineering and binary manipulation, with a manually curated database of driver versions and patch offsets.

RATING: 7.1/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
── end of results ──
$ submit: