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.
The user documentation is available via Github Pages
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:
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.
This repository includes repository-wide custom instructions for agentic coding AI tools. These instructions are essential for AI agents to understand the project architecture, build process, testing strategy, and CI/CD requirements.
If you are using GitHub Copilot (coding agent or code review), the custom instructions in .github/copilot-instructions.md will be automatically available and used by Copilot.
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. - Testing Philosophy: ~80% unit test coverage; mock dependencies; no filesystem/network/clock in unit tests.
- Multi-OS CI/CD: Changes must align with Linux (Nix), macOS (DMG packaging), Windows (MSI packaging), and Flatpak workflows.
If you are using a different agentic coding AI tool (e.g., Claude, Gemini, or other coding assistants), manually provide the instructions from .github/copilot-instructions.md to the AI when asking it to make changes or contributions to this repository.
This ensures the AI agent understands:
- The project's strict MVP architecture constraints
- The correct build commands and dependency setup
- The unit testing strategy and mocking conventions
- How to validate changes against the multi-platform CI/CD pipeline
- Contribution hygiene and PR expectations
Sharing these instructions significantly improves the likelihood that AI-generated pull requests will pass CI/CD checks and meet project standards on the first attempt.
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.
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).
