diff --git a/components/streams/include/ftl/streams/builder.hpp b/components/streams/include/ftl/streams/builder.hpp index c13e979014b57d48a288077cf27af658afe00840..cd8f6b5faac472fba05471a2766173ac6b477e05 100644 --- a/components/streams/include/ftl/streams/builder.hpp +++ b/components/streams/include/ftl/streams/builder.hpp @@ -32,6 +32,7 @@ class BaseBuilder : public ftl::data::Generator { void setID(uint32_t id) { id_ = id; } void setPool(ftl::data::Pool *p) { pool_ = p; } + void setBufferSize(size_t s) { bufferSize_ = s; } inline ftl::Handle onFrameSet(const ftl::data::FrameSetCallback &cb) override { return cb_.on(cb); } @@ -51,6 +52,7 @@ class BaseBuilder : public ftl::data::Generator { ftl::data::Pool *pool_; int id_; size_t size_; + size_t bufferSize_ = 1; ftl::Handler<const ftl::data::FrameSetPtr&> cb_; ftl::data::ChangeType ctype_ = ftl::data::ChangeType::COMPLETED; }; @@ -139,8 +141,6 @@ class ForeignBuilder : public BaseBuilder { LockedFrameSet get(int64_t timestamp) override; - void setBufferSize(size_t n) { bufferSize_ = n; } - private: std::list<std::shared_ptr<ftl::data::FrameSet>> framesets_; // Active framesets //std::list<ftl::data::FrameSet*> allocated_; // Keep memory allocations @@ -153,7 +153,6 @@ class ForeignBuilder : public BaseBuilder { std::atomic<int> jobs_; volatile bool skip_; ftl::Handle main_id_; - size_t bufferSize_; std::string name_; diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index 7dade1b0b27ba3dacd4ee6e5682020b1c8ee2b72..fe2a307de486f0b03ce0496fa1361ef4360f849d 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -37,12 +37,12 @@ Receiver::Receiver(nlohmann::json &config, ftl::data::Pool *p) : ftl::Configurab builder_[i].setBufferSize(bsize); }*/ - /*on("frameset_buffer_size", [this](const ftl::config::Event &e) { + on("frameset_buffer_size", [this]() { size_t bsize = value("frameset_buffer_size", 3); for (auto &i : builders_) { - i.second.setBufferSize(bsize); + i.second->setBufferSize(bsize); } - });*/ + }); on("frame_mask", [this]() { frame_mask_ = value("frame_mask", 0xFFFFFFFFu);