1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 07:39:15 +03:00
Files
android_cast/docs/ROADMAP.md
Anton Afanasyeu bbf64d30b9 libvpx integration
2026-05-18 17:05:47 +02:00

1.3 KiB
Raw Blame History

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) 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.