Overview

MediaX is a real-time video streaming library implementing industry-standard protocols for defence and industrial applications.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      Application Layer                       │
│  (Your Application, Qt6 GUI, Python Scripts)                │
├─────────────────────────────────────────────────────────────┤
│                       MediaX API                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  RTP/SAP    │  │   Video     │  │   Qt6       │         │
│  │  Wrappers   │  │   Renderer  │  │   Bindings  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
├─────────────────────────────────────────────────────────────┤
│                     Encoder Layer                            │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐       │
│  │Uncompres-│ │  H.264   │ │  H.265   │ │   AV1    │       │
│  │   sed    │ │ (x264,   │ │ (VAAPI)  │ │  (Rust)  │       │
│  │          │ │  VAAPI)  │ │          │ │          │       │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘       │
├─────────────────────────────────────────────────────────────┤
│                    Transport Layer                           │
│  ┌─────────────────────┐  ┌─────────────────────┐          │
│  │    RTP Payloader    │  │   RTP Depayloader   │          │
│  │    (RFC 4175/3984)  │  │   (RFC 4175/3984)   │          │
│  └─────────────────────┘  └─────────────────────┘          │
│  ┌─────────────────────┐                                    │
│  │  SAP/SDP Announcer  │                                    │
│  │  (RFC 2974/4566)    │                                    │
│  └─────────────────────┘                                    │
├─────────────────────────────────────────────────────────────┤
│                    Network Layer                             │
│  UDP Multicast / Unicast                                    │
└─────────────────────────────────────────────────────────────┘

Standards Compliance

MediaX implements the following standards:

Standard Description
RFC 4175 RTP Payload Format for Uncompressed Video
RFC 3984 RTP Payload Format for H.264 Video
RFC 2974 Session Announcement Protocol (SAP)
RFC 4566 Session Description Protocol (SDP)
DEF STAN 00-082 VIVOE - Vehicle Integrated Video Over Ethernet

Key Components

RTP Payloader/Depayloader

Handles packetization and depacketization of video frames for network transmission.

  • Supports multiple colorspaces (RGB24, YUV422, Mono8, Mono16)
  • Hardware acceleration for H.264/H.265
  • Configurable packet sizes and timing

SAP/SDP Announcer/Listener

Automatic stream discovery on the network.

  • Periodic SAP announcements (1 second interval)
  • SDP session descriptions with stream metadata
  • Multicast group management

Video Renderer

Display video using various backends:

  • SDL2 (recommended, cross-platform)
  • GTK4 (Linux desktop)
  • Frame buffer (headless systems)

Language Bindings

  • C++17 - Native API
  • Python - SWIG bindings for AI/ML integration
  • Qt6 - GUI application development

Use Cases

  • Defence vehicle video systems (GVA/VIVOE)
  • Industrial machine vision
  • Broadcast and surveillance
  • AI/ML video processing pipelines

Support