Skip to content

android: Add SBC codec for UV-Pro audio - #110

Merged
punk-kaos merged 1 commit into
JS8Call-improved:masterfrom
doodlecomms:uvpro-1-sbc-codec
Oct 17, 2026
Merged

punk-kaos merged 1 commit into
JS8Call-improved:masterfrom
doodlecomms:uvpro-1-sbc-codec

Conversation

@doodlecomms

Copy link
Copy Markdown
Contributor

Part 1 of 3 for #62 (BTECH UV-Pro support). Base: e4c39bd.

Claude Code (Claude Opus 5.5) wrote this under my direction. I didn't write it and haven't reviewed it line by line, but I went through every change with Claude, I can explain what each part does, and I did all the hardware testing myself.

What
The UV-Pro sends its Bluetooth audio as SBC. Android doesn't let apps use its own SBC codec, so this adds a mono-only encoder and decoder in one file, with unit tests. Nothing uses it until PR 3.

License
Ported from HTCommander's SBC code (Apache-2.0, © Ylian Saint-Hilaire). The original notice is kept in the file header. Happy to add a third-party notice file if you'd like one.

Test
./gradlew :app:testDebugUnitTest passes, with no new warnings.
I cross-checked it against ffmpeg's SBC in both directions: 63–66 dB SNR.
Used on air in PR 3.

The BTECH UV-Pro carries its audio over Bluetooth as 32 kHz mono SBC,
and Android has no public SBC codec. Add a mono 8-subband encoder and
decoder, ported from HTCommander's Apache-2.0 SBC code (which follows
libsbc), with unit tests. Not used yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@punk-kaos
punk-kaos merged commit f8ef6ac into JS8Call-improved:master Oct 17, 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