acmStreamConvert-Funktion (msacm.h)

Die Funktion acmStreamConvert fordert den ACM auf, eine Konvertierung für den angegebenen Konvertierungsdatenstrom durchzuführen. Eine Konvertierung kann synchron oder asynchron sein, je nachdem, wie der Stream geöffnet wurde.

Syntax

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

Parameter

has

Handle mit dem geöffneten Konvertierungsstream.

pash

Zeiger auf einen Streamheader, der Quell- und Zielpuffer für eine Konvertierung beschreibt. Dieser Header muss zuvor mithilfe der Funktion acmStreamPrepareHeader vorbereitet worden sein.

fdwConvert

Flags für die Konvertierung. Die folgenden Werte werden definiert.

Wert Bedeutung
ACM_STREAMCONVERTF_BLOCKALIGN Es werden nur integrale Zahlen von Blöcken konvertiert. Konvertierte Daten enden auf blockbündigen Grenzen. Eine Anwendung sollte dieses Flag für alle Konvertierungen in einem Stream verwenden, bis nicht genügend Quelldaten zum Konvertieren in ein blockorientiertes Ziel vorhanden sind. In diesem Fall sollte die letzte Konvertierung ohne dieses Flag angegeben werden.
ACM_STREAMCONVERTF_END Der ACM-Konvertierungsstream sollte damit beginnen, ausstehende instance Daten zurückzugeben. Wenn ein Konvertierungsdatenstrom beispielsweise instance Daten enthält, z. B. das Ende eines Echofiltervorgangs, führt dieses Flag dazu, dass der Stream diese verbleibenden Daten mit optionalen Quelldaten zurückgibt. Dieses Flag kann mit dem ACM_STREAMCONVERTF_START-Flag angegeben werden.
ACM_STREAMCONVERTF_START Der ACM-Konvertierungsdatenstrom sollte seine instance Daten neu initialisieren. Wenn ein Konvertierungsdatenstrom beispielsweise instance Daten enthält, z. B. Delta- oder Prädiktorinformationen, wird der Stream mit diesem Flag auf die Startstandardwerte wiederhergestellt. Dieses Flag kann mit dem ACM_STREAMCONVERTF_END-Flag angegeben werden.

Rückgabewert

Gibt null zurück, wenn der Vorgang erfolgreich war oder andernfalls ein Fehler. Mögliche Fehlerwerte sind:

Rückgabecode Beschreibung
ACMERR_BUSY
Der in pash angegebene Streamheader wird derzeit verwendet und kann nicht wiederverwendet werden.
ACMERR_UNPREPARED
Der in pash angegebene Streamheader wird derzeit nicht von der Funktion acmStreamPrepareHeader vorbereitet.
MMSYSERR_INVALFLAG
Mindestens ein Flag ist ungültig.
MMSYSERR_INVALHANDLE
Das angegebene Handle ist ungültig.
MMSYSERR_INVALPARAM
Mindestens ein Parameter ist ungültig.

Hinweise

Sie müssen die acmStreamPrepareHeader-Funktion verwenden, um die Quell- und Zielpuffer vorzubereiten, bevor sie an acmStreamConvert übergeben werden.

Wenn eine asynchrone Konvertierungsanforderung erfolgreich vom ACM oder Treiber in die Warteschlange gestellt wird und die Konvertierung später als unmöglich befunden wird, wird die ACMSTREAMHEADER-Struktur zurück an die Rückruffunktion der Anwendung gesendet, wobei der cbDstLengthUsed-Member auf 0 festgelegt ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile msacm.h
Bibliothek Msacm32.lib
DLL Msacm32.dll

Weitere Informationen

Audiokomprimierungsfunktionen

Audiokomprimierungs-Manager