How small-teton/mpeg-ts-analyzer works
mpeg-ts-analyzer reads MPEG transport-stream files, analyzes a bounded range, and returns compliance findings and inspection data as text or JSON; its desktop GUI presents those results in linked views. The graph includes the documented timing, continuity, PSI/PES, synchronization, and reporting capabilities. The GUI-to-CLI workflow is visible in the excerpts and README; several analysis modules and GUI screens are represented from the tree and README, so their internal call relationships are not inferred.
Main entry points: app.rs GUI shell · root.go CLI command · cli.rs CLI subprocess · mpeg_packet.go TS parsing
Components 23
Entry points
- CLI command
cmd/root.go - Text and JSON
tsparser/report.go
Analysis engine
- TS parsing
tsparser/mpeg_packet.go - Timing checks
internal/analysis/pcr.go - Continuity checks
internal/analysis/continuity.go - PSI health
internal/analysis/psi_health.go - PES health
internal/analysis/pes.go - PID references
internal/analysis/pid_references.go - Synchronization
internal/analysis/sync.go - Packet gaps
internal/analysis/packet_gaps.go - Mux lead
internal/analysis/mux_lead.go
Desktop GUI
- GUI shell
gui/src/app.rs - CLI subprocess
gui/src/cli.rs - Result models
gui/src/report.rs - Overview
gui/src/views/overview.rs - Timeline
gui/src/views/timeline.rs - Bitrate
gui/src/views/bitrate.rs - Packet inspection
gui/src/views/packets.rs - Wire layout
gui/src/views/wire_layout.rs - Range selection
gui/src/range_bar.rs - GUI settings
gui/src/settings.rs
External interfaces
- Analyzer executable
Other components
- Analyst
Connections 16
- Analyst → GUI shell: opens file
README.md - Analyst → CLI command: runs analysis
README.md - CLI command → TS parsing: uses parser
cmd/root.go - TS parsing → Timing checks: uses analysis
tsparser/mpeg_packet.go - CLI command → Text and JSON: emits results
- GUI shell → CLI subprocess: starts jobs
gui/src/app.rs - CLI subprocess → Analyzer executable: runs subprocess
README.md - CLI subprocess → Result models: parses output
gui/src/cli.rs - Overview → Result models: reads results
gui/src/views/overview.rs - GUI shell → Overview: shows view
gui/src/app.rs - GUI shell → Timeline: shows view
gui/src/app.rs - GUI shell → Bitrate: shows view
gui/src/app.rs - GUI shell → Packet inspection: shows view
gui/src/app.rs - Packet inspection → Wire layout: opens details
- GUI shell → Range selection: edits range
gui/src/app.rs - GUI shell → GUI settings: uses settings
gui/src/app.rs