Debug du stream
This commit is contained in:
@@ -10,35 +10,4 @@ host:
|
|||||||
buffer_capacity: 200
|
buffer_capacity: 200
|
||||||
enable_console: true
|
enable_console: true
|
||||||
min_level: "INFO"
|
min_level: "INFO"
|
||||||
|
|
||||||
mediarenderer:
|
|
||||||
|
|
||||||
mediaserver:
|
|
||||||
sources:
|
|
||||||
radio_paradise:
|
|
||||||
enabled: true
|
|
||||||
cache:
|
|
||||||
max_blocks_remembered: 5
|
|
||||||
track_id_hash_bytes: 512
|
|
||||||
history:
|
|
||||||
max_tracks: 100
|
|
||||||
persistence_backend: sqlite
|
|
||||||
database_path: /var/lib/pmo/paradise_history.db
|
|
||||||
activity:
|
|
||||||
cooling_timeout_seconds: 180
|
|
||||||
polling:
|
|
||||||
interval_high_buffer: 120
|
|
||||||
interval_medium_buffer: 60
|
|
||||||
interval_low_buffer: 20
|
|
||||||
backoff_on_error:
|
|
||||||
initial: 20
|
|
||||||
max: 300
|
|
||||||
multiplier: 2.0
|
|
||||||
stream:
|
|
||||||
metadata_format: icy
|
|
||||||
enable_gapless: true
|
|
||||||
buffer_size_bytes: 65536
|
|
||||||
api:
|
|
||||||
base_url: https://api.radioparadise.com
|
|
||||||
timeout_seconds: 30
|
|
||||||
user_agent: "PMO-RadioParadise/1.0"
|
|
||||||
@@ -333,7 +333,13 @@ impl ParadiseClientStream {
|
|||||||
|
|
||||||
pub fn into_byte_stream(self) -> BoxStream<'static, Result<Bytes, anyhow::Error>> {
|
pub fn into_byte_stream(self) -> BoxStream<'static, Result<Bytes, anyhow::Error>> {
|
||||||
let channel = self.channel.clone();
|
let channel = self.channel.clone();
|
||||||
|
let client_id = self.client_id.clone();
|
||||||
let stream = try_stream! {
|
let stream = try_stream! {
|
||||||
|
tracing::info!(
|
||||||
|
channel = channel.descriptor().slug,
|
||||||
|
client_id = %client_id,
|
||||||
|
"🎧 Client connecting to stream"
|
||||||
|
);
|
||||||
channel.ensure_started().await?;
|
channel.ensure_started().await?;
|
||||||
let mut index = 0usize;
|
let mut index = 0usize;
|
||||||
loop {
|
loop {
|
||||||
|
|||||||
@@ -600,6 +600,12 @@ impl WorkerState {
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow!("Cache audio error: {e}"))?;
|
.map_err(|e| anyhow!("Cache audio error: {e}"))?;
|
||||||
|
|
||||||
|
// Wait for the file to be completely written before continuing
|
||||||
|
self.cache_manager
|
||||||
|
.wait_audio_ready(&audio_pk)
|
||||||
|
.await
|
||||||
|
.map_err(|e| anyhow!("Wait audio ready error: {e}"))?;
|
||||||
|
|
||||||
metadata.cached_audio_pk = Some(audio_pk.clone());
|
metadata.cached_audio_pk = Some(audio_pk.clone());
|
||||||
self.cache_manager
|
self.cache_manager
|
||||||
.update_metadata(track_id.clone(), metadata)
|
.update_metadata(track_id.clone(), metadata)
|
||||||
@@ -680,6 +686,12 @@ impl WorkerState {
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow!("Cache audio error: {e}"))?;
|
.map_err(|e| anyhow!("Cache audio error: {e}"))?;
|
||||||
|
|
||||||
|
// Wait for the file to be completely written before continuing
|
||||||
|
self.cache_manager
|
||||||
|
.wait_audio_ready(&audio_pk)
|
||||||
|
.await
|
||||||
|
.map_err(|e| anyhow!("Wait audio ready error: {e}"))?;
|
||||||
|
|
||||||
metadata.cached_audio_pk = Some(audio_pk.clone());
|
metadata.cached_audio_pk = Some(audio_pk.clone());
|
||||||
self.cache_manager
|
self.cache_manager
|
||||||
.update_metadata(track_id.clone(), metadata.clone())
|
.update_metadata(track_id.clone(), metadata.clone())
|
||||||
|
|||||||
Reference in New Issue
Block a user