X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FFrameGrabber.java;h=1db5c2c7611cc18f25a84e6506564efd66204b7d;hb=2d8ddb23fc7f3ead7114314704319fff4dcce1a8;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();
}