PCAM_PROCESS_RAW_FRAME_ROUTINE_EX 콜백 함수(usbcamdi.h)

카메라 미니드라이버의 CamProcessRawVideoFrameEx 콜백 함수는 원시 비디오 프레임을 디코딩합니다.

구문

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
)
{...}

매개 변수

BusDeviceObject

USB 허브에서 만든 카메라 미니드라이버의 디바이스 개체에 대한 포인터입니다.

DeviceContext

카메라 미니 드라이버의 디바이스 컨텍스트에 대한 포인터입니다.

FrameContext

미니 드라이버의 프레임 컨텍스트에 대한 포인터입니다.

FrameBuffer

최종 처리된 비디오 프레임을 수신하는 버퍼에 대한 포인터입니다. USBCAMD에서 이 매개 변수를 사용하는 방법에 대한 자세한 내용은 설명 섹션을 참조하세요.

FrameLength

원래 읽기 요청에서 프레임 버퍼의 길이를 바이트 단위로 지정합니다.

RawFrameBuffer

수신된 USB 패킷을 포함하는 버퍼에 대한 포인터입니다. USBCAMD에서 이 매개 변수를 사용하는 방법에 대한 자세한 내용은 설명 섹션을 참조하세요.

RawFrameLength

RawFrameBuffer의 길이를 바이트 단위로 지정합니다.

NumberOfPackets

RawFrameBuffer로 수신된 USB 패킷 수를 지정합니다.

BytesReturned

전송된 바이트 수에 대한 포인터입니다. Data Flow 등시 파이프 사용에 설명된 대로 처리하는 동안 오류가 발생하는 경우 미니드라이버에서 이를 0으로 설정해야 합니다. USBCAMD에서 이 매개 변수를 사용하는 방법에 대한 자세한 내용은 설명 섹션을 참조하세요.

ActualRawFrameLength

카메라에서 받은 실제 버퍼의 길이를 포함합니다. 이 값은 바이트로 지정됩니다.

StreamNumber

이 프레임이 연결된 스트림 번호를 나타냅니다.

반환 값

CamProcessRawVideoFrameEx는 STATUS_SUCCESS 또는 적절한 오류 코드를 반환합니다.

설명

USBCAMD가 미니드라이버의 CamProcessRawVideoFrameEx 콜백을 호출하기 전에 FrameBuffer 매개 변수가 가리키는 버퍼의 첫 번째 DWORD를 0xdeadbeef 값으로 설정합니다. 미니드라이버의 CamProcessRawVideoFrameEx 콜백 USBCAMD를 호출한 후 0xdeadbeef 값에 대해 FrameBuffer 매개 변수가 가리키는 버퍼의 첫 번째 DWORD를 확인하여 CamProcessRawVideoFrameExRawFrameBuffer 매개 변수가 가리키는 버퍼에서 비디오 프레임을 FrameBuffer 매개 변수가 가리키는 버퍼에 성공적으로 복사했는지 확인합니다.

다음 비트 중 하나가 USBCAMD_InitializeNewInterface 함수에 전달된 CamControlFlag 인수에 설정된 경우 이 함수는 호출되지 않습니다.

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD는 원시 프레임을 미니 드라이버에 전달하기 전에 스트림 헤더 옵션 플래그를 지웁니다. 기본 플래그는 키 프레임만입니다. 카메라 미니드라이버가 키 프레임 이외의 항목을 표시해야 하는 경우 스트림 헤더 옵션 플래그를 적절하게 설정해야 합니다.

원래 USBCAMD는 CamProcessRawVideoFrameEx를 호출하지 않습니다.

이 함수는 선택 사항입니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 usbcamdi.h(Usbcamdi.h 포함)
IRQL PASSIVE_LEVEL