Decode Orc
July 17, 2026 · View on GitHub
Decode-Orc is a cross-platform orchestration and processing framework for LaserDisc and tape decoding workflows.

It aims to brings structure and consistency to complex decoding processes, making them easier to run, repeat, and understand.
Important
Decode-Orc is a direct replacement for the existing ld-decode-tools, coordinating each step of the process and keeping track of inputs, outputs, and results.
The project aims to:
- Make advanced LaserDisc and tape workflows (from TBC to end-user video) easier to manage
- Reduce manual steps and error-prone command sequences
- Help users reproduce the same results over time
Both a graphical interface (orc-gui) and command-line interface (orc-cli) are implemented for orchestrating workflows. These commands contain minimal business logic and, instead, rely on the same orc-core following a MVP architecture (Model–View–Presenter) wherever possible.
Documentation
User documentation
The user documentation is available via GitHub Pages
Installation
The Decode-Orc project provides ready-to-install packages for Mac OS (DMG).
The release packages can be found in the release section of the Github repository.
For instructions on how to install please see the documentation for your preferred platform:
Building from Source
For comprehensive build instructions covering Nix, CMake, and platform-specific setup, please see BUILD.md.
Quick reference: Use nix develop for reproducible builds with all dependencies pre-configured, or follow the CMake/vcpkg instructions for system package manager setups.
Plugin Development
Third-party plugins are external repositories and should follow the naming
convention orc-plugin_<stage-name>. They build against the standalone Plugin
SDK package alone — no decode-orc source tree or host dependency stack is
required.
Canonical starter template repository:
https://github.com/simoninns/orc-plugin_skeleton
Decode-Orc host integration consumes pre-compiled plugin artifacts from release assets (or a local pre-compiled path for development/testing).
Documentation:
- Plugin Author Guide — end-to-end walkthrough from an empty directory to a plugin loaded in the host.
- Plugin Publishing Guide — release-asset naming, digests, ABI-rebuild expectations, and submitting a curated-index entry.
- Plugin SDK Developer Guide — tiered header reference, CMake integration, and the versioning/ABI policy.
- Plugin Architecture — runtime flow, compatibility gating, registry, and the curated index.
Using Agentic Coding AI
This repository includes repository-wide instructions for agentic coding AI tools in AGENTS.md. These instructions are essential for AI agents to understand the project architecture, build process, testing strategy, and CI/CD requirements. All AI agents must read and follow them before performing any task.
Key guidance includes:
- MVP Architecture: Core, presenters, view-types, and UI layers must remain decoupled. Run
ctest -R MVPArchitectureCheckbefore submitting PRs. - Build & Test: Use
nix developfor reproducible setup, thencmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DBUILD_UNIT_TESTS=ONandctest --test-dir build --output-on-failure. - C++ Style: Follow the Google C++ Style Guide; use
clang-formatfor formatting andclang-tidyfor static analysis (both available in the Nix environment). - Testing Philosophy: Unit test coverage is the primary methodology; mock all dependencies; no filesystem/network/clock access in unit tests.
- Multi-OS CI/CD: Changes must align with Linux (Nix), macOS (DMG packaging), Windows (MSI packaging), and Flatpak workflows.
Crash Reporting
If the application crashes unexpectedly, it will automatically create a diagnostic bundle to help identify and fix the issue. This bundle contains:
- System information (OS, CPU, memory)
- Stack backtrace showing where the crash occurred
- Application logs
- Coredump file (when available)
The crash bundle is saved as a ZIP file in:
- orc-gui:
~/Documents/decode-orc-crashes/(or your home directory) - orc-cli: Current working directory
When reporting a crash issue on GitHub Issues, please:
- Attach the crash bundle ZIP file (or upload to a file sharing service if too large)
- Describe what you were doing when the crash occurred
- Include the contents of
crash_info.txtfrom the bundle in your issue description
This information is invaluable for diagnosing and fixing crashes quickly.
Credits
Decode-Orc was designed and written by Simon Inns. Decode-Orc's development heavily relied on the original GPLv3 ld-decode-tools which contained many contributions from others.
- Simon Inns (2018-2025) - Extensive work across all tools
- Adam Sampson (2019-2023) - Significant contributions to core libraries, chroma decoder and tools
- Chad Page (2014-2018) - Filter implementations and original NTSC comb filter
- Ryan Holtz (2022) - Metadata handling
- Phillip Blucas (2023) - VideoID decoding
- ...and others (see the original ld-decode-tools source)
It should be noted that the original code for the observers is also based heavily on the ld-decode python code-base (written by Chad Page et al).