Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
sample_memory_governor.hpp File Reference
#include <algorithm>
#include <cstdint>
#include <limits>
#include <memory>
#include <mutex>
#include <optional>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  pulp::audio::SampleMemoryGovernorEpoch
struct  pulp::audio::SampleMemoryGovernorStats
struct  pulp::audio::detail::SampleMemoryGovernorState
class  pulp::audio::SampleMemoryLease
 Move-only reservation against one shared sampler-memory cap. More...
struct  pulp::audio::SampleMemoryReserveResult
class  pulp::audio::SampleMemoryGovernorHandle
 Copyable lifetime-safe reservation/stats endpoint. More...
class  pulp::audio::SampleMemoryGovernor
 Shared off-audio-thread admission governor for resident preload heads and stream-cache pages. More...

Namespaces

namespace  pulp
namespace  pulp::audio
namespace  pulp::audio::detail

Enumerations

enum class  pulp::audio::SampleMemoryCategory : std::uint8_t { pulp::audio::Preload , pulp::audio::Page }
enum class  pulp::audio::SampleMemoryReserveStatus : std::uint8_t {
  pulp::audio::Acquired , pulp::audio::NotPrepared , pulp::audio::InvalidByteCount , pulp::audio::InvalidCategory ,
  pulp::audio::BudgetExceeded
}

Functions

void pulp::audio::detail::saturating_add (std::uint64_t &target, std::uint64_t value) noexcept
std::optional< std::uint64_t > pulp::audio::checked_sample_storage_bytes (std::uint32_t channels, std::uint64_t frames_per_buffer, std::uint32_t buffer_count=1, std::uint32_t bytes_per_sample=sizeof(float)) noexcept
 Checked planar sample-storage formula shared by preload and page admission.