Share via


funzione acmStreamConvert (msacm.h)

La funzione acmStreamConvert richiede all'ACM di eseguire una conversione nel flusso di conversione specificato. Una conversione può essere sincrona o asincrona, a seconda della modalità di apertura del flusso.

Sintassi

MMRESULT ACMAPI acmStreamConvert(
  HACMSTREAM        has,
  LPACMSTREAMHEADER pash,
  DWORD             fdwConvert
);

Parametri

has

Gestire il flusso di conversione aperto.

pash

Puntatore a un'intestazione di flusso che descrive i buffer di origine e di destinazione per una conversione. Questa intestazione deve essere stata preparata in precedenza usando la funzione acmStreamPrepareHeader .

fdwConvert

Flag per eseguire la conversione. I valori seguenti sono definiti.

Valore Significato
ACM_STREAMCONVERTF_BLOCKALIGN Verranno convertiti solo numeri integrali di blocchi. I dati convertiti terminano sui limiti allineati a blocchi. Un'applicazione deve usare questo flag per tutte le conversioni in un flusso fino a quando non sono presenti dati di origine sufficienti per la conversione in una destinazione allineata a blocchi. In questo caso, l'ultima conversione deve essere specificata senza questo flag.
ACM_STREAMCONVERTF_END Il flusso di conversione ACM deve iniziare a restituire i dati dell'istanza in sospeso. Ad esempio, se un flusso di conversione contiene dati di istanza, ad esempio la fine di un'operazione di filtro echo, questo flag causerà che il flusso inizi a restituire questi dati rimanenti con dati di origine facoltativi. Questo flag può essere specificato con il flag di ACM_STREAMCONVERTF_START.
ACM_STREAMCONVERTF_START Il flusso di conversione di ACM deve reinizializzare i dati dell'istanza. Ad esempio, se un flusso di conversione contiene dati di istanza, ad esempio informazioni delta o predictor, questo flag ripristina il flusso per avviare le impostazioni predefinite. Questo flag può essere specificato con il flag ACM_STREAMCONVERTF_END.

Valore restituito

Restituisce zero se ha esito positivo o un errore in caso contrario. I valori di errore possibili includono quanto segue.

Codice restituito Descrizione
ACMERR_BUSY
L'intestazione di flusso specificata in pash è attualmente in uso e non può essere riutilizzata.
ACMERR_UNPREPARED
L'intestazione di flusso specificata in pash non è attualmente preparata dalla funzione acmStreamPrepareHeader .
MMSYSERR_INVALFLAG
Almeno un flag non è valido.
MMSYSERR_INVALHANDLE
L'handle specificato non è valido.
MMSYSERR_INVALPARAM
Almeno un parametro non è valido.

Commenti

È necessario usare la funzione acmStreamPrepareHeader per preparare i buffer di origine e di destinazione prima che vengano passati a acmStreamConvert.

Se una richiesta di conversione asincrona viene accodata correttamente dall'ACM o dal driver e la conversione viene determinata in un secondo momento come impossibile, la struttura ACMSTREAMHEADER viene pubblicata alla funzione di callback dell'applicazione con il membro cbDstLengthUsed impostato su zero.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione msacm.h
Libreria Msacm32.lib
DLL Msacm32.dll

Vedi anche

Funzioni di compressione audio

Gestione compressione audio