openipc-core
Shared protocol code for openipc-rs.
This crate contains the parts of the OpenIPC receive path that do not need to know whether bytes came from native USB, WebUSB, a capture file, or a test fixture. It is the right dependency when you want to parse or reconstruct OpenIPC video without taking a dependency on a specific USB frontend.
What It Does
- Parse Realtek rtl88xx USB RX aggregates and 24-byte RX descriptors.
- Filter OpenIPC/WFB 802.11 frames by channel id and radio port.
- Handle WFB session packets, data decryption, and FEC recovery.
- Parse RTP and depacketize H.264/H.265 into Annex-B access units.
- Build adaptive-link feedback payloads and WFB uplink packets.
- Build Realtek USB TX descriptors for monitor-injection frames.
Basic Receive Shape
use ;
use RxPacketType;
The returned frame data is still encoded video. Feed it to WebCodecs, a native decoder, a file writer, or an RTP/Annex-B bridge depending on your application.
Crate Boundaries
openipc-core intentionally has no USB device ownership. Pair it with:
openipc-rtl88xxfor native or WebUSB Realtek adapter IO.openipc-nativefor a CLI-style native receive loop.openipc-webor@openipc-rs/webfor browser/WASM applications.
Status
The protocol pipeline has unit tests for parser, crypto, FEC, RTP, and uplink helpers. Live radio behavior still depends on the USB driver and adapter validation in higher-level crates.