Realtime-produced, fixed-capacity, trivially-copyable probe summary. More...
#include <audio_probe_snapshot.hpp>
Public Attributes | |
| double | sample_rate = 0.0 |
| std::uint32_t | block_size = 0 |
| std::uint32_t | channel_count = 0 |
| AudioProbeStage | stage_id = AudioProbeStage::kUnknown |
| std::uint64_t | sequence_number = 0 |
| Monotonic per-publish counter. | |
| float | peak [kMaxChannels] = {} |
| Peak absolute sample value this block, per channel (linear, >= 0). | |
| float | rms [kMaxChannels] = {} |
| RMS of this block, per channel (linear, >= 0). | |
| float | peak_max = 0.0f |
| Max peak across active channels (linear). | |
| float | rms_max = 0.0f |
| Max RMS across active channels (linear). | |
| std::uint64_t | clip_count = 0 |
| Samples seen with |x| > clip ceiling, summed over all blocks/channels. | |
| std::uint64_t | nan_inf_count = 0 |
| Samples seen as NaN or Inf, summed over all blocks/channels. | |
| std::uint64_t | clipped_blocks = 0 |
| BLOCKS that contained at least one clipped sample (per-block tally, not the per-sample clip_count). | |
| std::uint64_t | nan_blocks = 0 |
| BLOCKS that contained at least one NaN/Inf sample (per-block tally, not the per-sample nan_inf_count). | |
| std::uint64_t | callbacks = 0 |
| Number of analyzed callbacks (blocks) since prepare(). | |
| std::uint64_t | silence_run_blocks = 0 |
| Consecutive blocks (most recent run) below the silence threshold. | |
| std::uint64_t | dropped_capture_frames = 0 |
| Capture frames the producer could not enqueue because the ring was full (only meaningful when last-N capture is enabled). | |
| std::uint64_t | overwritten_capture_frames = 0 |
| Capture frames overwritten in the ring before a consumer read them (only meaningful when overwrite-on-full capture is enabled). | |
Static Public Attributes | |
| static constexpr int | kMaxChannels = 32 |
| Compile-time channel ceiling. | |
Realtime-produced, fixed-capacity, trivially-copyable probe summary.
Per-channel metrics are stored in fixed arrays sized to kMaxChannels. Only the first channel_count entries are meaningful. Aggregate (across active channels) scalars are also provided for cheap UI consumption.
| std::uint32_t pulp::audio::AudioProbeSnapshot::block_size = 0 |
| std::uint64_t pulp::audio::AudioProbeSnapshot::callbacks = 0 |
Number of analyzed callbacks (blocks) since prepare().
| std::uint32_t pulp::audio::AudioProbeSnapshot::channel_count = 0 |
| std::uint64_t pulp::audio::AudioProbeSnapshot::clip_count = 0 |
Samples seen with |x| > clip ceiling, summed over all blocks/channels.
| std::uint64_t pulp::audio::AudioProbeSnapshot::clipped_blocks = 0 |
BLOCKS that contained at least one clipped sample (per-block tally, not the per-sample clip_count).
This is what AudioStats::clipped_blocks mirrors.
| std::uint64_t pulp::audio::AudioProbeSnapshot::dropped_capture_frames = 0 |
Capture frames the producer could not enqueue because the ring was full (only meaningful when last-N capture is enabled).
0 otherwise.
|
staticconstexpr |
Compile-time channel ceiling.
The probe's runtime capacity (set at prepare()) must not exceed this. 32 covers ambisonic/surround layouts while keeping the snapshot small enough to copy through a TripleBuffer.
| std::uint64_t pulp::audio::AudioProbeSnapshot::nan_blocks = 0 |
BLOCKS that contained at least one NaN/Inf sample (per-block tally, not the per-sample nan_inf_count).
Mirrored by AudioStats::nan_blocks.
| std::uint64_t pulp::audio::AudioProbeSnapshot::nan_inf_count = 0 |
Samples seen as NaN or Inf, summed over all blocks/channels.
| std::uint64_t pulp::audio::AudioProbeSnapshot::overwritten_capture_frames = 0 |
Capture frames overwritten in the ring before a consumer read them (only meaningful when overwrite-on-full capture is enabled).
0 otherwise.
| float pulp::audio::AudioProbeSnapshot::peak[kMaxChannels] = {} |
Peak absolute sample value this block, per channel (linear, >= 0).
| float pulp::audio::AudioProbeSnapshot::peak_max = 0.0f |
Max peak across active channels (linear).
| float pulp::audio::AudioProbeSnapshot::rms[kMaxChannels] = {} |
RMS of this block, per channel (linear, >= 0).
| float pulp::audio::AudioProbeSnapshot::rms_max = 0.0f |
Max RMS across active channels (linear).
| double pulp::audio::AudioProbeSnapshot::sample_rate = 0.0 |
| std::uint64_t pulp::audio::AudioProbeSnapshot::sequence_number = 0 |
Monotonic per-publish counter.
A reader stores the last value it saw; a gap means snapshots were dropped between reads (TripleBuffer is latest-wins). Starts at 0; the first published snapshot is 1.
| std::uint64_t pulp::audio::AudioProbeSnapshot::silence_run_blocks = 0 |
Consecutive blocks (most recent run) below the silence threshold.
Reset to 0 by the first non-silent block. Lets a UI say "silent for N blocks".
| AudioProbeStage pulp::audio::AudioProbeSnapshot::stage_id = AudioProbeStage::kUnknown |