code: func Open(path string) (*Webcam, error) {
  
  	handle, err := unix.Open(path, unix.O_RDWR|unix.O_NONBLOCK, 0666)
  	fd := uintptr(handle)
  
  	if fd < 0 || err != nil {
  		return nil, err
  	}
  
  	supportsVideoCapture, supportsVideoStreaming, err := checkCapabilities(fd)
  
  	if err != nil {
  		return nil, err
  	}
  
  	if !supportsVideoCapture {
  		return nil, errors.New("Not a video capture device")
  	}
  
  	if !supportsVideoStreaming {
  		return nil, errors.New("Device does not support the streaming I/O method")
  	}
  
  	w := new(Webcam)
  	w.fd = uintptr(fd)
  	w.bufcount = 256
  	return w, nil
  }
docs: // Open a webcam with a given path
  // Checks if device is a v4l2 device and if it is
  // capable to stream video