Pour une fois que j'avais un peu de temps ...
De plus, le programmeur de mpd n'a pas mis de commentaires dans son code, par contre, il est très bien structuré avec des noms de variables compréhensifs.
Avec un peu de recherche, cela a été relativement facile pour moi ... Et surtout une bonne expérience
[résolu] mpd, errno: Failed to read: Input/output error
Modérateurs : Francois, maxty01
-
- Messages : 1
- Enregistré le : lun. 14 oct. 2019 20:37
Re: mpd, errno: Failed to read: Input/output error
Coucou tout le monde. Merci d’exposer cela avec nous, je trouve cela vraiment intéressant ! Toutefois, un détail me trottine un peu, je voudrai vous l’exposer si c’est possible. Merci de votre retour Bonne continuation à tous Amicalementlhebui a écrit : ↑ven. 16 août 2019 17:43Voici mes avancées sur le sujet.
Etant donné que je ne peux pas installer la dernière version pour pouvoir utiliser "input_cache" car la compilation réclame des paquets avec des versions auxquelles je n'ai pas accès,
étant donné que le paramètre "buffer_size" n'a pas d'effet,
étant donné que dans le fichier de paramétrage /etc/mpd.conf aucun paramètre ne définie la taille du buffer d'entrée et
étant donné que je suis sûr que la version 0.19 a un buffer d'entrée, je décide donc de chercher dans le code source de la version 0.19.
1/ Je télécharge sur mon pc la version de mon mpd 0.19 que nous retrouvons sur le site officiel mpd : https://www.musicpd.org/download/mpd/0.19/ avec cette commande :puis je le décompresse.Code : Tout sélectionner
wget https://www.musicpd.org/download/mpd/0.19/mpd-0.19.21.tar.gz
2/ je cherche dans le fichier /etc/mpd.conf un paramètre assez explicite et long pour faire une recherche de texte avec searchmonkey dans le répertoire décompressé. Je choisis "gapless_mp3_playback" par exemple ...
Je trouve plusieurs fichiers contenant ce terme (5) mais je veux connaître le fichier qui contient tous les paramètres : mpd-0.19.21/src/config/ConfigTemplates.cxx
Je trouve cette liste intéressante :3/ Dans ces paramètres, je trouve un paramètre qui semble correspondre à ce que je cherche, c.a.d. un buffer audio d'entrée : "audio_buffer_size"Code : Tout sélectionner
const ConfigTemplate config_templates[] = { { "music_directory", false, false }, { "playlist_directory", false, false }, { "follow_inside_symlinks", false, false }, { "follow_outside_symlinks", false, false }, { "db_file", false, false }, { "sticker_file", false, false }, { "log_file", false, false }, { "pid_file", false, false }, { "state_file", false, false }, { "state_file_interval", false, false }, { "restore_paused", false, false }, { "user", false, false }, { "group", false, false }, { "bind_to_address", true, false }, { "port", false, false }, { "log_level", false, false }, { "zeroconf_name", false, false }, { "zeroconf_enabled", false, false }, { "password", true, false }, { "default_permissions", false, false }, { "audio_output", true, true }, { "audio_output_format", false, false }, { "mixer_type", false, false }, { "replaygain", false, false }, { "replaygain_preamp", false, false }, [url=http://www.rachat-de-credit-simulation.com/simulation] Simulation de rachat de crédit [/url] { "replaygain_missing_preamp", false, false }, { "replaygain_limit", false, false }, { "volume_normalization", false, false }, { "samplerate_converter", false, false }, { "audio_buffer_size", false, false }, { "buffer_before_play", false, false }, { "http_proxy_host", false, false }, { "http_proxy_port", false, false }, { "http_proxy_user", false, false }, { "http_proxy_password", false, false }, { "connection_timeout", false, false }, { "max_connections", false, false }, { "max_playlist_length", false, false }, { "max_command_list_size", false, false }, { "max_output_buffer_size", false, false }, { "filesystem_charset", false, false }, { "id3v1_encoding", false, false }, { "metadata_to_use", false, false }, { "save_absolute_paths_in_playlists", false, false }, { "decoder", true, true }, { "input", true, true }, { "gapless_mp3_playback", false, false }, { "playlist_plugin", true, true }, { "auto_update", false, false }, { "auto_update_depth", false, false }, { "despotify_user", false, false }, { "despotify_password", false, false}, { "despotify_high_bitrate", false, false }, { "filter", true, true }, { "database", false, true }, { "neighbors", true, true }, };
4/ Je fais une recherche avec "audio_buffer_size" et je trouve 5 fichiers dont le main.cxxEt je peux lire que si il n'y a pas de valeur définie, le buffer_size = DEFAULT_BUFFER_SIZECode : Tout sélectionner
static void initialize_decoder_and_player(void) { const struct config_param *param; size_t buffer_size; param = config_get_param(CONF_AUDIO_BUFFER_SIZE); if (param != nullptr) { char *test; long tmp = strtol(param->value.c_str(), &test, 10); if (*test != '\0' || tmp <= 0 || tmp == LONG_MAX) FormatFatalError("buffer size \"%s\" is not a " "positive integer, line %i", param->value.c_str(), param->line); buffer_size = tmp; } else buffer_size = DEFAULT_BUFFER_SIZE; buffer_size *= 1024;
Plus haut dans le fichier :5/ Je rentre un nouveau paramètre dans le fichier /etc/mpd.conf avec le paramètre suivant :Code : Tout sélectionner
static constexpr unsigned DEFAULT_BUFFER_SIZE = 4096;
soit 4 fois la taille initiale du buffer ...Code : Tout sélectionner
audio_buffer_size "16384"
6/ essai avec 9 heures de musique et après je regarde le fichier /var/log/mpd/mpd.log pour compter le nombre d'erreurs en lecture/écriture ....
C'est encours ...