title: UVC Camera "Still Pin" capture in Linux C++
body: <p>I have a USB camera here that I am very familiar with and have worked with for a while. I can capture "still images" in OpenCV and with Gstreamer without problems. However one of the use cases for this camera involves a button on the camera itself to capture stills.</p>
  
  <p>The camera has a "still pin" which I have wired up a button to. In Windows with DirectShow it works as you would expect. I have spent the past week in search of a way to replicate this behavior in Linux for my embedded project. So far I have not been able to find anything that I can make use of. It seems all the support for this feature is Windows only.</p>
  
  <p>I have searched through the following:
  V4l2 Documentation
  OpenCV
  Gstreamer
  uvc-streamer
  uvccapture
  luvcview</p>
  
  <p>I have also done USB sniffing on Windows which revealed a "capture begin" packet is sent. Though I have not found a way I can monitor the USB traffic from the camera during streaming. While capturing from the device, /dev/video0 is in use by V4l2 and I cannot read the bytes traveling on the bus. If there is a way I could read the raw data from the camera, I could also just handle a "still pin" button press in my application.</p>
  
  <p>Any possible solutions/ideas are welcome at this point. I am out of ideas and web resources.</p>