mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 23:14:34 +02:00
Slightly better fps computation.
This commit is contained in:
parent
e1f76b2bdf
commit
9cb671aa56
1 changed files with 7 additions and 5 deletions
|
@ -16,7 +16,7 @@
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "Webcam.h"
|
#include "Webcam.h"
|
||||||
|
|
||||||
Webcam::Webcam() : _frameTextureID(0), _frameCount(0) {
|
Webcam::Webcam() : _frameTextureID(0), _frameCount(0), _startTimestamp(0) {
|
||||||
// the grabber simply runs as fast as possible
|
// the grabber simply runs as fast as possible
|
||||||
_grabber = new FrameGrabber();
|
_grabber = new FrameGrabber();
|
||||||
_grabber->moveToThread(&_grabberThread);
|
_grabber->moveToThread(&_grabberThread);
|
||||||
|
@ -26,9 +26,6 @@ void Webcam::init() {
|
||||||
// start the grabber thread
|
// start the grabber thread
|
||||||
_grabberThread.start();
|
_grabberThread.start();
|
||||||
|
|
||||||
// remember when we started
|
|
||||||
_startTimestamp = _lastFrameTimestamp = usecTimestampNow();
|
|
||||||
|
|
||||||
// let the grabber know we're ready for the first frame
|
// let the grabber know we're ready for the first frame
|
||||||
QMetaObject::invokeMethod(_grabber, "grabFrame");
|
QMetaObject::invokeMethod(_grabber, "grabFrame");
|
||||||
}
|
}
|
||||||
|
@ -94,7 +91,12 @@ void Webcam::setFrame(void* image) {
|
||||||
const int MAX_FPS = 60;
|
const int MAX_FPS = 60;
|
||||||
const int MIN_FRAME_DELAY = 1000000 / MAX_FPS;
|
const int MIN_FRAME_DELAY = 1000000 / MAX_FPS;
|
||||||
long long now = usecTimestampNow();
|
long long now = usecTimestampNow();
|
||||||
long long remaining = MIN_FRAME_DELAY - (now - _lastFrameTimestamp);
|
long long remaining = MIN_FRAME_DELAY;
|
||||||
|
if (_startTimestamp == 0) {
|
||||||
|
_startTimestamp = now;
|
||||||
|
} else {
|
||||||
|
remaining -= (now - _lastFrameTimestamp);
|
||||||
|
}
|
||||||
_lastFrameTimestamp = now;
|
_lastFrameTimestamp = now;
|
||||||
|
|
||||||
// let the grabber know we're ready for the next frame
|
// let the grabber know we're ready for the next frame
|
||||||
|
|
Loading…
Reference in a new issue