UNPKG

pw-client

Version:

Node.js wrapper for developing PipeWire clients

51 lines (50 loc) 1.69 kB
/** * Buffer configuration and management for audio streams. * Provides both static and dynamic buffer sizing strategies. */ import { AudioQuality } from "./audio-quality.mjs"; /** * Buffer sizing strategy for audio streams. */ export declare enum BufferStrategy { /** Minimal latency (~5ms), smallest buffers (may cause underruns on slow systems) */ MinimalLatency = "minimal-latency", /** Low latency (~10ms), good for real-time applications */ LowLatency = "low-latency", /** Balanced latency and reliability (~20ms, recommended default) */ Balanced = "balanced", /** Smooth playback (~40ms), maximum reliability against dropouts */ Smooth = "smooth", /** User specifies target latency in milliseconds */ MaxLatency = "max-latency", /** User specifies exact buffer size in bytes */ MaxSize = "max-size", /** User specifies quantum multiplier (for PipeWire experts) */ QuantumMultiplier = "quanta" } /** * Configuration for audio stream buffering behavior. */ export type BufferConfig = { strategy: BufferStrategy.MinimalLatency; } | { strategy: BufferStrategy.LowLatency; } | { strategy: BufferStrategy.Balanced; } | { strategy: BufferStrategy.Smooth; } | { strategy: BufferStrategy.MaxLatency; milliseconds: number; } | { strategy: BufferStrategy.MaxSize; bytes: number; } | { strategy: BufferStrategy.QuantumMultiplier; multiplier: number; }; /** * Get recommended buffer configuration for an audio quality level. * Returns user-friendly buffer strategies with appropriate latency settings. */ export declare function getBufferConfigForQuality(quality: AudioQuality): BufferConfig;