code: @Override
  	public final void setCaptureCallback(CaptureCallback callback) {
  		if (callback == null)
  			throw new NullPointerException("The callback object cannot be null");
  
  		synchronized (state){
  			// make sure we are in the right state.
  			if (state.isStarted())
  				throw new StateException("This frame grabber is already started");
  
  			// create the push source object
  			pushSource = new PushSource(this, callback, threadFactory);
  		}
  	}
docs: /* (non-Javadoc)
  @see au.edu.jcu.v4l4j.FrameGrabber#setCaptureCallback()