Skip to content

android: add in-app high-resolution AirPods mic stream - #723

Draft
IvanChanPing wants to merge 1 commit into
librepods-org:mainfrom
IvanChanPing:feature/android-hires-mic-720
Draft

android: add in-app high-resolution AirPods mic stream#723
IvanChanPing wants to merge 1 commit into
librepods-org:mainfrom
IvanChanPing:feature/android-hires-mic-720

Conversation

@IvanChanPing

@IvanChanPing IvanChanPing commented Aug 11, 2026

Copy link
Copy Markdown

Summary

  • routes AACP 0x58 microphone SDUs without blocking control traffic
  • parses bounded AAC-ELD access units and decodes them with Android MediaCodec
  • exposes off-main, app-scoped PCM through the bound AirPods service
  • sends the verified start/stop control packets, restores conversational-awareness state, and cleans up on disconnect
  • expands the socket buffer to 4096 bytes and excludes audio packets from broadcasts, notification refreshes, and packet logs

This implements the no-root, in-app transport/decoder portion of #720. It does not claim to publish a system microphone for other apps.

Verification

  • ANDROID_HOME=/opt/android-sdk ./gradlew :app:testFossDebugUnitTest
  • parser tests cover multiple access units, truncated tails, non-audio subtype, and short packets
  • compile/unit-test verified only; real AirPods and on-device AAC-ELD decode remain unverified

Also implements the Android AACP-microphone slice identified in #713.

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