Crate videostream

Crate videostream 

Source
Expand description

VideoStream Library for Rust

Safe Rust bindings for the VideoStream Library, providing zero-copy video frame management and distribution across processes and containers.

The VideoStream Library enables efficient frame sharing through DMA buffers or shared-memory with signaling over UNIX Domain Sockets, optimized for edge AI and computer vision applications on resource-constrained embedded devices.

§Quick Start

§Publishing Frames (Host)

use videostream::host::Host;
use videostream::frame::Frame;

let host = Host::new("/tmp/video.sock")?;
let frame = Frame::new(1920, 1080, 1920 * 2, "YUYV")?;
frame.alloc(None)?;
// Register and publish frame to clients

§Subscribing to Frames (Client)

use videostream::client::Client;
use videostream::frame::Frame;

let client = Client::new("/tmp/video.sock", true)?;
let frame = Frame::wait(&client, 1000)?;
// Process the frame here
println!("Received frame: {}x{}", frame.width()?, frame.height()?);

§Features

  • Zero-copy frame sharing across process boundaries
  • DMA buffer support for hardware-accelerated access
  • Hardware video encoding/decoding (H.264, H.265)
  • V4L2 camera capture integration
  • Multi-subscriber support (one publisher, many subscribers)

§Support

For questions and support:

Modules§

camera
The camera module provides camera capture capabilities.
client
The client module provides the frame subscription functionality.
decoder
The encoder module provides accelerated video decoding from h.264 and h.265
encoder
The encoder module provides accelerated video encoding to h.264 and h.265
fourcc
The fourcc module provides portable handling of fourcc codes.
frame
The frame module provides the common frame handling functionality.
host
The host module provides the frame sharing functionality.

Macros§

vsl
Helper macro for modules to get library reference and call functions All functions must return Result<T, Error> to use this macro

Enums§

Error
Error type for VideoStream library operations

Functions§

timestamp
Get the current timestamp in nanoseconds
version
Get the VideoStream library version string