Skip to content

Fix authenticated HTTP proxy audio playback - #214

Merged
lullabyX merged 66 commits into
lullabyX:masterfrom
ChilliGeologist:fix/gstreamer-proxy-auth
Sep 14, 2026
Merged

lullabyX merged 66 commits into
lullabyX:masterfrom
ChilliGeologist:fix/gstreamer-proxy-auth

Conversation

@ChilliGeologist

Copy link
Copy Markdown

Summary

Fixes audio playback through authenticated HTTP proxies.

SONE's existing proxy settings were already applied to the TIDAL API client, but GStreamer audio sources were not using those settings. In particular, souphttpsrc failed to deliver TIDAL media fragments through an authenticated Squid proxy despite successful proxy negotiation.

This change:

  • prefers curlhttpsrc for audio playback when an HTTP proxy is enabled
  • applies SONE's proxy host, port, username, and password directly to curlhttpsrc
  • configures HTTP sources created both directly by uridecodebin and internally by adaptive demuxers such as DASH
  • applies changed proxy settings to newly-created audio sources without restarting SONE
  • leaves already-active/buffered playback undisturbed when proxy settings are changed
  • restores the original curlhttpsrc factory rank when the HTTP proxy is disabled

Credentials are passed via proxy-id / proxy-pw rather than embedding them in a process-wide proxy environment variable.

Testing

Tested on Linux with an authenticated Squid HTTP proxy.

Verified:

  • TIDAL API proxy connection succeeds
  • LOSSLESS / HI_RES DASH playback works through the authenticated proxy
  • direct playback works without a local proxy workaround
  • proxy settings can be changed without restarting SONE
  • existing buffered playback continues when proxy settings are changed
  • curlhttpsrc is available in the SONE Flatpak runtime
  • cargo check passes
  • cargo test passes: 151 passed, 0 failed

Also reproduced the underlying behaviour independently:

  • souphttpsrc returned a zero-byte media response through the authenticated proxy path
  • the same TIDAL fragment downloaded successfully with curlhttpsrc

Jesse North and others added 30 commits September 15, 2026 00:49
@lullabyX
lullabyX force-pushed the fix/gstreamer-proxy-auth branch from 161aa20 to 8543e80 Compare September 14, 2026 18:53
@lullabyX
lullabyX merged commit 1e79f83 into lullabyX:master Sep 14, 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.

2 participants