mirror of
git://f0xx.org/android_cast
synced 2026-07-29 08:57:44 +03:00
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# Android Cast — implementation roadmap
|
||
|
||
## Stream protection (FEC / NACK)
|
||
|
||
| Item | Status |
|
||
|------|--------|
|
||
| GF(256) Reed–Solomon + `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).
|