阅读:2191回复:2
求助使用DeviceIoControl控制摄像头属性
我是新手想要控制摄像头属性,如亮度等,但是不能使用Dshow里面的接口,在mediafoundation中又没有找到相应接口。
driver是UVC的driver。所以我想使用DeviceIoControl来控制属性。使用createfile得到了摄像头的handle,但是使用 DeviceIoControl返回错误, hr = HRESULT_FROM_WIN32(GetLastError());的结果是函数不正确。我使用的控制码是 IOCTL_KS_PROPERTY。而如果使用 IOCTL_KS_ENABLE_EVENT, IOCTL_KS_RESET_STATE ,等其他控制码就不 会返回错误,不知道这样是否表明我的handle没有错误。 代码如下: KSPROPERTY_VIDEOPROCAMP_S ProcAmpProp; ProcAmpProp.Property.Set = PROPSETID_VIDCAP_VIDEOPROCAMP;//PROPSETID_CUSTOM_CAMERAPROP; ProcAmpProp.Property.Id = lID; ProcAmpProp.Property.Flags = KSPROPERTY_TYPE_GET; hr = SynchronousDeviceControl( g_hDeviceHandle, IOCTL_KS_PROPERTY, // IOCTL_KS_ENABLE_EVENT, // IOCTL_KS_RESET_STATE , &ProcAmpProp, sizeof(ProcAmpProp), // NULL, // NULL, &ProcAmpProp, sizeof(ProcAmpProp), // NULL, //NULL, &BytesReturned); SynchronousDeviceControl只是在deviceIOcontrol上加了一些错误判断。 |
|
沙发#
发布于:2012-08-21 13:49
你使用的是系统标准的UVC驱动吗?返回的是什么错误?
|
|
|
板凳#
发布于:2012-08-22 14:48
使用的是标准的uvc驱动 hr = HRESULT_FROM_WIN32(GetLastError());返回的错误是error invalid founction
|
|