ICCompress-Funktion (vfw.h)

Die ICCompress-Funktion komprimiert ein einzelnes Videobild.

Syntax

DWORD VFWAPIV ICCompress(
  HIC                hic,
  DWORD              dwFlags,
  LPBITMAPINFOHEADER lpbiOutput,
  LPVOID             lpData,
  LPBITMAPINFOHEADER lpbiInput,
  LPVOID             lpBits,
  LPDWORD            lpckid,
  LPDWORD            lpdwFlags,
  LONG               lFrameNum,
  DWORD              dwFrameSize,
  DWORD              dwQuality,
  LPBITMAPINFOHEADER lpbiPrev,
  LPVOID             lpPrev
);

Parameter

hic

Griff zum zu verwendenden Kompressor.

dwFlags

Komprimierungsflag. Der folgende Wert wird definiert:

ICCOMPRESS_KEYFRAME

Kompressor sollte diesen Frame zu einem Keyframe machen.

lpbiOutput

Zeiger auf eine BITMAPINFOHEADER-Struktur , die das Ausgabeformat enthält.

lpData

Zeiger auf einen Ausgabepuffer, der groß genug ist, um einen komprimierten Frame zu enthalten.

lpbiInput

Zeiger auf eine BITMAPINFOHEADER-Struktur , die das Eingabeformat enthält.

lpBits

Zeiger auf den Eingabepuffer.

lpckid

Reserviert; nicht verwenden.

lpdwFlags

Zeiger auf die im AVI-Index verwendeten Rückgabeflags. Der folgende Wert wird definiert:

AVIIF_KEYFRAME

Der aktuelle Frame ist ein Keyframe.

lFrameNum

Framenummer.

dwFrameSize

Angeforderte Framegröße in Bytes. Geben Sie einen Wert ohne Zero an, wenn der Kompressor eine vorgeschlagene Framegröße unterstützt, wie das Vorhandensein des von der ICGetInfo-Funktion zurückgegebenen VIDCF_CRUNCH Flags anzeigt. Wenn dieses Flag nicht festgelegt ist oder keine Datenrate für den Frame angegeben ist, geben Sie null für diesen Parameter an.

Ein Kompressor muss möglicherweise auf die Bildqualität verzichten oder einen anderen Kompromiss unternehmen, um das in diesem Parameter angegebene Größenziel zu erhalten.

dwQuality

Der angeforderte Qualitätswert für den Frame. Geben Sie einen nichtzero-Wert an, wenn der Kompressor einen vorgeschlagenen Qualitätswert unterstützt, wie das Vorhandensein des von ICGetInfo zurückgegebenen VIDCF_QUALITY Flags anzeigt. Geben Sie andernfalls null für diesen Parameter an.

lpbiPrev

Zeiger auf eine BITMAPINFOHEADER-Struktur , die das Format des vorherigen Frames enthält.

lpPrev

Zeiger auf das nicht komprimierte Bild des vorherigen Frames. Dieser Parameter wird nicht für die schnelle temporale Komprimierung verwendet. Geben Sie null für diesen Parameter an, wenn sie einen Keyframe komprimieren, wenn der Kompressor keine temporale Komprimierung unterstützt oder wenn der Kompressor keinen externen Puffer zum Speichern des Formats und der Daten des vorherigen Bilds benötigt.

Rückgabewert

Gibt ICERR_OK zurück, wenn erfolgreich oder andernfalls ein Fehler aufgetreten ist.

Hinweise

Sie können die erforderliche Größe des Ausgabepuffers abrufen, indem Sie die ICM_COMPRESS_GET_SIZE Nachricht senden (oder das ICCompressGetSize-Makro verwenden).

Der Kompressor legt den Inhalt von lpdwFlags auf AVIIF_KEYFRAME fest, wenn er einen Keyframe erstellt. Wenn Ihre Anwendung AVI-Dateien erstellt, sollten die für lpckid und lpdwFlags zurückgegebenen Informationen in der Datei gespeichert werden.

Kompressoren verwenden lpbiPrev und lpPrev , um eine temporale Komprimierung durchzuführen und benötigen einen externen Puffer, um das Format und die Daten des vorherigen Frames zu speichern. Geben Sie null für lpbiPrev und lpPrev an, wenn sie einen Keyframe komprimieren, wenn eine schnelle Komprimierung ausgeführt wird oder wenn der Kompressor über einen eigenen Puffer zum Speichern des Formats und der Daten des vorherigen Images verfügt. Geben Sie nicht NULL-Werte für diese Parameter an, wenn ICGetInfo das flag VIDCF_TEMPORAL zurückgibt, der Kompressor eine normale Komprimierung ausführt und der zu komprimierende Frame kein Keyframe 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 vfw.h
Bibliothek Vfw32.lib
DLL Msvfw32.dll

Weitere Informationen

Videokomprimierungsfunktionen

Videokomprimierungs-Manager