- New wzp-android crate with Oboe C++ backend, lock-free SPSC ring buffers, engine orchestrator, codec pipeline, and Android Gradle project structure - AEC (NLMS adaptive filter), AGC (two-stage with fast attack/slow release), windowed-sinc FIR resampler replacing linear interpolation (wzp-codec) - Opus encoder tuning: complexity 7 default, set_expected_loss support - Mobile jitter buffer: asymmetric EMA (fast up/slow down), handoff spike detection with 2s cooldown, configurable safety margin - Network-aware quality control: cellular-specific thresholds, faster downgrade on cellular, proactive tier drop on WiFi→cellular handoff, FEC ratio boost during network transitions - Handoff detection in PathMonitor via RTT jitter spike analysis Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
28 lines
584 B
C++
28 lines
584 B
C++
// Stub implementation for non-Android host builds (testing, cargo check, etc.)
|
|
|
|
#include "oboe_bridge.h"
|
|
#include <stdio.h>
|
|
|
|
int wzp_oboe_start(const WzpOboeConfig* config, const WzpOboeRings* rings) {
|
|
(void)config;
|
|
(void)rings;
|
|
fprintf(stderr, "wzp_oboe_start: stub (not on Android)\n");
|
|
return 0;
|
|
}
|
|
|
|
void wzp_oboe_stop(void) {
|
|
fprintf(stderr, "wzp_oboe_stop: stub (not on Android)\n");
|
|
}
|
|
|
|
float wzp_oboe_capture_latency_ms(void) {
|
|
return 0.0f;
|
|
}
|
|
|
|
float wzp_oboe_playout_latency_ms(void) {
|
|
return 0.0f;
|
|
}
|
|
|
|
int wzp_oboe_is_running(void) {
|
|
return 0;
|
|
}
|