ToolX - Video Streaming & Network Diagnostics

ToolX is a comprehensive video streaming and network diagnostics tool for GVA systems. It provides capabilities for SAP/SDP stream discovery, RTP video stream generation, SNMP MIB browsing, and network diagnostics - essential for testing and debugging video distribution in military vehicle systems.

ToolX RTP-SAP Tab

Key Capabilities

ToolX provides the following capabilities:

Feature Description
SAP/SDP Stream Discovery Listen for Session Announcement Protocol (SAP) multicast announcements
RTP Stream Generation Generate test pattern video streams with various codecs
SNMP MIB Browser Walk SNMP MIBs on network devices for VIVOE compliance testing
Network Diagnostics Comprehensive network interface and multicast diagnostics
Multiple Codec Support H.264 (VAAPI, OpenH264, OMX), H.265, JPEG2000, AV1, Uncompressed

Protocol Sequences

RTP/SAP Video Streaming Sequence

The following diagram shows the typical message sequence for SAP-announced RTP video streaming:

sequenceDiagram participant TX as ToolX (Transmitter) participant Net as Multicast Network participant RX as ToolX (Receiver) Note over TX,RX: Stream Announcement Phase TX->>Net: SAP Announcement (224.2.127.254:9875) Note right of TX: SDP payload contains:
Session name, IP, Port,
Codec, Resolution Net->>RX: SAP Announcement RX->>RX: Parse SDP, add to stream list Note over TX,RX: Video Streaming Phase loop Every frame (25/30 fps) TX->>TX: Encode frame (H.264/VAAPI) TX->>Net: RTP Packet (239.x.x.x:5004) Net->>RX: RTP Packet RX->>RX: Decode & display frame end Note over TX,RX: Periodic Announcements loop Every 1 second TX->>Net: SAP Announcement refresh Net->>RX: SAP Announcement end Note over TX,RX: Stream Termination TX->>Net: SAP Deletion (d=1) Net->>RX: SAP Deletion RX->>RX: Remove from stream list

SNMP MIB Walk Sequence

The following diagram shows the typical SNMP walk sequence for VIVOE device interrogation:

sequenceDiagram participant TX as ToolX participant Dev as VIVOE Device Note over TX,Dev: SNMP Walk Initiation TX->>TX: Validate IP address TX->>Dev: SNMP GetNext (.1.3.6.1) Dev->>TX: Response (sysDescr OID + value) Note over TX,Dev: Walk System MIB TX->>Dev: SNMP GetNext (sysDescr) Dev->>TX: Response (sysObjectID) TX->>Dev: SNMP GetNext (sysObjectID) Dev->>TX: Response (sysUpTime) TX->>Dev: SNMP GetNext (sysUpTime) Dev->>TX: Response (sysContact) Note over TX,Dev: Walk VIVOE MIB (.1.3.6.1.4.1.35990) TX->>Dev: SNMP GetNext (vivoe enterprise OID) Dev->>TX: Response (videoStreamCount) TX->>Dev: SNMP GetNext (videoStreamCount) Dev->>TX: Response (videoStreamTable entry) loop For each stream entry TX->>Dev: SNMP GetNext (streamEntry) Dev->>TX: Response (IP, Port, Codec, Resolution) end Note over TX,Dev: Walk Complete TX->>Dev: SNMP GetNext (last OID) Dev->>TX: Response (endOfMibView) TX->>TX: Display MIB tree in browser

Running ToolX

Launch ToolX from the build directory:

cd build/bin
./toolx

Command Line Options

ToolX supports the following command-line options for codec selection:

# Use GStreamer VAAPI H.264 encoder (default, hardware accelerated)
./toolx --vaapi

# Use GStreamer OpenH264 encoder (software)
./toolx --openh264

# Use native OpenH264 encoder (non-GStreamer)
./toolx --openh264-native

# Use native VAAPI encoder (non-GStreamer)
./toolx --vaapi-native

# Use OMX H.264 encoder (for embedded platforms)
./toolx --omx

Tabs Overview

ToolX organises its functionality into several tabs:

RTP-SAP Tab

The RTP-SAP tab provides SAP/SDP stream discovery and RTP video stream generation capabilities.

RTP-SAP Tab

Features:

  • SAP Listener: Discovers video streams announced via SAP multicast

    • Session Name - Human-readable stream name
    • IP Address - Multicast destination address
    • Port - RTP port number
    • Encoding - Video codec (H.264, JPEG2000, etc.)
    • Resolution - Width x Height
    • Frame Rate - Frames per second
  • Stream Generator: Create test pattern video streams

    • Multiple test patterns (EBU colour bars, grey scale, checkered, solid colours, bouncing ball)
    • Configurable resolution, frame rate, and encoding
    • SAP announcement generation for stream discovery
  • Stream Player: View received video streams

    • Double-click a discovered stream to play it
    • Supports all MediaX-compatible codecs

SNMP Tab

The SNMP tab provides SNMP MIB walking functionality for VIVOE compliance testing.

SNMP Tab

Features:

  • Target Configuration:

    • IP Address - Target device IP (validated before walk)
    • Community String - SNMP community (default: "public")
    • SNMP Version - v1, v2c, or v3
  • MIB Browser:

    • Hierarchical tree view of SNMP OIDs
    • OID values displayed with type information
    • VIVOE-MIB support for video-over-Ethernet devices
  • Walk Button: Initiates SNMP walk (disabled until valid IP entered)

VIVOE MIB

ToolX includes the VIVOE-MIB for testing video-over-Ethernet equipment compliance with DEF STAN 00-082.

Diagnostics Tab

The Diagnostics tab provides comprehensive network interface and multicast diagnostics.

Diagnostics Tab

Features:

  • Network Interfaces: Lists all network interfaces with:

    • Interface name and status (UP/DOWN)
    • IP address and netmask
    • MAC address
    • MTU size
  • Multicast Configuration:

    • IGMP snooping status
    • Multicast routing table
    • Active multicast group memberships
  • Diagnostic Tests:

    • Multicast connectivity tests
    • IGMP query/report verification
    • Network path analysis

Diagnostics Complete

Running Diagnostics:

  1. Click "Run Diagnostics" to start the diagnostic tests
  2. Tests run asynchronously in the background
  3. Results are displayed in the output panel
  4. Tests include:
    • Network interface enumeration
    • IP configuration validation
    • Multicast group membership checks
    • IGMP snooping detection
    • Route table analysis

Elevated Privileges

Some diagnostic tests may require elevated privileges to access network configuration details. Run with sudo if needed.

Video Codec Support

ToolX supports multiple video codecs through the MediaX library:

Codec GStreamer Native Hardware Accel
H.264 VAAPI GPU (Intel/AMD)
H.264 OpenH264 CPU
H.264 OMX - SoC (NVIDIA Jetson)
H.264 x264 - CPU
H.265 VAAPI - GPU (Intel/AMD)
JPEG2000 - CPU
AV1 - CPU/GPU
Uncompressed - -

Uncompressed Video Modes

The following uncompressed video formats are supported:

Mode Description
RGB 24-bit RGB colour
YUYV YUV 4:2:2 packed
MONO 8-bit monochrome
MONO16 16-bit monochrome

Codec Selection

The default codec is GStreamer VAAPI H.264 which provides hardware-accelerated encoding on Intel and AMD GPUs. If hardware acceleration is not available, use --openh264 for software encoding.

Native vs GStreamer:

  • GStreamer codecs: Use GStreamer pipeline for encoding, more flexible but higher latency
  • Native codecs: Direct library calls, lower latency but fewer features

Test Patterns

The stream generator supports the following test patterns for video stream testing:

Static Test Patterns

EBU Colour Bars

EBU Colour Bars

Standard EBU colour bar pattern for broadcast colour calibration.

SMPTE Colour Bars

SMPTE Colour Bars

SMPTE colour bar pattern with extended test regions.

Colour Bars

Colour Bars

Basic colour bar test pattern.

Grey Scale Bar

Grey Scale Bar

Gradient from black to white for brightness and contrast testing.

Gradient

Gradient

Smooth colour gradient pattern.

Checkered

Checkered

Black and white checkerboard pattern for resolution and sharpness testing.

Crosshatch

Crosshatch

Grid pattern for geometry and linearity testing.

Quad

Quad

Four-quadrant colour test pattern.

Zone Plate

Zone Plate

Circular zone plate for resolution and moire testing.

Solid Colour Patterns

Pattern Image Use Case
Solid Black Solid Black Black level calibration
Solid White Solid White White level / brightness test
Solid Red Solid Red Red channel test
Solid Green Solid Green Green channel test
Solid Blue Solid Blue Blue channel test

Animated Test Patterns

These patterns include motion for testing video encoding and frame rate:

Pattern Preview Description
Bouncing Ball Bouncing Ball Moving ball animation for motion testing
Moving Sweep Moving Sweep Sweeping line for motion blur testing
Pulsing Circle Pulsing Circle Expanding/contracting circle animation
Rotating Cube Rotating Cube 3D rotating cube for complex motion
Scrolling Text Scrolling Text Moving text for readability testing
White Noise White Noise Random noise for compression artifact testing

SAP/SDP Protocol

ToolX implements the Session Announcement Protocol (SAP) defined in RFC 2974 for stream discovery:

  • Multicast Address: 224.2.127.254
  • Port: 9875
  • Announcement Interval: Configurable (default 1 second)

The Session Description Protocol (SDP) payload includes:

  • Session name and description
  • Connection information (multicast address)
  • Media description (codec, port, format)
  • Timing information

Troubleshooting

No Streams Discovered

  1. Verify multicast routing is enabled on your network
  2. Check that IGMP snooping is properly configured on switches
  3. Ensure firewall allows SAP multicast (224.2.127.254:9875)
  4. Run diagnostics tab to verify multicast connectivity

Stream Generation Fails

  1. Check codec availability with gst-inspect-1.0 vaapih264enc
  2. Verify GPU driver is installed for hardware acceleration
  3. Try --openh264 for software-only encoding
  4. Check network interface supports multicast

SNMP Walk Times Out

  1. Verify target IP is reachable (ping <ip>)
  2. Check SNMP service is running on target
  3. Verify community string is correct
  4. Check firewall allows UDP port 161

See Also