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 sonore pour 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 sous la forme d’un décalage d’octet.
WriteOffset
Spécifie la position d’écriture actuelle en tant que décalage d’octet.
Remarques
Cette structure est utilisée pour obtenir et définir la valeur de données de 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 du client. Lorsque l’un des décalages atteint la fin de la mémoire tampon, il s’encapsule au début de la mémoire tampon. Par conséquent, aucun décalage ne dépasse jamais la taille de la mémoire tampon.
Pour une mémoire tampon cliente nonloop (avec un 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 un client. Au lieu de cela, ces décalages sont relatifs aux 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ë de début à 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 dans la mémoire tampon qui a été lue. PlayOffset + 1 correspond au décalage de l’octet suivant qui sera joué.
- WriteOffset correspond au décalage du dernier octet dans la mémoire tampon de lecture.
Lors de l’enregistrement, les valeurs PlayOffset et WriteOffset sont interprétées comme suit :
- PlayOffset correspond au décalage du dernier octet dans la mémoire tampon capturée. PlayOffset + 1 correspond au décalage de l’octet suivant qui sera capturé.
- writeOffset correspond au décalage du dernier octet dans la mémoire tampon de capture.
L’espace entre PlayOffset et WriteOffset est considéré comme hors limites pour le client, car il représente la partie de la mémoire tampon du client qui a déjà été envoyée au pilote et peut toujours être utilisée par le pilote.
Pour plus d’informations, consultez propriété de position audio.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ksmedia.h (include Ksmedia.h) |
Voir aussi
KSINTERFACE_STANDARD_LOOPED_STREAMING