private Thread grabberThread;
private Consumer<VideoFrame> frameConsumer;
private VideoDeviceListener deviceListener;
private Thread grabberThread;
private Consumer<VideoFrame> frameConsumer;
private VideoDeviceListener deviceListener;
try (FrameGrabber grabber = FrameGrabber.from(videoDevice, config)) {
while (!isInterrupted()) {
Optional<VideoFrame> frame = grabber.grabFrame();
try (FrameGrabber grabber = FrameGrabber.from(videoDevice, config)) {
while (!isInterrupted()) {
Optional<VideoFrame> frame = grabber.grabFrame();
if (frameConsumer != null) frame.ifPresent(frameConsumer);
frame.ifPresent(VideoMode.this::onVideoFrame);
// timeIt("frame", grabber::grabFrame);
}
if (frameConsumer != null) frame.ifPresent(frameConsumer);
frame.ifPresent(VideoMode.this::onVideoFrame);
// timeIt("frame", grabber::grabFrame);
}