Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция обратного вызова камеры 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
Указатель на объект устройства мини-driver камеры, созданный USB-концентратором.
DeviceContext
Указатель на контекст устройства мини-driver камеры.
FrameContext
Указатель на контекст кадра мини-driver.
FrameBuffer
Указатель на буфер, который получает окончательный обработанный видеокадр. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе "Примечания".
FrameLength
Указывает длину буфера кадра (из исходного запроса на чтение) в байтах.
RawFrameBuffer
Указатель на буфер, содержащий полученные USB-пакеты. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе "Примечания".
RawFrameLength
Указывает длину RawFrameBuffer в байтах.
NumberOfPackets
Указывает количество USB-пакетов, полученных в RawFrameBuffer.
BytesReturned
Указатель на количество передаваемых байтов. Мини-driver должен задать это значение нулю, если при обработке возникают ошибки, как описано в потоке данных с использованиемизохронных каналов. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе "Примечания".
ActualRawFrameLength
Содержит длину фактического буфера, полученного от камеры. Это значение указывается в байтах.
StreamNumber
Указывает номер потока, с которым связан этот кадр.
Возвращаемое значение
CamProcessRawVideoFrameEx возвращает STATUS_SUCCESS или соответствующий код ошибки.
Замечания
Прежде чем USBCAMD вызывает обратный вызов CamProcessRawVideoFrameEx, он задает первый DWORD в буфере, на который указывает параметр FrameBuffer значение 0xdeadbeef. После вызова minidriver CamProcessRawVideoFrameEx обратного вызова USBCAMD проверяет первый DWORD в буфере, на который указывает параметр FrameBuffer для значения 0xdeadbeef, чтобы определить значение Если CamProcessRawVideoFrameEx успешно скопировал видеокадр из буфера, на который указывает параметр RawFrameBuffer в буфер, на который указывает параметр FrameBuffer.
Эта функция не вызывается, если один из следующих битов задан в аргументе camControlFlag camControlFlag, переданном функции USBCAMD_InitializeNewInterface:
USBCAMD_CamControlFlag_NoVideoRawProcessing
USBCAMD_CamControlFlag_NoStillRawProcessing
USBCAMD очищает флаг параметров заголовка потока перед передачей необработанного кадра в мини-driver. Флаг по умолчанию — это только ключевые кадры. Мини-driver камеры должен задать флаги заголовка потока соответствующим образом, если он должен указывать что-либо, кроме ключевых кадров.
Исходный USBCAMD не вызывает CamProcessRawVideoFrameEx.
Эта функция является необязательной.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | usbcamdi.h (включая Usbcamdi.h) |
IRQL | PASSIVE_LEVEL |