Skip to main content

Crate oximedia_playout

Crate oximedia_playout 

Source
Expand description

§OxiMedia Playout Server

Professional broadcast playout server with frame-accurate timing, 24/7 reliability, and support for multiple broadcast outputs.

§Features

  • Frame-accurate timing (no dropped frames)
  • 24/7 reliability with emergency fallback
  • Genlock/sync support for professional broadcast
  • Multiple simultaneous outputs (SDI, NDI, RTMP, SRT, IP multicast)
  • Graphics overlay (logos, lower thirds, tickers)
  • Comprehensive monitoring and alerting
  • SCTE-35 marker insertion for ad breaks
  • Dynamic playlist management

§Example

use oximedia_playout::{PlayoutServer, PlayoutConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = PlayoutConfig::default();
    let server = PlayoutServer::new(config).await?;
    server.start().await?;
    Ok(())
}

Modules§

ad_insertion
SCTE-35 ad insertion and splice point management. SCTE-35 ad insertion and splice point management for broadcast playout.
api
REST API and control interface
asrun
As-run logging and compliance reporting
automation
Automation rules and smart scheduling
branding
Channel branding / ID management for playout.
bxf
BXF (Broadcast eXchange Format) integration
catchup
Catch-up TV management: start-over, lookback windows, and recording triggers.
cg
Character Generator (CG) integration
channel
Multi-channel playout support
channel_config
Channel format and configuration registry (SD/HD/UHD, frame rate, audio). Channel format and configuration management for the playout server.
clip_store
Clip store for playout
compliance_ingest
Compliance recording and ingest: record-on-air, signal verification, and file delivery workflows.
content
Content management and validation
device
Broadcast device control
event_log
Playout event log.
failover
Failover and redundancy support
frame_buffer
Frame ring buffer with pre-roll gating and overflow/underrun detection. Frame buffer management for broadcast playout.
frame_trim
Frame-accurate trim engine with SMPTE timecode support. Frame-accurate trim engine with SMPTE timecode support.
gap_filler
Automatic gap detection and filler content insertion. Automatic gap detection and filler content insertion for playout.
graphics
Graphics overlay engine
highlight_automation
Automated highlight clip generation from playout.
ingest
Live ingest management
media_router_playout
Signal routing from programme sources to SDI/IP/RTMP/file targets.
monitoring
System monitoring and alerting
output
Output modules for various broadcast formats
output_router
Output routing for the playout server.
playback
Real-time playback engine with frame-accurate timing
playlist
Playlist management and playback sequencing
playlist_ingest
Playlist ingest session: format detection, item validation, clip trimming. Playlist ingest for the playout server.
playout_log
Detailed playout logging and audit trail. Detailed playout logging and audit trail.
playout_schedule
24-hour playout schedule grid with conflict detection and gap finding.
predecode
Pre-decode manager: background thread pool for gapless playlist transitions. Pre-decode manager: decode upcoming playlist items in background threads for zero-gap transitions between clips.
preflight
Content pre-flight validation before broadcast playout.
ptp_clock
PTP (Precision Time Protocol) clock source for sub-microsecond synchronisation. PTP (Precision Time Protocol) clock source — IEEE 1588-2019 / SMPTE ST 2059-2.
rundown
Rundown / script management for playout.
schedule_block
Time-blocked schedule management for broadcast playout. Time-blocked schedule management for broadcast playout.
schedule_slot
Time-slot schedule grid with booking, availability, and overlap queries. Schedule slot management for the playout server.
scheduler
Playlist and program scheduling
secondary_events
Secondary event triggers: ad break markers, chapter points, and data carousel.
signal_chain
Ordered processing chain (input -> process -> output) with bypass support.
simulcast
Multi-format simulcast: produce HD + UHD (or other format pairs) from a single playout chain.
subtitle_inserter
CEA-608/708 subtitle insertion and SRT/WebVTT parsing.
tally_system
Tally light control system for broadcast playout.
timecode_overlay
Timecode burn-in overlay for monitoring outputs. Timecode burn-in overlay for broadcast monitoring outputs.
transitions
Automated video transition effects between clips.

Structs§

AudioFormat
Audio format configuration
PlayoutConfig
Playout server configuration
PlayoutServer
Professional broadcast playout server
ShutdownConfig
Configuration for graceful shutdown behaviour.

Enums§

PlayoutError
Errors that can occur during playout operations
PlayoutState
Playout server state
VideoFormat
Video format configuration

Type Aliases§

Result
Result type for playout operations