Agrandir les tampons réservé au son

De façon à améliorer les performances temps réel, les tampons réservés au son pour tous les pilotes sonores de Linux sont limités entre 128k et 64k. Pour enregistrer de l'audio et de la vidéo simultanément et pour la plupart des enregistrements audio, ceci cause des pertes de données (dropouts). L'application des patches du noyau preempt et low-latency rendent possible plus d'enregistrements audio mais n'améliorent pas la vidéo et audio simultanées. C'est pour ça qu'il vous faut modifier votre noyau.

Pour voir si vos tampons pour l'audio sont suffisants, lancez le programme soundtest inclus avec Cinelerra sans aucune reproduction ou enregistrement actifs. Ceci allouera les tampons les plus gros possibles et les affichera. Si TOTAL BYTES AVAILABLE est en-dessous de 131 072, vous devrez envisager d'agrandir les tampons dans le pilote. Comme de nombreux pilotes sont différents, nous avons modifié au moins l'un d'entre-eux.

Ceci ne s'applique qu'à la version OSS de pilote Soundblaster Live. Comme chaque carte son et chaque dérivé de pilote son connaît un implémentition différente, il vous faudra faire quelques recherches pour d'autres cartes son. Éditez linux/drivers/sound/emu10k1/audio.c

Où vous trouvez :

     if (bufsize >= 0x10000)

modifiez cette ligne de façon à avoir :

     if (bufsize > 0x40000)

Où vous trouvez :

     		for (i = 0; i < 8; i++)
     			for (j = 0; j < 4; j++)

modifiez cette ligne pour avoir :

     		for (i = 0; i < 16; i++)
     			for (j = 0; j < 4; j++)

Dans linux/drivers/sound/emu10k1/hwaccess.h

Modifiez :

#define MAXBUFSIZE 65536

en :

#define MAXBUFSIZE 262144

Enfin, dans linux/drivers/sound/emu10k1/cardwi.h

#define WAVEIN_MAXBUFSIZE 65536

en :

#define WAVEIN_MAXBUFSIZE 262144

Recompilez ensuite les modules du noyau.


Là encore, les données sont peut-être quelque peu vieillottes. S'appliquent-t-elles encore à un noyau récent de la série des 2.6 ? (NDT)