HTC DriverGate – la version audio

Icône de temps de lecture 4 minute. lis


Les lecteurs aident à prendre en charge MSpoweruser. Nous pouvons recevoir une commission si vous achetez via nos liens. Icône d'info-bulle

Lisez notre page de divulgation pour savoir comment vous pouvez aider MSPoweruser à soutenir l'équipe éditoriale En savoir plus

porte conducteur

Eh bien, après un jour ou deux de Windows Mobile, nous nous sentons bien, nous revenons à certains problèmes qui affligent inutilement nos appareils.

Il semble que le pilote affecte à nouveau certains appareils HTC, y compris tous les appareils haut de gamme de la génération actuelle tels que HTC Touch Diamond, Touch Pro, HD et Xperia. Lorsque le son est diffusé périodiquement via des écouteurs ou des haut-parleurs (généralement une fois toutes les 5 minutes), vous entendrez un court "saut" dans l'audio. Le son a été décrit comme un décalage/saut/hoquet/tick/blip. Le problème semble provenir du pilote de périphérique wave ou peut-être du périphérique wave matériel lui-même (Qualcomm à nouveau en action ?) Le problème ne semble pas être présent dans A2DP.

Le problème affecte principalement les joueurs tiers, car HTC semble avoir résolu le problème, mais seulement pour eux-mêmes, en créant un pilote wave personnalisé.

L'équipe de Conduits Pocket Player s'est penchée sur le problème et est revenue découragée. C'est ce que j'ai eu à dire sur le sujet.

Nous avons effectué des tests approfondis concernant le problème de saut audio HTC et sommes arrivés à la conclusion que ce n'est pas quelque chose que Conduits peut résoudre. Après avoir analysé le programme HTC Audio Manager et plusieurs autres fichiers (tels que HTC DirectShow Audio Renderer HTCRenderFlt2.dll et HTCADXRenderer4.dll), nous avons constaté que les deux effectuent des appels système très spéciaux dans le pilote WaveOut.

Voici quelques détails techniques pour ce que nous avons trouvé. Tout d'abord, nous ne pensons pas que la priorité des threads ou des processus ait quoi que ce soit à voir avec le problème. Les applications audio normales utilisent un cycle de "tampons waveOut" qui maintiennent la sortie audio "pleine" avec des données audio que le système peut extraire et lire. Les applications utilisent les fonctions standard waveOutWrite pour remplir ces tampons. Du point de vue de Pocket Player, ces tampons sont toujours pleins et l'ajustement des priorités n'affectera pas cela. Une façon d'améliorer les sauts audio (qui a affecté le HTC TyTN) consistait à augmenter la priorité des threads du pilote WaveOut en modifiant une valeur de registre sous HKLM\Drivers\Builtin\WaveOut. Cette approche n'a pas fonctionné ici. Fait intéressant, ces problèmes de saut se produisent sur les ordinateurs de bureau. Là, le problème est lié aux pilotes en temps réel qui prennent "trop ​​​​de temps" dans leur traitement, ce qui empêche le pilote audio de traiter le prochain lot de sons. Cela se produit sous Vista avec certains pilotes MacBook.

Le gestionnaire audio utilise un mécanisme de sortie différent des appels waveOut standard - il utilise le filtre de rendu audio DirectShow, qui est une autre façon d'envoyer de l'audio. En regardant dans les rouages ​​de son fonctionnement, il utilise un mécanisme complètement différent. Il utilise un appel propriétaire waveOutMessage pour ouvrir une nouvelle file d'attente de messages, à travers laquelle l'audio est ensuite "diffusé".

Pocket Player (et d'autres applications) pourraient éventuellement résoudre ce problème en utilisant HTC Audio Renderer au lieu de leurs propres routines waveOut, mais nous perdrions alors le fondu enchaîné et d'autres fonctionnalités spécifiques à Pocket Player. Nous avons effectué quelques tests initiaux de création d'un graphique de filtre DirectShow (avec leur moteur de rendu audio), mais nous avons tout de même rencontré le saut, il doit donc y avoir des étapes supplémentaires.

En conséquence, Conduits considère maintenant cela comme un problème spécifique à l'appareil que le fabricant est obligé de résoudre. Alternativement, si HTC veut documenter son "mode de diffusion" spécial pour son pilote de sortie audio, nous pourrions envisager de nous adapter à ce modèle.

Si vous extrayez le Wavedev.dll d'une ROM, vous verrez d'innombrables messages de débogage concernant les "flux MP3" et autres, indiquant un chemin audio entièrement séparé pour la musique provenant de leur logiciel. Si nécessaire, nous réécrirons notre plug-in de sortie WaveOut (nos routines de sortie utilisent une architecture de plug-in privée, tout comme nos autres types de plug-in) qui utilise la sortie DirectShow.

HTC a refusé de documenter comment ils ont résolu le problème, affirmant qu'ils ne prenaient pas en charge les logiciels tiers.

Bien sûr, les développeurs XDA ne sont jamais du genre à laisser une situation comme celle-ci mentir. Thx1200 lance une prime pour les développeurs qui peuvent produire une solution open source à ce problème et la mettre à la disposition de la communauté. Actuellement, la prime n'est que d'un petit 30 $, mais je suis sûr que nous pouvons générer beaucoup plus de dons pour résoudre ce problème épineux pour quiconque utilise un logiciel audio tiers.

Lisez le fil complet sur XDA-Developers ici, et n'oubliez pas d'ajouter votre engagement également si vous pensez que c'est une situation qui doit être corrigée.

En savoir plus sur les sujets : pilotes audio, htc