Testing video streaming framerate.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -18,6 +18,7 @@ local.properties
|
|||||||
# Eclipse project files
|
# Eclipse project files
|
||||||
.classpath
|
.classpath
|
||||||
.project
|
.project
|
||||||
|
libs/
|
||||||
|
|
||||||
# Proguard folder generated by Eclipse
|
# Proguard folder generated by Eclipse
|
||||||
proguard/
|
proguard/
|
||||||
|
@@ -28,11 +28,13 @@ import ve.ucv.ciens.ccg.nxtar.utils.Size;
|
|||||||
import com.badlogic.gdx.Application;
|
import com.badlogic.gdx.Application;
|
||||||
import com.badlogic.gdx.ApplicationListener;
|
import com.badlogic.gdx.ApplicationListener;
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.FPSLogger;
|
||||||
import com.badlogic.gdx.graphics.GL10;
|
import com.badlogic.gdx.graphics.GL10;
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
import com.badlogic.gdx.graphics.Pixmap;
|
import com.badlogic.gdx.graphics.Pixmap;
|
||||||
import com.badlogic.gdx.graphics.Texture;
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
import com.badlogic.gdx.graphics.Texture.TextureFilter;
|
import com.badlogic.gdx.graphics.Texture.TextureFilter;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
import com.badlogic.gdx.graphics.g2d.Sprite;
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
@@ -47,6 +49,8 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
|
|||||||
private Sprite sprite;
|
private Sprite sprite;
|
||||||
private Toaster toaster;
|
private Toaster toaster;
|
||||||
private MulticastEnabler mcastEnabler;
|
private MulticastEnabler mcastEnabler;
|
||||||
|
private FPSLogger fps;
|
||||||
|
private BitmapFont font;
|
||||||
private int connections;
|
private int connections;
|
||||||
|
|
||||||
private VideoFrameMonitor frameMonitor;
|
private VideoFrameMonitor frameMonitor;
|
||||||
@@ -71,7 +75,10 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
|
|||||||
float w = Gdx.graphics.getWidth();
|
float w = Gdx.graphics.getWidth();
|
||||||
float h = Gdx.graphics.getHeight();
|
float h = Gdx.graphics.getHeight();
|
||||||
|
|
||||||
Gdx.app.setLogLevel(Application.LOG_DEBUG);
|
fps = new FPSLogger();
|
||||||
|
font = new BitmapFont();
|
||||||
|
|
||||||
|
//Gdx.app.setLogLevel(Application.LOG_NONE);
|
||||||
|
|
||||||
camera = new OrthographicCamera(1, h/w);
|
camera = new OrthographicCamera(1, h/w);
|
||||||
batch = new SpriteBatch();
|
batch = new SpriteBatch();
|
||||||
@@ -103,6 +110,7 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
|
|||||||
public void dispose() {
|
public void dispose() {
|
||||||
batch.dispose();
|
batch.dispose();
|
||||||
texture.dispose();
|
texture.dispose();
|
||||||
|
font.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -129,18 +137,27 @@ public class NxtARCore implements ApplicationListener, NetworkConnectionListener
|
|||||||
TextureRegion region = new TextureRegion(texture, 0, 0, dimensions.getWidth(), dimensions.getHeight());
|
TextureRegion region = new TextureRegion(texture, 0, 0, dimensions.getWidth(), dimensions.getHeight());
|
||||||
|
|
||||||
sprite = new Sprite(region);
|
sprite = new Sprite(region);
|
||||||
sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth());
|
sprite.setSize(0.9f, 0.9f * sprite.getWidth() / sprite.getHeight());
|
||||||
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
|
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
|
||||||
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
|
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
|
||||||
|
sprite.rotate90(true);
|
||||||
|
|
||||||
batch.setProjectionMatrix(camera.combined);
|
batch.setProjectionMatrix(camera.combined);
|
||||||
batch.begin();{
|
batch.begin();{
|
||||||
sprite.draw(batch);
|
sprite.draw(batch);
|
||||||
|
font.setColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
|
font.setScale(100.0f);
|
||||||
|
font.draw(batch, String.format("Render FPS: %d", Gdx.graphics.getFramesPerSecond()), 10, 300);
|
||||||
}batch.end();
|
}batch.end();
|
||||||
|
|
||||||
|
Gdx.app.log("Main", String.format("Network FPS: %d", videoThread.getFps()));
|
||||||
|
Gdx.app.log("Main", String.format("Render FPS: %d", Gdx.graphics.getFramesPerSecond()));
|
||||||
|
|
||||||
texture.dispose();
|
texture.dispose();
|
||||||
temp.dispose();
|
temp.dispose();
|
||||||
image.dispose();
|
image.dispose();
|
||||||
|
|
||||||
|
//fps.log();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -50,10 +50,15 @@ public class VideoStreamingThread extends Thread {
|
|||||||
private ObjectInputStream reader;
|
private ObjectInputStream reader;
|
||||||
private ObjectOutputStream writer;
|
private ObjectOutputStream writer;
|
||||||
private VideoFrameMonitor frameMonitor;
|
private VideoFrameMonitor frameMonitor;
|
||||||
|
private long then;
|
||||||
|
private long now;
|
||||||
|
private long delta;
|
||||||
|
private int fps;
|
||||||
|
|
||||||
private VideoStreamingThread(){
|
private VideoStreamingThread(){
|
||||||
super(THREAD_NAME);
|
super(THREAD_NAME);
|
||||||
|
|
||||||
|
fps = 0;
|
||||||
netListener = null;
|
netListener = null;
|
||||||
toaster = null;
|
toaster = null;
|
||||||
protocolStarted = false;
|
protocolStarted = false;
|
||||||
@@ -331,8 +336,13 @@ public class VideoStreamingThread extends Thread {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getFps(){
|
||||||
|
return fps;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(){
|
public void run(){
|
||||||
|
int frames = 0;
|
||||||
// Listen on the server socket until a client successfully connects.
|
// Listen on the server socket until a client successfully connects.
|
||||||
do{
|
do{
|
||||||
try{
|
try{
|
||||||
@@ -349,8 +359,19 @@ public class VideoStreamingThread extends Thread {
|
|||||||
}
|
}
|
||||||
}while(client != null && !client.isConnected());
|
}while(client != null && !client.isConnected());
|
||||||
|
|
||||||
|
then = System.currentTimeMillis();
|
||||||
|
|
||||||
while(!done){
|
while(!done){
|
||||||
receiveImage();
|
receiveImage();
|
||||||
|
frames++;
|
||||||
|
now = System.currentTimeMillis();
|
||||||
|
delta = now - then;
|
||||||
|
if(delta >= 1000){
|
||||||
|
fps = frames;
|
||||||
|
frames = 0;
|
||||||
|
then = now;
|
||||||
|
delta = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try{
|
try{
|
||||||
|
Reference in New Issue
Block a user