Partager via


Exemple de support alloué par l’utilisateur

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Dans des circonstances normales, l’objet reader et l’objet lecteur synchrone créent un objet de mémoire tampon pour chaque exemple remis à votre application. Cela est dû au fait que l’objet de lecture n’a aucun moyen de savoir ce que votre application fait avec les exemples après les avoir extraits. Même si de nombreuses applications lisent des exemples uniquement pour les restituer immédiatement, certaines applications peuvent avoir besoin de conserver des exemples pendant une longue période. L’objet de lecture ne peut donc réutiliser aucune des mémoires tampons qu’il alloue ; il les remet à votre application, qui les contrôle ensuite.

Le problème avec cette approche est qu’un fichier peut contenir un grand nombre d’échantillons. Si chacun d’entre eux nécessite la création d’un nouvel objet de mémoire tampon, beaucoup de temps processeur est perdu pour allouer et libérer de la mémoire. Dans les applications sensibles au temps, telles que les lecteurs multimédias, cette surcharge peut être très préjudiciable aux performances.

Pour réduire les problèmes de performances des exemples alloués par le lecteur, le lecteur et le lecteur synchrone prennent en charge les exemples alloués par l’utilisateur. Pour utiliser des exemples alloués par votre application, l’objet de lecture effectue des appels à une méthode de rappel d’allocation d’exemple que vous implémentez. La logique utilisée par le rappel pour remettre des mémoires tampons à l’objet de lecture vous appartient entièrement. Vous pouvez utiliser un pool de mémoires tampons pour l’ensemble du fichier ou utiliser plusieurs pools de mémoires tampons, un pour chaque sortie ou flux, ou tout autre schéma qui fonctionne pour votre application.

Allocation de mémoires tampons pour la lecture de fichiers

Fonctionnalités de lecture de fichiers