Compartilhar via


PCAM_PROCESS_RAW_FRAME_ROUTINE_EX função de retorno de chamada (usbcamdi.h)

A função de retorno de chamada CamProcessRawVideoFrameEx de um minidriver de câmera decodifica um quadro de vídeo bruto.

Sintaxe

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

Parâmetros

BusDeviceObject

Ponteiro para o objeto de dispositivo do minidriver da câmera criado pelo hub USB.

DeviceContext

Ponteiro para o contexto do dispositivo do minidriver da câmera.

FrameContext

Ponteiro para o contexto de quadro do minidriver.

FrameBuffer

Ponteiro para o buffer que recebe o quadro de vídeo processado final. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.

FrameLength

Especifica o comprimento do buffer de quadro (da solicitação de leitura original) em bytes.

RawFrameBuffer

Ponteiro para o buffer que contém os pacotes USB recebidos. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.

RawFrameLength

Especifica o comprimento de RawFrameBuffer em bytes.

NumberOfPackets

Especifica o número de pacotes USB recebidos no RawFrameBuffer.

BytesReturned

Ponteiro para o número de bytes transferidos. O minidriver deve definir isso como zero se encontrar erros durante o processamento, conforme descrito em Fluxo de Dados Usando pipes isócronos. Consulte a seção Comentários para obter mais informações sobre como o USBCAMD usa esse parâmetro.

ActualRawFrameLength

Contém o comprimento do buffer real recebido da câmera. Esse valor é especificado em bytes.

StreamNumber

Indica o número do fluxo ao qual esse quadro está associado.

Retornar valor

CamProcessRawVideoFrameEx retorna STATUS_SUCCESS ou um código de erro apropriado.

Comentários

Antes que o USBCAMD chame o retorno de chamada CamProcessRawVideoFrameEx do minidriver, ele define o primeiro DWORD no buffer apontado pelo parâmetro FrameBuffer para o valor 0xdeadbeef. Depois de chamar o USBCAMD de retorno de chamada CamProcessRawVideoFrameEx do minidriver, o primeiro DWORD no buffer apontado pelo parâmetro FrameBuffer para o valor 0xdeadbeef para determinar se CamProcessRawVideoFrameEx copiou com êxito o quadro de vídeo do buffer apontado pelo parâmetro RawFrameBuffer para o buffer apontado pelo parâmetro FrameBuffer .

Essa função não será chamada se um dos bits a seguir estiver definido no argumento CamControlFlag passado para a função USBCAMD_InitializeNewInterface :

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

O USBCAMD limpa o sinalizador de opções de cabeçalho de fluxo antes de passar o quadro bruto para o minidriver. O sinalizador padrão é somente quadros-chave. O minidriver de câmera deve definir os sinalizadores de opção de cabeçalho de fluxo adequadamente se precisar indicar algo além de quadros chave.

O USBCAMD original não chama CamProcessRawVideoFrameEx.

Essa função é opcional.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho usbcamdi.h (inclua Usbcamdi.h)
IRQL PASSIVE_LEVEL