USB Видеокамеры EVS поставляются с WDM драйверами реализующие технологию Microsoft DirectShow входящую в состав Microsoft DirectX. Что позволяет им работать с большим количеством коммерческих и бесплатных программ, поддерживающих данную технологию, таких как Ulead Video Studio, Adobe Premier, AmCap, VirtualDub и др. Для разработки собственных приложений см. документацию Microsoft DirectX SDK, MSDN и данный пример. ****************************************************************************************************************** Компиляция примера была проведена в Delphi 7 Данный пример - это адаптация PlayCap из Microsoft DirectX 9 SDK Кроме того в сети (Internet) имеется множество примеров и компонентов для Delphi и С++ (ключевые слова для поиска DirectShow и VideoCapture). ******************************************************************************************************************* Для управления свойствами камеры необходимо добавить в свой проект файл - ECustomProperty.pas где объявлены необходимые типы и функции: Управление свойствами камеры осуществляется двумя интерфейсами: IAMVideoProcAmp и IAMCameraControl Назначение отдельных свойств этих интерфейсов, немного изменены по сравнению со стандартными. Для удобства в файле ECustomProperty.pas вводятся определения измененных свойств. Ниже приведено соответствие: tagEVSVideoProcAmpProperty - tagVideoProcAmpProperty EVSVideoProcAmp_Brightness, - VideoProcAmp_Brightness EVSVideoProcAmp_Contrast, - VideoProcAmp_Contrast, EVSVideoProcAmp_BalanceRed, - VideoProcAmp_Hue, EVSVideoProcAmp_Saturation, - VideoProcAmp_Saturation, EVSVideoProcAmp_Sharpness, - VideoProcAmp_Sharpness, EVSVideoProcAmp_Gamma, - VideoProcAmp_Gamma, EVSVideoProcAmp_ColorEnable, - VideoProcAmp_ColorEnable, EVSVideoProcAmp_BalanceBlue, - VideoProcAmp_WhiteBalance, EVSVideoProcAmp_BacklightCompensation, - VideoProcAmp_BacklightCompensation, EVSVideoProcAmp_Gain - VideoProcAmp_Gain tagEVSCameraControlProperty - tagCameraControlProperty EVSCameraControl_XPan, - CameraControl_Pan, EVSCameraControl_YPan, - CameraControl_Tilt, EVSCameraControl_LoopAE, - CameraControl_Roll, EVSCameraControl_Zoom, - CameraControl_Zoom, EVSCameraControl_Exposure, - CameraControl_Exposure, EVSCameraControl_TLine, - CameraControl_Iris, EVSCameraControl_LevelAE - CameraControl_Focus Управление нестандартными свойствами осуществляется функциями: SetCustomProperty(const MyObjectHandle : THandle; Request : TRegCustomProerty; Value : Array of Integer); GetCustomProperty(const MyObjectHandle : THandle; Request : TRegCustomProerty; var Value : Array of Integer); где: MyObjectHandle - Handle на объект камеры (см. пример) Request - Вид свойства: REQ_GET_DEVICE_ID Get Device ID REQ_GET_STATE Get State REQ_SET_VIDEO_INPUT Set Video Input 1-4 (for Contrast USB) REQ_RESERVED1 Reserved REQ_RESERVED2 Reserved REQ_SET_PORTD Set PORTD REQ_SET_VIDEO_OUTPUT Set Video Output 0-3 (for Contrast USB) REQ_ADDITIONAL_MODE Установка дополнительных режимов Value - Массив Array[0..2] of integer (Значения зависят от 'Request') для: REQ_GET_DEVICE_ID (только чтение) Value[0] - тип камеры: C_Unknown = 0 - неизвестная C_Contrast = 1 - 'Контраст USB' C_7620 = 2 - OV7620 C_9630 = 3 - OV9630 C_2610 = 4 - OV2610 C_3610 = 5 - OV3610 C_3620 = 5 - OV3610 C_AnalogCamera = 7; C_9121 = 8; C_5610 = 9; C_5620 = 10; C_2620 = 11; C_2630 = 12; C_M3100 = 13; C_MT9D111 = 14; Value[1] - Зарезервировано Value[2] - Зарезервировано REQ_GET_STATE Переключает цифровой вход/выход на вход Value[0] - Зарезервировано Value[1] - состояние порта D (Цифровой вход) Value[2] - Зарезервировано REQ_SET_VIDEO_INPUT (только для 'Контраст USB') Value[0] - Номер входа Value[1] - Зарезервировано Value[2] - Зарезервировано REQ_SET_PORTD Переключает цифровой вход/выход на выход Value[0] - значение порта D (Цифровой выход) Value[1] - Зарезервировано Value[2] - Зарезервировано REQ_SET_VIDEO_OUTPUT Set Video Output 0-3 (for Contrast USB) Value[0] - Номер входа к которому подключается видеовыход Value[1] - Зарезервировано Value[2] - Зарезервировано REQ_ADDITIONAL_MODE в текущей версии не реализован