Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Das dieser Seite zugeordnete Feature Videokomprimierungs-Managerist ein Legacyfeature. Microsoft empfiehlt dringend, dieses Feature nicht zu verwenden.]
Ihre Anwendung verwendet eine Reihe von ICDecompressEx- Funktionen, um die Dekomprimierung zu steuern. Die Funktionen können Ihnen dabei helfen, die folgenden Aufgaben auszuführen:
- Wählen Sie einen Dekomprimierer aus.
- Bereiten Sie die Dekomprimierung vor.
- Dekomprimieren Sie die Daten.
- Beenden der Dekomprimierung.
Ihre Anwendung behandelt die Dekomprimierung auf ähnliche Weise wie die Komprimierung, mit der Ausnahme, dass das Eingabeformat ein komprimiertes Format ist und das Ausgabeformat ein anzeigefähiges Format ist. Das Eingabeformat für die Dekomprimierung wird in der Regel aus dem Datenstromheader abgerufen. Nach der Ermittlung des Eingabeformats kann Ihre Anwendung die ICLocate oder ICOpen Funktionen verwenden, um einen Dekomprimierer zu finden, der es verarbeiten kann.
Die ICDecompressEx- Funktionen und Makros sind eine Obermenge der ICDecompress Funktionsgruppe und bieten mehr Funktionen. Die Funktionalität von ICDecompressEx, ICDecompressExBegin, ICDecompressExEndund ICDecompressExQuery ersetzt die ICDecompress, ICDecompressBegin, ICDecompressEndund ICDecompressQuery Funktionen. Verwenden Sie die ICDecompressEx- Funktionen und Makros anstelle der ICDecompress Entsprechungen.
Auswahl des Dekomprimierungs- und Dekomprimierungsformats
Wenn Sie Daten dekomprimieren möchten und Ihre Anwendung ein bestimmtes Ausgabeformat erfordert, können Sie die ICDecompressExQuery-funktion verwenden, um den Dekomprimierer abzufragen, um festzustellen, ob es die Eingabe- und Ausgabeformate unterstützt.
Wenn das Ausgabeformat in Ihrer Anwendung nicht wichtig ist, benötigen Sie nur einen Dekomprimierer, der das Eingabeformat verarbeiten kann. Um festzustellen, ob ein Dekompressor das Eingabeformat verarbeiten kann, verwenden Sie ICDecompressExQuery-, und geben Sie NULL- für den lpbiDst Parameter an. Ihre Anwendung kann die puffergröße bestimmen, die für die Daten erforderlich ist, die das Dekomprimierungsformat angeben, indem sie die ICM_DECOMPRESS_GET_FORMAT Nachricht senden (oder das ICDecompressGetFormatSize Makro verwenden). Sie können auch ICM_DECOMPRESS_GET_FORMAT (oder das ICDecompressGetFormat Makro) senden, um die Formatdaten abzurufen. Die Dekomprimierung gibt das vorgeschlagene Format in einer BITMAPINFO- Struktur zurück. Dieses Format behält in der Regel die meisten Informationen während der Dekomprimierung bei. Ihre Anwendung sollte sicherstellen, dass der Dekompressor erfolgreich zurückgibt, bevor sie die Informationen dekomprimiert.
Da Ihre Anwendung den für die Dekomprimierung erforderlichen Speicher zuweist, muss der maximale Speicher ermittelt werden, den der Dekomprimierungsmodul für das Ausgabeformat benötigen kann. Die ICM_DECOMPRESS_GET_FORMAT Nachricht ruft die Anzahl der Bytes ab, die der Dekomprimierer für das Standardformat verwendet.
Wenn Ihre Anwendung ein eigenes Format mithilfe von ICDecompressExQuerydefiniert, muss sie auch eine Palette für die Bitmap abrufen; ICDecompressExQuery stellt keine Palettendefinitionen bereit. (Die meisten Anwendungen verwenden Standardformate und müssen keine Palette abrufen.) Ihre Anwendung kann die Palette abrufen, indem Sie die ICM_DECOMPRESS_GET_PALETTE Nachricht senden (oder das ICDecompressGetPalette Makro verwenden).
Dekomprimierungsinitialisierung
Nachdem Ihre Anwendung einen Dekompressor ausgewählt hat, der die benötigten Eingabe- und Ausgabeformate verarbeiten kann, können Sie die Dekomprimierung initialisieren, indem Sie die ICDecompressExBegin--Funktion verwenden. Diese Funktion erfordert den Dekomprimierpunkt und die Eingabe- und Ausgabeformate.
Datendekomprimierung
Sie können die ICDecompressEx--Funktion verwenden, um einen Frame zu dekomprimieren. Ihre Anwendung muss diese Funktion wiederholt verwenden, bis alle Frames in einer Sequenz dekomprimiert werden.
Wenn Ihr Videodatenstrom während der Wiedergabe hinter anderen Komponenten (z. B. Audio) liegt, kann Ihre Anwendung das ICDECOMPRESS_HURRYUP Flag angeben, um die Dekomprimierung zu beschleunigen. Dazu kann ein Dekompressor nur die Informationen extrahieren, die er benötigt, um den nächsten Frame zu dekomprimieren und den aktuellen Frame nicht vollständig zu dekomprimieren. Daher sollte Ihre Anwendung nicht versuchen, die dekomprimierten Daten zu zeichnen, wenn diese Kennzeichnung verwendet wird.
Nachdem Ihre Anwendung die Daten dekomprimiert hat, kann sie die ICM_DECOMPRESSEX_END Nachricht senden (oder das ICDecompressExEnd Makro verwenden), um den Dekomprimierer darüber zu informieren, dass er abgeschlossen ist. Wenn Sie die Dekomprimierung nach der Verwendung dieser Funktion neu starten möchten, muss Ihre Anwendung die Dekomprimierung mithilfe von ICDecompressExBeginerneut initialisieren.
Verwandte Themen