44 std::shared_ptr<const timeline::Project> snapshot,
45 std::uint64_t document_revision);
48 return captured_registry_revision_;
51 return registry_generation_.get();
54 return registry_snapshot_.get();
57 return registry_snapshot_;
60 return registry_generation_;
65 std::shared_ptr<const timeline::Project> snapshot,
67 std::shared_ptr<const timeline::Project> predecessor_snapshot,
72 std::shared_ptr<const timeline::Project> snapshot_;
73 std::shared_ptr<const timeline::Project> predecessor_snapshot_;
74 std::uint64_t document_revision_ = 0;
75 std::shared_ptr<const detail::ContextRegistryGeneration> registry_generation_;
76 std::shared_ptr<const CompileContextRegistry> registry_snapshot_;
77 std::uint64_t captured_registry_revision_ = 0;
78 bool baseline_ =
false;
84 std::shared_ptr<const timeline::Project>
project;
86 std::shared_ptr<const timebase::CompiledTempoMap>
tempo_map;
299struct PlaybackProgramCompilerCore;
312 std::chrono::microseconds coalescing_window = std::chrono::milliseconds(10));
321 std::shared_ptr<PlaybackProgramCompilerCore> core_;
The declaration side of the compile-context subscription contract.
Definition compile_context_registry.hpp:148
Definition compile_executor.hpp:23
runtime::Result< CompileTicket, CompileError > submit(ProgramCompileRequest request)
PlaybackProgramCompiler(const PlaybackProgramCompiler &)=delete
~PlaybackProgramCompiler()
PlaybackProgramCompiler & operator=(const PlaybackProgramCompiler &)=delete
PlaybackProgramCompiler(PlaybackProgramStore &store, CompileExecutor &executor, std::chrono::microseconds coalescing_window=std::chrono::milliseconds(10))
The store and executor must outlive every task they accept.
CompilerStatus status() const
Definition program.hpp:371
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Owned canonical collection of incremental invalidations.
Definition transaction.hpp:74
Definition audio_renderer.hpp:20
RendererStatePolicy
Definition program.hpp:59
@ CarryByItemId
Definition program.hpp:59
@ InvalidRequest
Definition generated_event_source.hpp:140
std::uint64_t ProgramGeneration
Definition program_identity.hpp:10
@ StaleRevision
Definition generated_event_source.hpp:99
CompileErrorCode
Definition program_compiler.hpp:110
@ NestedFrozenTrackUnsupported
Definition program_compiler.hpp:178
@ CompilerAlreadyBound
Definition program_compiler.hpp:116
@ RegisteredContentCompileFailed
Definition program_compiler.hpp:146
@ ExpansionBudgetExceeded
Definition program_compiler.hpp:119
@ NestedAbsoluteChildUnsupported
Definition program_compiler.hpp:235
@ ExecutorUnavailable
Definition program_compiler.hpp:113
@ TrimmedGrooveUnsupported
Definition program_compiler.hpp:144
@ MidiExpressionLaneUnsupported
Definition program_compiler.hpp:135
@ NestedAutomationPanUnsupported
Definition program_compiler.hpp:201
@ TrimmedMidiLaneUnsupported
Definition program_compiler.hpp:127
@ NestedActiveTakeUnsupported
Definition program_compiler.hpp:185
@ NestedAutomationGainEventLeafUnsupported
Definition program_compiler.hpp:209
@ AudioProgramInvalid
Definition program_compiler.hpp:117
@ MidiExpressionLaneBudgetExceeded
The arrangement authors more controller values than one program may carry.
Definition program_compiler.hpp:139
@ NestedGainSinkUnsupported
Definition program_compiler.hpp:160
@ UnresolvedRegisteredContent
Definition program_compiler.hpp:145
@ NestedDeviceChainUnsupported
Definition program_compiler.hpp:193
@ NestedMixerPanUnsupported
Definition program_compiler.hpp:154
@ NestedConformedTrimUnsupported
Definition program_compiler.hpp:225
@ InvalidRequest
Definition program_compiler.hpp:111
@ GenerationExhausted
Definition program_compiler.hpp:115
@ NestedPlacementFadeUnsupported
Definition program_compiler.hpp:169
@ InvalidStructure
Definition program_compiler.hpp:114
@ RegisteredContentFragmentQuotaExceeded
Definition program_compiler.hpp:147
@ AutomationProgramInvalid
Definition program_compiler.hpp:118
@ NoteProgramCapacityExceeded
Definition program_compiler.hpp:120
@ NestedAutomationGainMediaUnsupported
Definition program_compiler.hpp:216
AudioRendererErrorCode
Definition audio_renderer.hpp:29
@ OfflineStretchFailed
Definition audio_renderer.hpp:41
@ InvalidAsset
Definition audio_renderer.hpp:33
ContentFragmentErrorCode
Definition compile_context_registry.hpp:48
@ RendererFailed
Definition compile_context_registry.hpp:49
OfflineStretchErrorCode
Definition offline_stretch_artifact.hpp:71
@ None
Definition offline_stretch_artifact.hpp:72
Definition program_compiler.hpp:18
Shared compile and RT ceilings.
Definition audio_renderer_limits.hpp:10
Preparation and callback-work ceilings shared by document compilation and track automation rendering.
Definition automation_limits.hpp:12
static constexpr AutomationPlaybackLimits platform_defaults() noexcept
Definition automation_limits.hpp:42
Definition program_compiler.hpp:238
ContentFragmentErrorCode content_fragment_detail
Definition program_compiler.hpp:244
std::uint64_t actual
Definition program_compiler.hpp:245
std::uint64_t revision
Definition program_compiler.hpp:241
CompileErrorCode code
Definition program_compiler.hpp:239
OfflineStretchErrorCode offline_stretch_detail
Definition program_compiler.hpp:243
std::uint64_t limit
Definition program_compiler.hpp:246
timeline::ItemId item
Definition program_compiler.hpp:240
AudioRendererErrorCode audio_detail
Definition program_compiler.hpp:242
Definition program_compiler.hpp:249
std::uint64_t revision
Definition program_compiler.hpp:250
std::uint64_t submission_epoch
Definition program_compiler.hpp:251
Definition program_compiler.hpp:254
std::uint64_t active_tracks_completed
Definition program_compiler.hpp:262
std::uint64_t latest_published_epoch
Definition program_compiler.hpp:269
CompileError last_error
Definition program_compiler.hpp:264
bool has_error
Definition program_compiler.hpp:263
ProgramGeneration latest_published_generation
Definition program_compiler.hpp:257
std::uint64_t submitted_requests
Definition program_compiler.hpp:258
std::uint64_t latest_published_revision
Definition program_compiler.hpp:256
std::uint64_t active_tracks_reused
Definition program_compiler.hpp:282
std::uint64_t coalesced_requests
Definition program_compiler.hpp:259
bool busy
Definition program_compiler.hpp:261
std::uint64_t latest_submitted_revision
Definition program_compiler.hpp:255
std::uint64_t rejected_requests
Definition program_compiler.hpp:260
void count_track_completed(bool reused)
Record one finished track on whichever side of the partition it fell.
Definition program_compiler.hpp:293
void clear_active_track_counts()
Clear the three track counters together, so the partition can never be left describing a previous req...
Definition program_compiler.hpp:286
std::uint64_t active_tracks_recompiled
Partition of active_tracks_completed for the request currently being compiled, or for the last one if...
Definition program_compiler.hpp:281
std::uint64_t latest_submitted_epoch
Definition program_compiler.hpp:268
Definition dirty_track_resolver.hpp:9
Definition program_compiler.hpp:81
std::vector< TrackCompilePolicy > track_policies
Definition program_compiler.hpp:92
timebase::RationalRate sample_rate
The render rate requested by the caller.
Definition program_compiler.hpp:89
std::size_t maximum_note_events_per_track
Definition program_compiler.hpp:98
static constexpr std::size_t default_maximum_note_events_per_track
Definition program_compiler.hpp:82
std::shared_ptr< const timebase::CompiledTempoMap > tempo_map
Definition program_compiler.hpp:86
std::shared_ptr< const CompileContextRegistry > content_compilers
Definition program_compiler.hpp:107
std::shared_ptr< const DecodedAudioAssetPool > audio_assets
Definition program_compiler.hpp:93
timeline::ItemId sequence_id
Definition program_compiler.hpp:85
AudioRendererLimits audio_limits
Definition program_compiler.hpp:94
std::uint64_t max_expanded_clips
Definition program_compiler.hpp:97
AutomationPlaybackLimits automation_limits
Definition program_compiler.hpp:95
std::shared_ptr< const timeline::Project > project
Definition program_compiler.hpp:84
DirtyTrackSet dirty
Definition program_compiler.hpp:91
std::optional< CompileInvalidationInput > invalidation
Definition program_compiler.hpp:101
std::uint64_t max_expanded_note_events
Definition program_compiler.hpp:96
std::uint64_t document_revision
Definition program_compiler.hpp:90
Definition program.hpp:48
Definition program_compiler.hpp:24
RendererStatePolicy state_policy
Definition program_compiler.hpp:27
ProviderSelectorProgram provider
Definition program_compiler.hpp:26
timeline::ItemId track_id
Definition program_compiler.hpp:25
Definition rational_time.hpp:14
Immutable state published by a successful session commit.
Definition transaction.hpp:187
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19