package com.github.sarxos.webcam.ds.cgt; import java.nio.ByteBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.sarxos.webcam.WebcamDevice; import com.github.sarxos.webcam.WebcamDevice.BufferAccess; import com.github.sarxos.webcam.WebcamDriver; import com.github.sarxos.webcam.WebcamTask; public class WebcamGetBufferTask extends WebcamTask { private static final Logger LOG = LoggerFactory.getLogger(WebcamGetBufferTask.class); private volatile ByteBuffer buffer = null; public WebcamGetBufferTask(WebcamDriver driver, WebcamDevice device) { super(driver, device); } public ByteBuffer getBuffer() { try { process(); } catch (InterruptedException e) { LOG.debug("Image buffer request interrupted", e); return null; } return buffer; } @Override protected void handle() { WebcamDevice device = getDevice(); if (!device.isOpen()) { return; } if (!(device instanceof BufferAccess)) { return; } buffer = ((BufferAccess) device).getImageBytes(); } }