Fix ffmpeg HTTPS streaming on Mac/Linux; keep Windows on Schannel#583
Merged
Conversation
PR #541 bumped the vcpkg submodule past upstream commit b94ab47c99 ("[ffmpeg] Remove deprecated securetransport"), which silently dropped the implicit --enable-securetransport on macOS/iOS. The Apr 16 rebuild produced libavformat.a with no TLS backend (no ff_openssl, ff_securetransport, or ff_gnutls symbols), breaking the Player::PlayDreamNow uncached-streaming path with: FFmpeg warning: https or dtls protocol not found Failed to open URL https://... Enable the openssl feature for ffmpeg on !windows (Mac reads /etc/ssl/cert.pem, Linux reads the distro bundle; OpenSSL 3.6.1 is already linked for libcurl since 823d072). Leave Windows on the portfile's default --enable-schannel, which reads the Windows cert store natively; vcpkg's curl[ssl] port already defaults to sspi on Windows for the same reason. Also document the runtime log path (/Users/Shared/infinidream.ai/Logs/) in AGENTS.md. Related: #556 will eventually supersede this by removing ffmpeg's TLS dependency entirely (use libcurl for all network). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
opensslfeature on!windowsplatforms. Mac uses Apple's/etc/ssl/cert.pem(Keychain-backed), Linux uses the distro CA bundle. OpenSSL 3.6.1 is already linked into the Mac/Linux builds for libcurl (since 823d072), so no new dependencies.--enable-schannel, which reads the Windows cert store natively — matching whatvcpkg's curl[ssl]already does on Windows.Background
PR #541 bumped the vcpkg submodule past upstream commit
b94ab47c99("[ffmpeg] Remove deprecated securetransport"), which removed the implicit--enable-securetransporton macOS/iOS. The Apr 16 rebuild producedlibavformat.awith no TLS backend at all — noff_openssl,ff_securetransport, orff_gnutlssymbols — which broke the uncached streaming path inPlayer::PlayDreamNowwith:Only reached in a
Nextkeypress where the next dream isn't pre-cached. Shipped in 0.14.9 and 0.14.10 (Windows-only prereleases — neither the public Mac app nor the Linux port has shipped yet).This is a tactical fix. #556 will eventually supersede it by removing ffmpeg's network stack entirely and routing all HTTPS through libcurl.
Test plan
libavformat.a(nm ... | grep ff_openssl).play_dreamWebSocket against an uncached UUID openedhttps://edream-worker-alpha.infinidream.ai/…successfully, VideoToolbox HW decode engaged, playback started cleanly. Log at 13:13:47 onward in today's run.vcpkg installshould rebuild ffmpeg with--enable-schannel(noopensslfeature in the Windows branch). Confirm exported symbols (noff_openssl_*, Schannel linkage present) and an HTTPS stream end-to-end.🤖 Generated with Claude Code