Commit Graph

26 Commits

Author SHA1 Message Date
Claude
e4e3e91ecb Ajouter le prébuffering configurable au cache pour éviter les erreurs de lecture prématurée
Problème :
Après la correction de la race condition précédente, les fichiers étaient créés
sur disque mais la lecture commençait immédiatement, avant qu'il y ait
suffisamment de données. Cela causait des erreurs FLAC "Expected one more byte"
car le décodeur essayait de lire un fichier incomplet.

Solution - Prébuffering :
Attendre qu'une quantité minimale de données (512 KB par défaut, ~5 secondes de
FLAC) soit téléchargée avant que add_from_url() et add_from_reader() retournent
le pk. Cela permet au cache progressif de fonctionner correctement : le fichier
a suffisamment de données pour commencer la lecture pendant que le téléchargement
continue en arrière-plan.

Changements :
- Ajout d'un champ min_prebuffer_size dans Cache<C> (défaut: 512 KB)
- Ajout de méthodes set_prebuffer_size() et get_prebuffer_size()
- Ajout de la constante DEFAULT_PREBUFFER_SIZE (512 KB)
- Modification de add_from_url() : utilise wait_until_min_size()
- Modification de add_from_reader() : utilise wait_until_min_size()
- Cas où download déjà en cours : attend également le prébuffering

Résultat testé :
✓ L'exemple play_and_cache fonctionne sans erreur FLAC
✓ Le prébuffering garantit suffisamment de données avant la lecture
✓ Le cache progressif fonctionne : lecture pendant le téléchargement
✓ Configurable : peut être ajusté selon les besoins (0 = désactivé)
2025-11-06 08:05:41 +00:00
Claude
15eb4da669 Corriger la race condition dans add_from_url et add_from_reader
Problème :
Les fonctions add_from_url() et add_from_reader() retournaient le pk
immédiatement après avoir lancé l'ingestion en arrière-plan, mais AVANT
que le fichier soit créé sur disque. Cela causait une erreur "Cache entry
not found" quand la playlist appelait is_valid_pk() qui vérifie que le
fichier existe.

Solution :
Attendre (jusqu'à 5 secondes max) que le fichier soit créé sur disque
avant de retourner le pk. Cela permet au cache progressif de fonctionner
correctement : le fichier existe et peut commencer à être lu pendant que
le téléchargement continue en arrière-plan.

Changements :
- add_from_url() : attente de la création du fichier avant retour
- add_from_reader() : attente de la création du fichier avant retour
- Cas où download déjà en cours : attente également de la création du fichier

Résultat testé :
✓ L'exemple play_and_cache fonctionne maintenant sans erreur
✓ Le pipeline de download se termine avec succès
✓ Les pistes sont correctement ajoutées à la playlist
2025-11-06 07:54:09 +00:00
Claude
5d88d3a25e refactor: Fix compilation warnings across multiple crates
- Remove unused imports (Filter, Digest, Resource, etc.)
- Prefix unused variables with underscore (_pk, _size)
- Fix snake_case naming for local variables
- Remove unused ArgumentError enum in pmoupnp
- Apply cargo fix suggestions for unused imports

Remaining warnings are async_fn_in_trait style warnings which
would require API breaking changes to address.
2025-11-04 22:20:35 +00:00
8389d1a78e Récupération de l'erreur git cleaning 2025-11-04 21:13:06 +01:00
7d907e7429 Implémentation des pmometadata dans pmocacheaudio 2025-11-03 14:45:37 +01:00
a6ed30e0c7 Update la web app pour tirer partie du nouveau systeme de cache 2025-10-29 22:36:36 +01:00
5b60fdbe1d Refactoring de pmoflac -factorisation de code ogg et opus 2025-10-29 22:36:36 +01:00
93db9c25e7 la crate des playlists 2025-10-29 22:36:36 +01:00
c5569cdcf2 Debuggage du streaming des block radioparadise 2025-10-29 22:35:53 +01:00
1d0a1c22f4 Corrigeons la base de donnée des caches... 2025-10-29 22:35:53 +01:00
e5fbf372c4 On continue le refactoring des sources 2025-10-29 22:35:10 +01:00
de40b5b90c On complète la gestion du cache pour les métadonnées 2025-10-29 22:35:10 +01: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
37c3d9daf6 refactoring des caches 2025-10-25 17:46:53 +02:00
f510e59b1a Patch of the web logger 2025-10-20 19:50:58 +02:00
f3e6c59143 Correction de la source radio paradise pour avoir un sous dossier par canal 2025-10-20 16:18:21 +02:00
1371f5d1d8 Généralisation des caches permettant de passer des reader générique et pas seulement de flux http. 2025-10-20 16:18:21 +02:00
776c535862 amélioration de la webapp 2025-10-20 16:18:21 +02:00
032b55a6f1 ebuggage transcodage audio en flac 2025-10-20 16:18:21 +02:00
ebc15b0518 nouveau mediarenderer 2025-10-18 14:33:52 +02:00
d768ab7fd5 Refactoring du pmoaudiocache 2025-10-17 23:19:17 +02:00
2e4b69e758 adaptation de la crate pmocovers 2025-10-17 22:52:36 +02:00
fdd6cb6401 Ajout de fonctionnalité de download asynchrone au pmocache 2025-10-17 22:14:30 +02:00
2f9abff6f1 Refactoring manuel 2025-10-17 19:28:04 +02:00
447af737a6 Debug le menu debug 2025-10-13 11:31:14 +02:00