code: public void release(boolean wait){
  		state.release(wait);
  		
  		if(tuners!=null)
  			tuners.release();
  		doReleaseTunerActions(v4l4jObject);
  		
  		if(deviceInfo!=null)
  			deviceInfo.release();
  		
  		doRelease(v4l4jObject);
  		
  		state.commit();
  	}
docs: This method releases resources used by this VideoDevice. If the argument
  <code>wait</code> is true, this method will <code>wait()</code> if a
  <code>FrameGrabber</code> or/and a <code>ControlList</code> are in use,
  until {@link #releaseFrameGrabber()} or/and {@link #releaseControlList()}
  have been called. It is in effect identical to {@link #release()}. If
  argument <code>wait</code> is false, this method will throw a
  {@link ReleaseException} if a <code>FrameGrabber</code> or/and a
  <code>ControlList</code> are in use. Otherwise, it will just proceed with
  the release of resources.
  @param wait whether or not this method should block and wait until
  {@link #releaseFrameGrabber()} or/and {@link #releaseControlList()} have
  been called
  @throws StateException if this video device has already been released, or
  is being released.
  @throws ReleaseException if there either the
  {@link #releaseFrameGrabber()} or the {@link #releaseControlList()} have
  not been called, and we asked to not wait (argument <code>wait</code> is
  false)