This commit refactors the WebRenderer to use a server-side streaming architecture with OGG-FLAC sink instead of the previous WebSocket-based approach. The changes include: - Replaced WebSocket communication with HTTP streaming using DirectOggFlacSink - Implemented a new pipeline architecture with dedicated handlers for UPnP commands - Added new modules for registration, registry, and streaming - Updated the renderer to work with a pipeline control system - Removed old WebSocket session management - Added support for HTTP streaming with gapless playback - Updated dependencies and features for the new architecture The WebRenderer now acts as a MediaRenderer UPnP device that serves audio streams via HTTP endpoints, with commands relayed to the audio pipeline through a new control system.
30 lines
859 B
Rust
30 lines
859 B
Rust
//! PMO Web Renderer — Transforme un navigateur en MediaRenderer UPnP privé
|
|
//!
|
|
//! Architecture serveur-side streaming :
|
|
//! - Le serveur ouvre la source audio (fichier/HTTP) et l'encode en FLAC
|
|
//! - Le navigateur lit un flux FLAC via GET /api/webrenderer/{id}/stream
|
|
//! - Les commandes UPnP sont relayées vers le pipeline audio via PipelineControl
|
|
|
|
mod error;
|
|
mod handlers;
|
|
mod messages;
|
|
mod pipeline;
|
|
mod register;
|
|
mod registry;
|
|
mod renderer;
|
|
mod state;
|
|
mod stream;
|
|
|
|
#[cfg(feature = "pmoserver")]
|
|
mod config;
|
|
|
|
pub use error::WebRendererError;
|
|
pub use messages::PlaybackState;
|
|
pub use pipeline::{PipelineControl, PipelineHandle};
|
|
pub use registry::{RendererRegistry, WebRendererInstance};
|
|
pub use renderer::{FactoryError, WebRendererFactory};
|
|
pub use state::{RendererState, SharedState};
|
|
|
|
#[cfg(feature = "pmoserver")]
|
|
pub use config::WebRendererExt;
|