structure KSAUDIO_POSITION (ksmedia.h)
La structure KSAUDIO_POSITION spécifie les positions actuelles des curseurs de lecture et d’écriture dans la mémoire tampon audio d’un flux audio.
Syntaxe
typedef struct {
#if ...
ULONGLONG PlayOffset;
#if ...
ULONGLONG WriteOffset;
#else
DWORDLONG PlayOffset;
#endif
#else
DWORDLONG WriteOffset;
#endif
} KSAUDIO_POSITION, *PKSAUDIO_POSITION;
Membres
PlayOffset
Spécifie la position de lecture actuelle en tant que décalage d’octet.
WriteOffset
Spécifie la position d’écriture actuelle en tant que décalage d’octet.
Remarques
Cette structure permet d’obtenir et de définir la valeur des données pour la propriété KSPROPERTY_AUDIO_POSITION .
Pour une mémoire tampon cliente en boucle (avec le type de flux KSINTERFACE_STANDARD_LOOPED_STREAMING), PlayOffset et WriteOffset sont des décalages d’octets dans la mémoire tampon cliente. Lorsque l’un des décalages atteint la fin de la mémoire tampon, il est encapsulé au début de la mémoire tampon. Par conséquent, aucun décalage ne dépasse la taille de la mémoire tampon.
Pour une mémoire tampon de client non-commande (avec le type de flux KSINTERFACE_STANDARD_STREAMING), PlayOffset et WriteOffset ne sont pas des décalages dans une mémoire tampon physique que votre pilote a allouée ou qu’un client a allouée. Au lieu de cela, ces décalages sont relatifs au flux et peuvent être considérés comme des décalages dans une mémoire tampon idéalisée qui contient l’ensemble du flux et qui est contiguë du début à la fin. Tous les décalages internes qui pointent vers les mémoires tampons physiques réelles qui contiennent les données doivent être conservés séparément.
Pendant la lecture, les valeurs PlayOffset et WriteOffset sont interprétées comme suit :
- PlayOffset est le décalage du dernier octet de la mémoire tampon qui a été lu. PlayOffset + 1 est le décalage de l’octet suivant qui sera lu.
- WriteOffset est le décalage du dernier octet dans la mémoire tampon de lecture.
Pendant l’enregistrement, les valeurs PlayOffset et WriteOffset sont interprétées comme suit :
- PlayOffset est le décalage du dernier octet de la mémoire tampon capturée. PlayOffset + 1 est le décalage de l’octet suivant qui sera capturé.
- WriteOffset est le décalage du dernier octet dans la mémoire tampon de capture.
L’espace entre PlayOffset et WriteOffset est considéré comme étant interdit au client, car il représente la partie de la mémoire tampon du client qui a déjà été envoyée au pilote et qui peut toujours être utilisée par le pilote.
Pour plus d’informations, consultez Audio Position Property.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ksmedia.h (inclure Ksmedia.h) |
Voir aussi
KSINTERFACE_STANDARD_LOOPED_STREAMING