Freigeben über


PCAM_PROCESS_RAW_FRAME_ROUTINE_EX Rückruffunktion (usbcamdi.h)

Die CamProcessRawVideoFrameEx-Rückruffunktion eines Kameraminidrivers decodiert einen rohen Videoframe.

Syntax

PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;

NTSTATUS PcamProcessRawFrameRoutineEx(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID FrameContext,
  PVOID FrameBuffer,
  ULONG FrameLength,
  PVOID RawFrameBuffer,
  ULONG RawFrameLength,
  ULONG NumberOfPackets,
  PULONG BytesReturned,
  ULONG ActualRawFrameLength,
  ULONG StreamNumber
)
{...}

Parameter

BusDeviceObject

Zeiger auf das Geräteobjekt des Kameraminidrivers, das vom USB-Hub erstellt wurde.

DeviceContext

Zeiger auf den Gerätekontext des Kameraminidrivers.

FrameContext

Zeiger auf den Framekontext des Minidrivers.

FrameBuffer

Zeiger auf den Puffer, der den endgültig verarbeiteten Videoframe empfängt. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt Hinweise.

FrameLength

Gibt die Länge des Framepuffers (aus der ursprünglichen Leseanforderung) in Bytes an.

RawFrameBuffer

Zeiger auf den Puffer, der die empfangenen USB-Pakete enthält. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt Hinweise.

RawFrameLength

Gibt die Länge von RawFrameBuffer in Bytes an.

NumberOfPackets

Gibt die Anzahl von USB-Paketen an, die in RawFrameBuffer empfangen werden.

BytesReturned

Zeiger auf die Anzahl der übertragenen Bytes. Der Minidriver muss diesen Wert auf 0 festlegen, wenn während der Verarbeitung Fehler auftreten, wie unter Datenfluss Verwenden isochroner Rohre beschrieben. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt Hinweise.

ActualRawFrameLength

Enthält die Länge des tatsächlichen Puffers, der von der Kamera empfangen wird. Dieser Wert wird in Bytes angegeben.

StreamNumber

Gibt die Streamnummer an, mit der dieser Frame verknüpft ist.

Rückgabewert

CamProcessRawVideoFrameEx gibt STATUS_SUCCESS oder einen entsprechenden Fehlercode zurück.

Hinweise

Bevor USBCAMD den CamProcessRawVideoFrameEx-Rückruf des Minidrivers aufruft, legt es den ersten DWORD-Wert im Puffer fest, auf den der FrameBuffer-Parameter verweist, auf den wert 0xdeadbeef. Nach dem Aufrufen des CamProcessRawVideoFrameEx-Rückrufs des Minidrivers überprüft USBCAMD die erste DWORD im Puffer, auf den der FrameBuffer-Parameter verweist, auf den Wert 0xdeadbeef , um festzustellen, ob CamProcessRawVideoFrameEx den Videoframe erfolgreich aus dem Puffer kopiert hat, auf den der RawFrameBuffer-Parameter verweist, in den Puffer, auf den der FrameBuffer-Parameter verweist.

Diese Funktion wird nicht aufgerufen, wenn eines der folgenden Bits im CamControlFlag-Argument festgelegt ist, das an die USBCAMD_InitializeNewInterface-Funktion übergeben wird:

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD löscht das Flag "Streamheaderoptionen", bevor der rohe Frame an den Minidriver übergeben wird. Das Standardflag ist nur Keyframes. Der Kamera-Minidriver sollte die Streamheaderoption entsprechend festlegen, wenn er etwas anderes als Keyframes angeben muss.

Die ursprüngliche USBCAMD ruft CamProcessRawVideoFrameEx nicht auf.

Diese Funktion ist optional.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile usbcamdi.h (einschließlich Usbcamdi.h)
IRQL PASSIVE_LEVEL