Partager via


EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION fonction de rappel (acxelements.h)

La fonction de rappel EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION est implémentée par le pilote et appelée pour récupérer la position actuelle dans les données audio rendues au nœud du moteur audio de flux.

Syntaxe

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION EvtAcxStreamaudioengineRetrievePresentationPosition;

NTSTATUS EvtAcxStreamaudioengineRetrievePresentationPosition(
  ACXSTREAMAUDIOENGINE StreamAudioEngine,
  PULONGLONG PositionInBlocks,
  PULONGLONG QPCPosition
)
{...}

Paramètres

StreamAudioEngine

Objet ACXSTREAMAUDIOENGINE initialisé existant. Pour plus d’informations sur les objets ACX, consultez Résumé des objets ACX.

PositionInBlocks

Spécifie le décalage de bloc entre le début du flux et la position post-décodée et non compressée actuelle dans le flux. Pour plus d’informations sur cette valeur, consultez structure KSAUDIO_PRESENTATION_POSITION .

QPCPosition

Spécifie la valeur du compteur de performances au moment où le pilote audio lit la position de présentation en réponse au rappel. Pour plus d’informations sur cette valeur, consultez structure KSAUDIO_PRESENTATION_POSITION .

Valeur retournée

Retourne STATUS_SUCCESS si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Utilisation de valeurs NTSTATUS.

Remarques

Exemple

L’exemple d’utilisation est illustré ci-dessous.

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION    CodecR_EvtAcxStreamAudioEngineRetrievePresentationPosition;

NTSTATUS
CodecR_EvtAcxStreamAudioEngineRetrievePresentationPosition(
    _In_    ACXSTREAMAUDIOENGINE    StreamAudioEngine,
    _Out_   PULONGLONG              PositionInBlocks,
    _Out_   PULONGLONG              QPCPosition
)
{
    NTSTATUS status = STATUS_INVALID_PARAMETER;
    ACXSTREAM stream;
    PCODEC_STREAM_CONTEXT ctx;
    CRenderStreamEngine * streamEngine = NULL;

    PAGED_CODE();

    stream = AcxStreamAudioEngineGetStream(StreamAudioEngine);
    if (stream)
    {
        ctx = GetCodecStreamContext(stream);

        streamEngine = static_cast<CRenderStreamEngine*>(ctx->StreamEngine);

        status = streamEngine->GetPresentationPosition(PositionInBlocks, QPCPosition);
    }

    return status;
}

Configuration requise pour ACX

Version ACX minimale : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxelements.h
IRQL PASSIVE_LEVEL

Voir aussi