How content is produced, and how honestly a render of it can be replayed. More...
#include <cstdint>#include <optional>#include <string_view>Go to the source code of this file.
Classes | |
| struct | pulp::timeline::ProductionDeclaration |
| What a piece of content declares about its own production. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::timeline |
Functions | |
| std::string_view | pulp::timeline::production_mode_name (ProductionMode mode) noexcept |
| Canonical wire name, stable across builds and safe to persist. | |
| std::string_view | pulp::timeline::reproducibility_class_name (ReproducibilityClass reproducibility) noexcept |
| Canonical persisted name for a reproducibility class. | |
| std::optional< ProductionMode > | pulp::timeline::production_mode_from_name (std::string_view name) noexcept |
| Parse a canonical wire name. | |
| std::optional< ReproducibilityClass > | pulp::timeline::reproducibility_class_from_name (std::string_view name) noexcept |
| Parses a canonical reproducibility-class name and rejects unknown names. | |
| std::uint8_t | pulp::timeline::replay_strength (ReproducibilityClass reproducibility) noexcept |
| Replay strength, ascending: BestEffort < Tolerance < Materialized < Deterministic. | |
| ReproducibilityClass | pulp::timeline::weakest (ReproducibilityClass left, ReproducibilityClass right) noexcept |
| The weaker of two claims — the only correct way to aggregate a render that spans several classes. | |
| bool | pulp::timeline::is_bit_reproducible (ReproducibilityClass reproducibility) noexcept |
| True when a second render is entitled to claim bit-equality with the first. | |
| ProductionDeclarationErrorCode | pulp::timeline::validate_production_declaration (const ProductionDeclaration &declaration) noexcept |
| Validate a declaration. Returns None when the declaration is coherent. | |
Variables | |
| constexpr std::uint64_t | pulp::timeline::kMaxProductionLookaheadMs = 60'000 |
| Upper bound on a declared lookahead. | |
How content is produced, and how honestly a render of it can be replayed.
These are declarations of intent, not scheduling policy. A production mode says whether content is produced in band with the audio callback or ahead of it; a reproducibility class says what a second render of the same document is entitled to claim about the first. Both travel with content so a replay, bounce, or diff can report which parts of a render are bit-reproducible and which are not, instead of asserting bit-equality over material that never promised it.
The declared lookahead is wall-clock milliseconds and is never latency. Production cost is wall-clock (decode time, a GPU round trip), so a lookahead expressed in musical ticks would silently shrink as tempo rises. A producer that needs musical context ("the next bar's chords") is declaring a compile context subscription, not a lookahead. Nothing here may reach a latency or delay-compensation computation: a lookahead is time a producer is given to work, not time a signal is delayed by.