Skip to main content

Crate rvoip_audio_core

Crate rvoip_audio_core 

Source
Expand description

RVOIP Audio Core Library

Comprehensive audio handling for VoIP applications, providing device management, format conversion, codec processing, and RTP audio stream integration.

§Architecture

The audio-core library is organized into several key modules:

  • Device Management: Cross-platform audio device access and control
  • Format Bridge: Audio format conversion and resampling
  • Pipeline: High-level audio streaming pipelines
  • RTP Integration: RTP payload encoding/decoding
  • Processing: Audio signal processing (AEC, AGC, etc.)

§Quick Start

§Device Enumeration

use rvoip_audio_core::device::AudioDeviceManager;
use rvoip_audio_core::types::AudioDirection;

let device_manager = AudioDeviceManager::new().await?;
 
// List available devices
let input_devices = device_manager.list_devices(AudioDirection::Input).await?;
let output_devices = device_manager.list_devices(AudioDirection::Output).await?;
 
println!("Found {} input devices", input_devices.len());
println!("Found {} output devices", output_devices.len());

§Audio Pipeline

use rvoip_audio_core::pipeline::AudioPipeline;
use rvoip_audio_core::types::{AudioFormat, AudioDirection};

// Create a basic audio pipeline
let mut pipeline = AudioPipeline::builder()
    .input_format(AudioFormat::pcm_8khz_mono())
    .output_format(AudioFormat::pcm_48khz_stereo())
    .build()
    .await?;

// Start the pipeline
pipeline.start().await?;

§Features

This crate supports multiple optional features:

  • device-cpal: CPAL-based audio device support (default)
  • format-conversion: Audio format conversion and resampling
  • processing-*: Audio signal processing features

Enable features in your Cargo.toml:

[dependencies]
rvoip-audio-core = { version = "0.1", features = ["full"] }

Re-exports§

pub use error::AudioError;
pub use error::AudioResult;
pub use types::AudioFormat;
pub use types::AudioFrame;
pub use types::AudioDirection;
pub use types::AudioDeviceInfo;
pub use types::AudioStreamConfig;
pub use types::AudioQualityMetrics;
pub use device::AudioDeviceManager;
pub use device::AudioDevice;
pub use pipeline::AudioPipeline;

Modules§

defaults
Default audio configuration constants
device
Audio device management
error
Error types for the audio-core library
format
Audio format conversion using dasp
pipeline
Audio pipeline
rtp
RTP integration
types
Core audio types and structures

Structs§

RtpPacket
An RTP packet with header and payload
SessionId
Unique identifier for a session

Constants§

VERSION
Audio-core library version

Traits§

MediaControl
Extension trait for media control operations