47 constexpr explicit operator bool() const noexcept {
55RealtimeStretchStateBankAdmission
57 double sample_rate, std::uint32_t maximum_block_frames,
65 std::uint32_t maximum_block_frames,
88 std::uint32_t maximum_block_frames,
92 std::uint64_t playback_epoch) noexcept;
97 return states_.size();
100 return reserved_state_bytes_;
105 std::vector<std::unique_ptr<State>> states_;
106 std::uint64_t reserved_state_bytes_ = 0;
Definition program.hpp:290
RealtimeStretchStateBank()
std::size_t size() const noexcept
Definition realtime_stretch_state_bank.hpp:96
RealtimeStretchStateBankAdmission prepare(std::span< const RealtimeStretchStateSpec > specs, double sample_rate, std::uint32_t maximum_block_frames, const AudioRendererLimits &limits)
audio::RealtimeTimeStretchProcessor * state_for_epoch(timeline::ItemId clip_id, std::uint64_t playback_epoch) noexcept
RealtimeStretchStateBank(RealtimeStretchStateBank &&) noexcept
~RealtimeStretchStateBank()
const audio::RealtimeTimeStretchProcessor * find(timeline::ItemId clip_id) const noexcept
std::uint64_t reserved_state_bytes() const noexcept
Definition realtime_stretch_state_bank.hpp:99
Definition analyzer_provider.hpp:12
RealtimeTimeStretchPrepareStatus
Definition realtime_time_stretch.hpp:20
@ prepared
Definition realtime_time_stretch.hpp:21
RealtimeTimeStretchQuality
Definition realtime_time_stretch.hpp:15
@ low_latency
Definition realtime_time_stretch.hpp:17
Definition audio_renderer.hpp:20
RealtimeStretchStateBankAdmission admit_realtime_stretch_state_bank(std::span< const RealtimeStretchStateSpec > specs, double sample_rate, std::uint32_t maximum_block_frames, const AudioRendererLimits &limits) noexcept
Pure, allocation-free admission for one immutable bank shape.
@ None
Definition automation_recording.hpp:29
RealtimeStretchStateBankError
Definition realtime_stretch_state_bank.hpp:25
@ StateBytesExceeded
Definition realtime_stretch_state_bank.hpp:33
@ DuplicateIdentity
Definition realtime_stretch_state_bank.hpp:29
@ TimeRatioLimitExceeded
Definition realtime_stretch_state_bank.hpp:32
@ None
Definition realtime_stretch_state_bank.hpp:26
@ ChannelLimitExceeded
Definition realtime_stretch_state_bank.hpp:31
@ StateLimitExceeded
Definition realtime_stretch_state_bank.hpp:30
@ AllocationFailed
Definition realtime_stretch_state_bank.hpp:35
@ ProcessorPrepareRejected
Definition realtime_stretch_state_bank.hpp:34
@ InvalidConfiguration
Definition realtime_stretch_state_bank.hpp:27
RealtimeStretchStateBankAdmission admit_realtime_stretch_program(const PlaybackProgram &program, double sample_rate, std::uint32_t maximum_block_frames, const AudioRendererLimits &limits)
Control-thread aggregate admission for the exact immutable publication.
@ InvalidIdentity
Definition audio_renderer.hpp:30
Definition program_compiler.hpp:18
Audio-domain contract for a prepared realtime time-stretch stream.
Shared compile and RT ceilings.
Definition audio_renderer_limits.hpp:10
Definition realtime_stretch_state_bank.hpp:38
audio::RealtimeTimeStretchPrepareStatus processor_status
Definition realtime_stretch_state_bank.hpp:44
std::uint64_t limit
Definition realtime_stretch_state_bank.hpp:42
RealtimeStretchStateBankError code
Definition realtime_stretch_state_bank.hpp:39
std::uint64_t actual
Definition realtime_stretch_state_bank.hpp:41
std::uint64_t reserved_state_bytes
Definition realtime_stretch_state_bank.hpp:43
timeline::ItemId clip_id
Definition realtime_stretch_state_bank.hpp:40
Definition realtime_stretch_state_bank.hpp:17
float max_time_ratio
Definition realtime_stretch_state_bank.hpp:21
timeline::ItemId clip_id
Definition realtime_stretch_state_bank.hpp:18
audio::RealtimeTimeStretchQuality quality
Definition realtime_stretch_state_bank.hpp:20
std::uint32_t channels
Definition realtime_stretch_state_bank.hpp:19
constexpr auto operator<=>(const RealtimeStretchStateSpec &) const =default
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19