Skip to content
Snippets Groups Projects
Commit d9fd6e1a authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Limit render fps

parent 0eb54c27
No related branches found
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
Pipeline #28406 failed
......@@ -119,8 +119,12 @@ class ManualSourceBuilder : public LocalBuilder {
void tick();
inline void setFrameRate(int fps) { mspf_ = 1000/fps; };
private:
ftl::data::DiscreteSource *src_;
int mspf_ = 30;
int64_t last_timestamp_=0;
};
class ForeignBuilder : public BaseBuilder {
......
......@@ -171,6 +171,9 @@ void ManualSourceBuilder::tick() {
if (!src_) return;
int64_t ts = ftl::timer::get_time();
if (ts < last_timestamp_ + mspf_) return;
last_timestamp_ = ts;
src_->capture(ts);
auto fs = getNextFrameSet(ts);
......
......@@ -643,6 +643,9 @@ uint32_t Feed::add(const std::string &path) {
// Create local builder instance
auto *creator = new ftl::streams::ManualSourceBuilder(pool_.get(), fsid, source);
if (uri.getBaseURI() == "device::openvr") creator->setFrameRate(1000);
else creator->setFrameRate(30);
std::shared_ptr<ftl::streams::BaseBuilder> creatorptr(creator);
lk.lock();
receiver_->registerBuilder(creatorptr);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment