Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
audio_renderer_limits.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <compare>
4#include <cstdint>
5
6namespace pulp::playback {
7
11 std::uint32_t max_channels = 64;
12 std::uint32_t max_block_frames = 1u << 20u;
13 std::uint64_t max_asset_frames = 100'000'000u;
14 std::uint64_t max_tracks = 4'096u;
15 std::uint64_t max_clips = 1'000'000u;
16 std::uint32_t max_sample_rate_converters = 64u;
17 // Conservative retained-allocation charge, including container capacity,
18 // shared ownership, and per-allocation bookkeeping.
19 std::uint64_t max_sample_rate_converter_bytes = 256u * 1024u * 1024u;
20 std::uint64_t max_offline_stretch_input_frames = 100'000'000u;
21 std::uint64_t max_offline_stretch_output_frames = 100'000'000u;
22 // Offline Stretch uses scalar double planar input/output scratch to keep
23 // separate compiles bit-identical before bounded float artifact sealing.
24 std::uint64_t max_offline_stretch_input_bytes = 1024u * 1024u * 1024u;
25 std::uint64_t max_offline_stretch_scratch_allocation_bytes = 256u * 1024u * 1024u;
26 std::uint64_t max_offline_stretch_output_bytes = 1024u * 1024u * 1024u;
27 std::uint64_t max_offline_stretch_artifact_bytes = 512u * 1024u * 1024u;
28 std::uint64_t max_offline_stretch_cache_bytes = 2u << 30u;
29 std::uint32_t max_offline_stretch_artifacts = 256u;
33 std::uint32_t max_realtime_stretch_states = 8u;
34 // Per-allocation address ceiling passed to every prepared realtime
35 // stretcher. Aggregate admission separately sums each processor's
36 // compositional retained-storage geometry into the bank byte limit below.
37 std::uint64_t max_realtime_stretch_allocation_bytes = 64u * 1024u * 1024u;
38 std::uint64_t max_realtime_stretch_state_bytes = 512u * 1024u * 1024u;
40 constexpr auto operator<=>(const AudioRendererLimits&) const = default;
41};
42
43} // namespace pulp::playback
Definition audio_renderer.hpp:20
Shared compile and RT ceilings.
Definition audio_renderer_limits.hpp:10
std::uint32_t max_realtime_stretch_states
Definition audio_renderer_limits.hpp:33
std::uint64_t max_offline_stretch_output_bytes
Definition audio_renderer_limits.hpp:26
std::uint32_t max_block_frames
Definition audio_renderer_limits.hpp:12
std::uint64_t max_tracks
Definition audio_renderer_limits.hpp:14
std::uint64_t max_offline_stretch_cache_bytes
Definition audio_renderer_limits.hpp:28
std::uint64_t max_offline_stretch_output_frames
Definition audio_renderer_limits.hpp:21
std::uint64_t max_offline_stretch_input_bytes
Definition audio_renderer_limits.hpp:24
std::uint32_t offline_stretch_algorithm_version
Definition audio_renderer_limits.hpp:31
float offline_stretch_max_time_ratio
Definition audio_renderer_limits.hpp:32
constexpr auto operator<=>(const AudioRendererLimits &) const =default
std::uint64_t max_clips
Definition audio_renderer_limits.hpp:15
std::uint64_t max_asset_frames
Definition audio_renderer_limits.hpp:13
std::uint64_t max_offline_stretch_artifact_bytes
Definition audio_renderer_limits.hpp:27
float realtime_stretch_max_time_ratio
Definition audio_renderer_limits.hpp:39
std::uint32_t max_channels
Definition audio_renderer_limits.hpp:11
std::uint64_t max_offline_stretch_scratch_allocation_bytes
Definition audio_renderer_limits.hpp:25
std::uint64_t max_realtime_stretch_allocation_bytes
Definition audio_renderer_limits.hpp:37
std::uint32_t offline_stretch_max_block_frames
Definition audio_renderer_limits.hpp:30
std::uint64_t max_realtime_stretch_state_bytes
Definition audio_renderer_limits.hpp:38
std::uint64_t max_sample_rate_converter_bytes
Definition audio_renderer_limits.hpp:19
std::uint64_t max_offline_stretch_input_frames
Definition audio_renderer_limits.hpp:20
std::uint32_t max_offline_stretch_artifacts
Definition audio_renderer_limits.hpp:29
std::uint32_t max_sample_rate_converters
Definition audio_renderer_limits.hpp:16