Crates | |
---|---|
Code quality | |
Properties | |
Platforms | |
Contact |
Index of contents |
---|
Substation Beta • Components • Getting started • Building • Contributing • License • Acknowledgment |
This project is the reference implementation of subtitle format substation beta
(short ssb).
Components target desktop application development and evolve with continuation of ssb_book.
Project contents consist of multiple components which build on top of each other:
ssb_parser → ssb_renderer → ssb_filter
Parser of text in ssb format.
- Reads from file or byte stream
- Validates content
- Packs data into ordered structures
- Allows serialization in other format (like JSON)
- Relevant for rust developers
See sub-project ssb_parser.
2d graphics software renderer for ssb format.
- Builds upon ssb_parser for input processing
- Renders 2-dimensional graphics on system memory buffers
- High-performance by efficient hardware workload
- Relevant for rust developers
See sub-project ssb_renderer.
Interfaces to ssb rendering for video frameserving and language wrapping.
- Builds upon ssb_renderer for graphics rendering (including ssb_parser for input processing)
- Plugin binary for immediate use in popular frameservers
- C API provides access by FFI
- Relevant for c developers and frameserver users
See sub-project ssb_filter.
TODO
All components get released on crates.io therefore are easy to add as dependency in rust projects (ssb_parser & ssb_renderer) or build to a binary (ssb_filter).
ssb_filter gets additionally deployed on github releases for windows and linux distributions.
For installing ssb_filter as frameserver plugin, see the documentation of your target frameserver. Usually it's just putting the shared library into an autoload directory or calling an import command with the filepath as parameter.
TODO
TODO
All components are projects inside a rust workspace - the ssb_implementation repository. Build tool cargo (part of rust toolchain) already manages dependencies. Enabling features may require additional software installed on your operating system.
- Install rust
- Get ssb_implementation
- Git clone:
git clone https://github.com/substation-beta/ssb_implementation.git
- HTTPS download
- Git clone:
- Change current directory to new...
./ssb_implementation
(git)./ssb_implementation-master
(https)
- Install software for features
- Vapoursynth for ssb_filter vapoursynth-interface (! on by default !)
- Build components by cargo
- Libraries with release profile:
cargo build --release
- Documentation without dependencies:
cargo doc --no-deps
- Libraries with release profile:
- Build output can be found in default cargo location
- Libraries:
./target/release/*.{rlib,dll,so,dylib,lib,a,h}
- Documentation:
./target/doc/**/*
- Libraries:
For references see CI by Github Actions script.
We welcome contributers but insist on working by our rules. The principle quality > quantity has to be followed through every part of this project.
For details, see CONTRIBUTING.
This project and all of its components are licensed under Apache-2.0. Distributed on an "AS-IS" basis, there's no warranty, a limited liability and no grant of trademark rights.
For more, see LICENSE.