Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
spectral_frame_codec.hpp File Reference
#include <bit>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <memory>
#include <new>
#include <optional>
#include <span>

Go to the source code of this file.

Classes

struct  pulp::signal::SpectralStreamGeometry
 Offline profile 1: symmetric float Hann, unscaled forward FFT, 1/N inverse, local-origin phase, indexed channels, full-overlap startup and squared-window OLA normalization (threshold 1e-9f). More...
struct  pulp::signal::SpectralFrameStamp
struct  pulp::signal::OwnedSpectralStream
 Arrays have exact element counts, with no hidden vector capacity. More...
struct  pulp::signal::EncodedSpectralStream
struct  pulp::signal::SpectralCodecMemory
struct  pulp::signal::SpectralCodecResult< T >
struct  pulp::signal::spectral_codec_detail::Shape

Namespaces

namespace  pulp
namespace  pulp::signal
namespace  pulp::signal::spectral_codec_detail

Enumerations

enum class  pulp::signal::SpectralCodecError {
  pulp::signal::None , pulp::signal::UnsupportedFormat , pulp::signal::InvalidGeometry , pulp::signal::ResourceLimit ,
  pulp::signal::InvalidLength , pulp::signal::InvalidChronology , pulp::signal::InvalidComponent , pulp::signal::NoncanonicalZero ,
  pulp::signal::AllocationFailure
}

Functions

SpectralCodecError pulp::signal::spectral_codec_detail::shape (const SpectralStreamGeometry &g, std::uint64_t count, Shape &s) noexcept
std::uint64_t pulp::signal::spectral_codec_detail::read (std::span< const std::uint8_t > b, std::size_t p, unsigned n) noexcept
void pulp::signal::spectral_codec_detail::write (std::uint8_t *b, std::size_t p, std::uint64_t v, unsigned n) noexcept
SpectralCodecError pulp::signal::spectral_codec_detail::component (std::uint32_t bits, std::uint64_t index, std::uint32_t fft, bool strict) noexcept
SpectralCodecResult< OwnedSpectralStream > pulp::signal::make_spectral_stream (SpectralStreamGeometry g, std::uint64_t count, std::uint64_t budget=spectral_codec_memory_budget) noexcept
 Allocate an editable owned stream with canonical chronology and zero bins.
SpectralCodecResult< OwnedSpectralStream > pulp::signal::decode_spectral_stream (std::span< const std::uint8_t > bytes, std::uint64_t budget=spectral_codec_memory_budget) noexcept
 Validate the whole input before allocating; no partial stream is returned.
SpectralCodecResult< EncodedSpectralStream > pulp::signal::encode_spectral_stream (const OwnedSpectralStream &in, std::uint64_t budget=spectral_codec_memory_budget) noexcept
 Canonicalize signed bin zeros without mutating the caller. Offline only.

Variables

constexpr std::uint64_t pulp::signal::spectral_codec_memory_budget = 128ULL * 1024 * 1024