I’m writing a software for supporting a custom UVC compliant camera.
This camera has a capacitive touch control on board. When the user touches the capacitive control, the camera generate an hardware trigger according to UVC specifications (method 2).
I want to perform a custom action when the user click on the Camera, without capturing a still image.
I wrote a lower filter for USBVideo driver, that notifies the application when receive the URBs related to trigger events. This driver works in all Windows version (from XP to 10).
The actual problem is related to standard behaviour of the Windows UVC driver when an event arrives from a camera, declaring method 2 for external trigger:
“In this case, the host software will temporarily suspend video streaming, select the optimal bandwidth alternate setting based on the still probe/commit negotiation …
prepare to receive the still image data …
then revert back to the original alternate setting, and resume video streaming.”
From Windows Vista, to disable this behaviour is enough to leave disconnected the Still Image capture pin of the DirectShow Video Source filter.
This trick, instead, doesn’t work for Windows XP.
Does anyone know a method to disable the still image capture on Windows XP?
Filtering the hardware trigger related URB in a fillter dirver?
Changing to 1 the trigger method inside the Directshow Video Capture filter? I cannot change the device USB descriptor.
Any other idea?
Thanks in advance.