X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FFrameGrabber.java;h=1db5c2c7611cc18f25a84e6506564efd66204b7d;hb=adc29b9a70fa1d03ac67b0b3f397fed7a75f4d7b;hp=8fbb16f55f7f9f7393ad506d92f74aa352532858;hpb=4a2d60564647052562fad28644904298ba83667b;p=kaka%2Fcakelight.git diff --git a/src/kaka/cakelight/FrameGrabber.java b/src/kaka/cakelight/FrameGrabber.java index 8fbb16f..1db5c2c 100644 --- a/src/kaka/cakelight/FrameGrabber.java +++ b/src/kaka/cakelight/FrameGrabber.java @@ -14,10 +14,10 @@ public class FrameGrabber implements Closeable { private FrameGrabber() { } - public static FrameGrabber from(Configuration config) { + public static FrameGrabber from(File videoDevice, Configuration config) { FrameGrabber fg = new FrameGrabber(); fg.config = config; - fg.file = new File(config.video.device); + fg.file = videoDevice; fg.bytesPerFrame = config.video.width * config.video.height * config.video.bpp; fg.prepare(); return fg; @@ -28,6 +28,7 @@ public class FrameGrabber implements Closeable { fileStream = new FileInputStream(file); return true; } catch (FileNotFoundException e) { + // TODO: handle java.io.FileNotFoundException: /dev/video1 (Permission denied) e.printStackTrace(); return false; } @@ -36,12 +37,12 @@ public class FrameGrabber implements Closeable { /** * Must be run in the same thread as {@link #prepare}. */ - public Optional grabFrame() { + public Optional grabFrame() { try { byte[] data = new byte[bytesPerFrame]; int count = fileStream.read(data); log("# of bytes read = " + count); - return Optional.of(Frame.of(data, config)); + return Optional.of(VideoFrame.of(data, config)); } catch (IOException e) { e.printStackTrace(); }