Can save videostream to file in debug mode

This commit is contained in:
Iwan Timmer
2014-03-31 17:15:12 +02:00
parent 4d3d5ee028
commit e6d6e0ef16
2 changed files with 45 additions and 3 deletions

View File

@@ -1,7 +1,13 @@
package com.limelight.binding.video;
import com.limelight.LimeLog;
import com.limelight.nvstream.av.ByteBufferDescriptor;
import com.limelight.nvstream.av.DecodeUnit;
import com.limelight.nvstream.av.video.VideoDecoderRenderer;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* Implementation of a video decoder and renderer.
@@ -11,6 +17,17 @@ public class FakeVideoRenderer implements VideoDecoderRenderer {
private int dataSize;
private long last;
private OutputStream out;
public FakeVideoRenderer(String videoFile) {
try {
if (videoFile!=null)
out = new FileOutputStream(videoFile);
} catch (FileNotFoundException e) {
LimeLog.severe(e.getMessage());
}
}
@Override
public void setup(int width, int height, int redrawRate, Object renderTarget, int drFlags) {
@@ -24,6 +41,12 @@ public class FakeVideoRenderer implements VideoDecoderRenderer {
@Override
public void stop() {
try {
if (out!=null)
out.close();
} catch (IOException e) {
LimeLog.severe(e.getMessage());
}
}
@Override
@@ -40,6 +63,16 @@ public class FakeVideoRenderer implements VideoDecoderRenderer {
}
dataSize += decodeUnit.getDataLength();
if (out!=null) {
try {
for (ByteBufferDescriptor buf:decodeUnit.getBufferList())
out.write(buf.data, buf.offset, buf.length);
} catch (IOException e) {
LimeLog.severe(e.getMessage());
return false;
}
}
return true;
}