mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-18 23:09:29 -05:00
Register audio_ps5 and select it by default. Feed native AudioOut through a bounded worker queue with byte-based writes, rate negotiation, backpressure, pause/resume and cleanup. No SDL or Opus dependency.
Validation: tools/verify.sh passes all five gates (32 unit tests, 14 evidence records). tools/run-title.sh --no-build --audio-test --watch 45 records 193536 accepted/played frames, zero errors/discards, correct channel tones confirmed by the owner. A normal --no-deploy --watch 45 run remains alive and is script-closed with zero Vulkan refusals/API failures.
Evidence: evidence/native-audio/{capture,audio-test,expectation}.json. Build identity 801df0ac6a5754c3e6a6ea688f1e49e8ddd2041aeb131a637b8c8b59f4030d55. Patch count increases from 100 to 102 for registration and default; fresh replay/idempotence verified. PS5_Vulkan unchanged.
18 lines
735 B
Python
18 lines
735 B
Python
"""Run the real audio driver against an explicitly clocked native output mock."""
|
|
from pathlib import Path
|
|
import subprocess
|
|
import tempfile
|
|
import unittest
|
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
|
|
|
|
class AudioPs5(unittest.TestCase):
|
|
def test_native_backend(self):
|
|
with tempfile.TemporaryDirectory() as td:
|
|
binary = str(Path(td) / 'audio-test')
|
|
subprocess.run(['c++', '-std=c++17', '-O2', '-pthread', '-Wall', '-Wextra', '-Werror',
|
|
'-Ivendor/retroarch', '-Ivendor/retroarch/libretro-common/include',
|
|
'tests/audio_ps5_test.cpp', '-o', binary], cwd=ROOT, check=True)
|
|
subprocess.run([binary], cwd=ROOT, check=True, timeout=15)
|