mirror of
git://f0xx.org/android_cast
synced 2026-07-29 06:58:51 +03:00
1.3 KiB
1.3 KiB
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) |
Done |
JNI encode/decode in libvpx_bridge.c |
Done (when libvpx.a linked per ABI) |
LibvpxVideoEncoderSink (surface + buffer) |
Done |
libvpx decoder on receiver (LibvpxCapableVideoDecoder) |
Done |
| Surface → libvpx without MediaCodec passthrough on cast | Done (ImageReader) |
| Opus / Speex build + sinks | TODO |
See ndk/README.md.