Commit Graph

10 Commits

Author SHA1 Message Date
fc49c79b34 feat(pmoparadise): migrate channel IDs to u16 and use dynamic registry
Replaces the static ALL_CHANNELS array with a dynamic, thread-safe registry fetched via the Radio Paradise API. Migrates all channel identifiers from u8 to u16 across client, config, server, and example modules to support expanded ID ranges. Updates validation to runtime lookups, converts builders to async, and adds local cover caching. Bumps version from 0.3.61 to 0.3.62.
2026-07-11 22:57:49 +02:00
d9ad056933 Fabriquans un object Channel dans RadioRaradise 2025-11-15 14:59:41 +01:00
4e27255305 Nouvelle tentative de broadcast avec considération d'un temps d'expiration. 2025-11-15 13:53:35 +01:00
1c2d30cbe9 debuggage des stream 2025-11-15 12:21:30 +01:00
Claude
69cb3eb80a Fix stream_block buffer cycling issue with FFPlay
PROBLEM:
When streaming Radio Paradise blocks via HTTP using FFPlay, the buffer
would cycle between 0KB and ~130KB approximately once per second, causing
audio dropouts and interruptions. VLC worked fine, but FFPlay was sensitive
to the burst transmission pattern.

ROOT CAUSE:
In StreamingFlacSink::broadcast_flac_stream(), the broadcaster was reading
8KB (8192 bytes) at a time from the FLAC encoder and sending the entire
chunk at once to all HTTP clients. This created a "burst" pattern:
- Read 8KB from encoder
- Send entire 8KB chunk to all clients
- Sleep if ahead of real-time pacing
- Repeat

FFPlay's buffer would fill rapidly with each 8KB burst, then drain completely
before the next burst arrived, causing the observed cycling behavior.

SOLUTION:
Reduced the HTTP broadcast buffer size from 8KB to 512 bytes in
StreamingFlacSink::broadcast_flac_stream(). This creates a much smoother,
more continuous data flow that FFPlay can handle without buffer cycling.

The 512-byte buffer size is:
- Small enough to prevent burst transmission
- Large enough to avoid excessive overhead
- Sufficient for smooth streaming with real-time pacing

CHANGES:
- Restore stream_block.rs example from git history
- Restore StreamingFlacSink and StreamingOggFlacSink from git history
- Add "streaming" feature to pmoaudio-ext
- Reduce broadcast buffer from 8192 to 512 bytes
- Update pmoparadise to use pmoaudio-ext streaming feature

TESTING:
Test with FFPlay to verify smooth buffering:
```bash
cargo run --example stream_block --features full -- 0
# In another terminal:
ffplay http://localhost:8080/test/stream
```

Watch the "aq=" value in FFPlay output. It should now remain stable
instead of cycling between 0KB and 130KB.
2025-11-13 06:59:27 +00:00
Claude
69831a17df refactor: Remove obsolete streaming API (stream.rs, track.rs, per-track feature)
The old streaming API has been completely replaced by RadioParadiseStreamSource
which integrates directly with the pmoaudio pipeline.

Removed:
- src/stream.rs (179 lines) - BlockStream, stream_block(), download_block()
- src/track.rs - Per-track extraction functionality
- examples/stream_block.rs - Obsolete streaming example
- examples/extract_track.rs - Per-track extraction example
- Feature "per-track" and dependencies (hound, tempfile)

Updated:
- Cargo.toml: Removed per-track feature and obsolete examples
- lib.rs: Removed module declarations and re-exports

The new RadioParadiseStreamSource provides:
- Direct integration with pmoaudio pipeline
- FLAC decoding via pmoflac
- Automatic TrackBoundary insertion
- Better performance and lower latency
2025-11-05 09:15:11 +00:00
fc093743c1 Refactoring du cache pour une meilleur gestion des metadonnées 2025-10-29 22:35:10 +01:00
df138565af meulleur gestion des routes de streaming 2025-10-26 09:18:22 +01:00
776c535862 amélioration de la webapp 2025-10-20 16:18:21 +02:00
ffecc219b5 implemente pmoparadise 2025-10-12 21:34:59 +02:00