Conversation
CXR-M 1.2.2 ships 16 KB-aligned native libraries (1.0.4 is 4 KB- aligned), which downstream Play-distributed apps need for the targetSdk 35+ 16 KB page-size requirement -- verified at both the AAR and the packaged-APK level (PT_LOAD p_align=0x4000 for every CXR lib). API adaptations per the 1.2.2 surface: AudioStreamListener's widened onStartAudioStream/onAudioStream signatures (new stream-id metadata logged), the new abstract onAudioStreamFinish wired to the mic session's end-of-stream, openAudioRecord moved to the 4-arg overload (mode=1, denoiseMode=2 -- denoiseMode taken from the decompiled 3-arg delegation; centralized as compat constants pending hardware re-validation), and diagnostic-only implementations for the new onInActiveConnected and onP2pDeviceAvailable callbacks. The dependabot ignore for com.rokid.cxr:client-m is removed. Verified: compile matrix, publishToMavenLocal, and a rokid-only generated app, all green. Real-glasses smoke (capture/display/mic with the new audio params) is required before merge.
Per adversarial review of the CXR-M 1.2.2 migration: audio callbacks now correlate against the stream id recorded at onStartAudioStream (unexpected ids get rate-limited warnings instead of silently acting on or dropping them -- a vendor-side pipe restart can no longer truncate a session invisibly); onInActiveConnected warns explicitly that the adapter does not resolve connect from it (breadcrumb for the hardware smoke), and the cached-reconnect fallback rethrows CancellationException so a connect timeout is no longer misreported as a stale-cache failure; stop() regains its atomic entry gate so double stop cannot double-close the vendor recorder; the ambiguous modeOrChannels parameter is documented with its evidence; null/invalid audio frames are counted and rate-limit-warned (device-even pattern).
Collaborator
Author
|
Adversarial review round complete — 2 HIGH + 3 MEDIUM findings all fixed in the follow-up commit (stream-id correlation gating, CancellationException rethrow in the cached-reconnect fallback, restored atomic stop gate, parameter-evidence docs, dropped-frame counters). Hardware-smoke checklist for un-drafting (adds the review's two items to the audio semantics check):
|
Chikati
added a commit
that referenced
this pull request
Jul 7, 2026
…sion catalog Pure refactor; no version number changes. New catalog entries: appcompat, exifinterface, gson, tink-android, adblib, junit4, and the androidx.test trio, now consumed by six device modules and core-android. build-logic is wired to the root catalog via dependencyResolutionManagement so its AGP/KGP/vanniktech classpath deps can no longer drift from the catalog when Dependabot bumps it. Intentionally left alone: the Rokid CXR-M coordinate (migrated separately by the hardware-gated PR #66), versionless kotlin-test deps (aligned by the Kotlin plugin), and the synthetic Flutter AAR coordinates in device-frame-embedded.
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.
Migrates the Rokid adapter to CXR-M 1.2.2, primarily for the 16 KB native-library alignment that Play-distributed consumer apps need (targetSdk 35+ requirement since 2025-11) — verified at the AAR and packaged-APK level (
PT_LOAD p_align=0x4000).Adapts the enumerated 1.2.2 breaking surface (audio listener signatures +
onAudioStreamFinish→ mic end-of-stream,openAudioRecord4-arg overload with researchedmode/denoiseModecompat values, two new diagnostic-only callbacks). Compile matrix, publishToMavenLocal, and a--devices rokidgenerated app are green.Draft until a Rokid hardware smoke confirms: audio capture semantics under
mode=1, denoiseMode=2(16 kHz mono as before),onAudioStreamFinishtiming, and the inactive-connect flow. ~15 minutes with real glasses — see #63.🤖 Generated with Claude Code