diff --git a/src/main/java/us/ihmc/robotDataLogger/logger/MagewellMuxer.java b/src/main/java/us/ihmc/robotDataLogger/logger/MagewellMuxer.java index 732db671..d3ac2d27 100644 --- a/src/main/java/us/ihmc/robotDataLogger/logger/MagewellMuxer.java +++ b/src/main/java/us/ihmc/robotDataLogger/logger/MagewellMuxer.java @@ -11,6 +11,7 @@ public class MagewellMuxer { private final FFmpegFrameRecorder recorder; + private boolean closed = false; public MagewellMuxer(File videoCaptureFile, int captureWidth, int captureHeight) { @@ -55,7 +56,7 @@ public void recordFrame(Frame capturedFrame, long videoTimestamp) // This is where a frame is record, and we then need to store the timestamps, so they are synced try { - if (!recorder.isCloseOutputStream()) + if (!closed) { recorder.record(capturedFrame); } @@ -66,9 +67,9 @@ public void recordFrame(Frame capturedFrame, long videoTimestamp) } } - public boolean isCloseOutputStream() + public boolean isClosed() { - return recorder.isCloseOutputStream(); + return closed; } public long getTimeStamp() @@ -78,10 +79,9 @@ public long getTimeStamp() public void close() { - recorder.setCloseOutputStream(true); + closed = true; try { - recorder.flush(); recorder.stop(); } catch (Exception e) diff --git a/src/main/java/us/ihmc/robotDataLogger/logger/MagewellVideoDataLogger.java b/src/main/java/us/ihmc/robotDataLogger/logger/MagewellVideoDataLogger.java index 2aa6716e..ef593fed 100644 --- a/src/main/java/us/ihmc/robotDataLogger/logger/MagewellVideoDataLogger.java +++ b/src/main/java/us/ihmc/robotDataLogger/logger/MagewellVideoDataLogger.java @@ -105,7 +105,7 @@ public void startCapture() throws Exception long startTime = System.currentTimeMillis(); Frame capturedFrame; - while (!magewellMuxer.isCloseOutputStream() && ((capturedFrame = grabber.grabAtFrameRate()) != null)) + while (!magewellMuxer.isClosed() && ((capturedFrame = grabber.grabAtFrameRate()) != null)) { long videoTimestamp = CaptureTimeTools.timeSinceStartedCaptureInSeconds(System.currentTimeMillis(), startTime); magewellMuxer.recordFrame(capturedFrame, videoTimestamp); diff --git a/src/test/java/us/ihmc/robotDataLogger/captureVideo/ExampleMagewellCapture.java b/src/test/java/us/ihmc/robotDataLogger/captureVideo/ExampleMagewellCapture.java index 6982cf21..59ab2381 100644 --- a/src/test/java/us/ihmc/robotDataLogger/captureVideo/ExampleMagewellCapture.java +++ b/src/test/java/us/ihmc/robotDataLogger/captureVideo/ExampleMagewellCapture.java @@ -74,7 +74,7 @@ public static void main(String[] args) throws InterruptedException // Loop to capture a video, will stop after iterations have been completed LogTools.info("Starting capture"); - while (!magewellMuxer.isCloseOutputStream() && ((capturedFrame = grabber.grabAtFrameRate()) != null)) + while (!magewellMuxer.isClosed() && ((capturedFrame = grabber.grabAtFrameRate()) != null)) { long videoTimestamp = CaptureTimeTools.timeSinceStartedCaptureInSeconds(System.currentTimeMillis(), startTime); magewellMuxer.recordFrame(capturedFrame, videoTimestamp);