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 est appelée pour récupérer la position actuelle dans les données audio affichées sur le 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 existant, initialisé. 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 actuelle, non compressée dans le flux. Consultez KSAUDIO_PRESENTATION_POSITION structure pour plus d’informations sur cette valeur.

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. Consultez KSAUDIO_PRESENTATION_POSITION structure pour plus d’informations sur cette valeur.

Valeur de retour

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

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 minimale d’ACX : 1.0

Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.

Exigences

Exigence Valeur
d’en-tête acxelements.h
IRQL PASSIVE_LEVEL

Voir aussi