Skip to content

Add optional AC-3 and E-AC-3 5.1 output - #592

Open
BuffMcBigHuge wants to merge 1 commit into
ClassicOldSong:moonlight-noirfrom
BuffMcBigHuge:feature/dolby-5.1-output
Open

Add optional AC-3 and E-AC-3 5.1 output#592
BuffMcBigHuge wants to merge 1 commit into
ClassicOldSong:moonlight-noirfrom
BuffMcBigHuge:feature/dolby-5.1-output

Conversation

@BuffMcBigHuge

Copy link
Copy Markdown

Summary

  • Adds opt-in AC-3 and E-AC-3 5.1 output modes while leaving PCM as the default.
  • Probes the current Android audio route in automatic modes; force modes cover incomplete platform capability reporting.
  • Encodes decoded 5.1 PCM on a bounded audio-priority worker and falls back one-way to the existing PCM renderer on initialization, route, encode, queue, or write failure.
  • Vendors minimal LGPL FFmpeg n7.1.1 prebuilts for all four Artemis ABIs with a pinned, reproducible build script.
  • Adds focused tests and runtime diagnostics without changing Sunshine, the GameStream protocol, or moonlight-common-c.

Motivation

Some Android TV and HDMI setups only deliver stereo or silence from multichannel PCM. Encoded Dolby output gives receivers another compatible 5.1 transport. Related to #22 and #283.

Testing

  • :app:assembleNonRoot_gameDebug passed for armeabi-v7a, arm64-v8a, x86, and x86_64.
  • :app:assembleNonRoot_gameRelease -x :app:lintVitalNonRoot_gameRelease passed for all four ABIs. The skipped gate contains 12 pre-existing values-ru extra-translation errors.
  • Focused encoded-audio unit tests: 9/9 passed.
  • Full unit suite: 55/60 passed. The five existing layout/theme, startup-context, and profile-navigation failures are unchanged from the branch baseline.
  • Feature code has no Android lint errors. Repository-wide lint remains blocked by 26 pre-existing errors.
  • git diff --check passed.
  • The FFmpeg build was reproduced for every ABI and verified as LGPL-only with both ff_ac3_fixed_encoder and ff_eac3_encoder present.
  • AC-3 transport was exercised successfully on a Sony A9G / HT-A3000 setup during development: 375/375 complete 1,792-byte access units were accepted.
  • No Android target was connected during this final review, so no new on-device route/session test was run.

Notes

PCM remains the default, and every encoded option is marked experimental. AC-3 was stable in target testing. E-AC-3 produced 5.1 output, but the target setup previously showed brief intermittent dips. No dip-time trace was captured, so this PR does not include a speculative buffering change.

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.

1 participant