code: private synchronized void init() {
  
  		if (!initialized.compareAndSet(false, true)) {
  			return;
  		}
  
  		LOG.debug("GStreamer webcam device initialization");
  
  		pipe = new Pipeline(getName());
  		source = ElementFactory.make(GStreamerDriver.getSourceBySystem(), "source");
  
  		if (Platform.isWindows()) {
  			source.set("device-index", deviceIndex);
  		} else if (Platform.isLinux()) {
  			source.set("device", videoFile.getAbsolutePath());
  		} else if (Platform.isMacOSX()) {
  			throw new IllegalStateException("not yet implemented");
  		}
  
  		sink = new RGBDataSink(getName(), this);
  		sink.setPassDirectBuffer(true);
  		sink.getSinkElement().setMaximumLateness(LATENESS, TimeUnit.MILLISECONDS);
  		sink.getSinkElement().setQOSEnabled(true);
  
  		filter = ElementFactory.make("capsfilter", "capsfilter");
  
  		jpegdec = ElementFactory.make("jpegdec", "jpegdec");
  
  		pipelineReady();
  		resolutions = parseResolutions(source.getPads().get(0));
  		pipelineStop();
  	}
docs: Initialize webcam device.