Condividi tramite


EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION funzione di callback (acxelements.h)

La funzione di callback EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION viene implementata dal driver e viene chiamata per recuperare la posizione corrente all'interno dei dati audio sottoposti a rendering nel nodo del motore audio di flusso.

Sintassi

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION EvtAcxStreamaudioengineRetrievePresentationPosition;

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

Parametri

StreamAudioEngine

Oggetto ACXSTREAMAUDIOENGINE esistente, inizializzato. Per altre informazioni sugli oggetti ACX, vedere Riepilogo degli oggetti ACX.

PositionInBlocks

Specifica l'offset del blocco dall'inizio del flusso alla posizione post-decodificata corrente, non compressa nel flusso. Per altre informazioni su questo valore, vedere KSAUDIO_PRESENTATION_POSITION struttura .

QPCPosition

Specifica il valore del contatore delle prestazioni al momento in cui il driver audio legge la posizione della presentazione in risposta al callback. Per altre informazioni su questo valore, vedere KSAUDIO_PRESENTATION_POSITION struttura .

Valore restituito

Restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso dei valori NTSTATUS.

Commenti

Esempio

Di seguito è riportato l'esempio di utilizzo.

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;
}

Requisiti ACX

Versione minima DI ACX: 1.0

Per altre informazioni sulle versioni ACX, vedere Panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxelements.h
IRQL PASSIVE_LEVEL

Vedi anche