Merge pull request '⬆️ version bump to v0.3.46' (#94) from push-lprskpllksrm into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 9m8s
All checks were successful
Build and Push Docker Image / build (push) Successful in 9m8s
Reviewed-on: #94
This commit was merged in pull request #94.
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -4,7 +4,7 @@ version = 4
|
||||
|
||||
[[package]]
|
||||
name = "PMOMusic"
|
||||
version = "0.3.44"
|
||||
version = "0.3.45"
|
||||
dependencies = [
|
||||
"axum 0.8.7",
|
||||
"console-subscriber",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "PMOMusic"
|
||||
version = "0.3.45"
|
||||
version = "0.3.46"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -693,14 +693,32 @@ impl MusicRenderer {
|
||||
self.set_playback_source(PlaybackSource::None);
|
||||
self.clear_has_played_flag();
|
||||
} else if self.is_playing_from_queue() {
|
||||
// Only auto-advance if we have actually seen a PLAYING state
|
||||
// since the track was started. This prevents auto-advance on
|
||||
// transient STOPPED states during track initialization.
|
||||
if self.check_and_clear_has_played_flag() {
|
||||
debug!(
|
||||
renderer = self.info.friendly_name(),
|
||||
"Renderer stopped after queue-driven playback; advancing"
|
||||
);
|
||||
let has_played = self.check_and_clear_has_played_flag();
|
||||
|
||||
// ✅ CORRECTION BUG PRODUCTION: Garde fou contre latence DB
|
||||
// Si la base de données est saturée (mutex >400ms) on rate parfois l'événement PLAYING.
|
||||
// On autorise l'auto-avance si:
|
||||
// 1. On a bien vu PLAYING OU
|
||||
// 2. Le titre a été lancé depuis plus de 20 secondes
|
||||
let track_start = self.state.lock().unwrap().track_start_time;
|
||||
let elapsed = track_start
|
||||
.and_then(|t| t.elapsed().ok())
|
||||
.unwrap_or_default();
|
||||
let force_advance = elapsed.as_secs() > 20;
|
||||
|
||||
if has_played || force_advance {
|
||||
if force_advance {
|
||||
debug!(
|
||||
renderer = self.info.friendly_name(),
|
||||
elapsed_sec = elapsed.as_secs(),
|
||||
"⚠️ On force l'auto-avance: on a raté l'événement PLAYING (latence DB)"
|
||||
);
|
||||
} else {
|
||||
debug!(
|
||||
renderer = self.info.friendly_name(),
|
||||
"Renderer stopped after queue-driven playback; advancing"
|
||||
);
|
||||
}
|
||||
// Use catch_unwind to prevent panics in play_next_from_queue
|
||||
// from poisoning the backend mutex
|
||||
// Also add retry logic for transient errors from renderer
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.3.45
|
||||
0.3.46
|
||||
|
||||
Reference in New Issue
Block a user