1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 05:37:52 +03:00

short libvpx try

This commit is contained in:
Anton Afanasyeu
2026-05-18 14:25:02 +02:00
parent 9b1afec032
commit 7a07d6de1e
33 changed files with 1400 additions and 58 deletions

31
docs/ROADMAP.md Normal file
View File

@@ -0,0 +1,31 @@
# Android Cast — implementation roadmap
## Stream protection (FEC / NACK)
| Item | Status |
|------|--------|
| GF(256) ReedSolomon + `ProtectionEnvelope` v1 (monolithic) | Done |
| **v2 per-shard FEC** (`FecShardWire`, one ACUD message per RS shard) | Done |
| NACK + `RetransmitCache` + `MSG_NACK` | Done |
| Post-handshake negotiation | Done |
| Backward compat (defer FEC until negotiated; ignore foreign FEC/NACK) | Done |
| Default protection **NONE** (stable cast) | Done |
| Integration tests (`FecShard*`, `UdpCastTransportFecTest`) | Done |
| Lab soak under loss (HY300 / BL6000) | TODO (manual) |
| NACK rate limit / backoff | Done (`NackRateLimiter`) |
| `MSG_FEC_NACK` by groupId (optional) | Deferred |
Enable in **Settings → Stream protection (UDP)** on both sender and receiver, then reconnect.
## libvpx / Opus / Speex
| Item | Status |
|------|--------|
| `libandroidcast_codecs.so` + JNI probes | Done |
| Cross-compile `libvpx.a` (`scripts/build-native-codecs.sh`) | Script ready (needs submodule + NDK build) |
| JNI encode in `libvpx_bridge.c` | Done (when `ANDROIDCAST_LIBVPX_LIB` set) |
| `LibvpxVideoEncoderSink` (buffer / calibration path) | Done |
| libvpx decoder on receiver | TODO |
| Opus / Speex build + sinks | TODO |
See [ndk/README.md](../ndk/README.md).