Skip to content
Snippets Groups Projects
Commit 13cb7738 authored by Sebastian Hahta's avatar Sebastian Hahta
Browse files

more feed

parent 3207d40c
No related branches found
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
...@@ -12,15 +12,14 @@ ...@@ -12,15 +12,14 @@
#include <ftl/data/framepool.hpp> #include <ftl/data/framepool.hpp>
#include <ftl/streams/stream.hpp> #include <ftl/streams/stream.hpp>
#include <ftl/streams/new_receiver.hpp> #include <ftl/streams/receiver.hpp>
#include <ftl/streams/new_sender.hpp> #include <ftl/streams/sender.hpp>
#include <ftl/streams/new_receiver.hpp>
#include <ftl/data/new_frameset.hpp> #include <ftl/data/new_frameset.hpp>
#include <ftl/render/renderer.hpp> #include <ftl/render/renderer.hpp>
namespace ftl { namespace ftl {
namespace streams { namespace stream {
using FrameSetHandler = std::function<bool(ftl::data::FrameSet&)>; using FrameSetHandler = std::function<bool(ftl::data::FrameSet&)>;
...@@ -57,14 +56,14 @@ private: ...@@ -57,14 +56,14 @@ private:
std::unique_ptr<ftl::stream::Muxer> stream_; std::unique_ptr<ftl::stream::Muxer> stream_;
std::unique_ptr<ftl::stream::Intercept> interceptor_; std::unique_ptr<ftl::stream::Intercept> interceptor_;
std::unique_ptr<ftl::stream::Receiver> receiver_; std::unique_ptr<ftl::stream::Receiver> receiver_;
std::unique_ptr<ftl::streams::Sender> sender_; std::unique_ptr<ftl::stream::Sender> sender_;
uint32_t fs_counter_ = 0;
std::mutex mtx_; std::mutex mtx_;
std::unordered_map<std::string, ftl::stream::Stream*> available_; std::unordered_map<std::string, ftl::stream::Stream*> available_;
std::unordered_map<uint32_t, ftl::operators::Graph*> pre_pipelines_; std::unordered_map<uint32_t, ftl::operators::Graph*> pre_pipelines_;
std::unordered_map<uint32_t, ftl::render::Renderer*> renderers_; std::unordered_map<uint32_t, ftl::render::Renderer*> renderers_;
std::function<void(ftl::operators::Graph&)> pre_pipeline_builder_; std::function<void(ftl::operators::Graph&)> pre_pipeline_builder_;
uint32_t fs_counter_ = 0;
}; };
} }
......
#ifndef _FTL_STREAMS_NRECEIVER_HPP_
#define _FTL_STREAMS_NRECEIVER_HPP_
#include <ftl/data/new_frameset.hpp>
#include <ftl/configurable.hpp>
namespace ftl {
namespace stream {
/**
* Responsible for managing the stream packet to frameset decoding process.
*/
class Receiver : public ftl::Configurable {
public:
using Configurable::Configurable;
void process(ftl::codecs::StreamPacket &spkt, ftl::codecs::Packet &pkt, ftl::data::FrameSet &fs);
};
}
}
#endif
#ifndef _FTL_STREAMS_NSENDER_HPP_
#define _FTL_STREAMS_NSENDER_HPP_
#include <unordered_map>
#include <ftl/codecs/encoder.hpp>
namespace ftl {
namespace streams {
class Sender : public ftl::Configurable {
public:
explicit Sender(nlohmann::json &config);
~Sender();
void setStream(ftl::stream::Stream*);
void post(ftl::data::FrameSet &fs, ftl::codecs::Channel c);
private:
std::unordered_map<uint32_t, ftl::codecs::Encoder*> encoders_;
};
}
}
#endif
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#include <ftl/streams/netstream.hpp> #include <ftl/streams/netstream.hpp>
#include <ftl/streams/filestream.hpp> #include <ftl/streams/filestream.hpp>
using ftl::streams::Feed; using ftl::stream::Feed;
Feed::Feed(nlohmann::json &config, ftl::net::Universe* net) : Feed::Feed(nlohmann::json &config, ftl::net::Universe* net) :
ftl::Configurable(config), net_(net) { ftl::Configurable(config), net_(net) {
...@@ -19,7 +19,7 @@ Feed::Feed(nlohmann::json &config, ftl::net::Universe* net) : ...@@ -19,7 +19,7 @@ Feed::Feed(nlohmann::json &config, ftl::net::Universe* net) :
(ftl::create<ftl::stream::Intercept>(this, "intercept")); (ftl::create<ftl::stream::Intercept>(this, "intercept"));
receiver_ = std::unique_ptr<ftl::stream::Receiver> receiver_ = std::unique_ptr<ftl::stream::Receiver>
(ftl::create<ftl::stream::Receiver>(this, "receiver")); (ftl::create<ftl::stream::Receiver>(this, "receiver", pool_.get()));
interceptor_->setStream(stream_.get()); interceptor_->setStream(stream_.get());
//receiver_->setStream(interceptor_.get()); //receiver_->setStream(interceptor_.get());
...@@ -129,7 +129,7 @@ void Feed::add(const std::string &path) { ...@@ -129,7 +129,7 @@ void Feed::add(const std::string &path) {
throw ftl::exception("bad filename (expects .ftl)"); throw ftl::exception("bad filename (expects .ftl)");
} }
const int fsid = fs_counter_++; const int fsid = allocateFrameId();
auto* fstream = ftl::create<ftl::stream::File>(this, std::string("ftlfile-") + std::to_string(fsid)); auto* fstream = ftl::create<ftl::stream::File>(this, std::string("ftlfile-") + std::to_string(fsid));
if (scheme == ftl::URI::SCHEME_OTHER) { if (scheme == ftl::URI::SCHEME_OTHER) {
...@@ -168,5 +168,9 @@ void Feed::createFrameSet(uint32_t fsid, int size, ftl::data::FrameSet &fs) { ...@@ -168,5 +168,9 @@ void Feed::createFrameSet(uint32_t fsid, int size, ftl::data::FrameSet &fs) {
} }
void Feed::createFrame(uint32_t fsid, ftl::data::Frame &f) { void Feed::createFrame(uint32_t fsid, ftl::data::Frame &f) {
f = ftl::data::Frame(pool_.get(), &stores_[fsid], ftl::data::FrameID(fsid, 0) ,0); //f = ftl::data::Frame(pool_.get(), &stores_[fsid], ftl::data::FrameID(fsid, 0) ,0);
}
uint32_t Feed::allocateFrameId() {
return fs_counter_++;
} }
...@@ -20,7 +20,7 @@ TEST_CASE("ftl::streams::Feed can obtain a frameset", "[]") { ...@@ -20,7 +20,7 @@ TEST_CASE("ftl::streams::Feed can obtain a frameset", "[]") {
}; };
auto* net = ftl::create<ftl::net::Universe>(cfg1); auto* net = ftl::create<ftl::net::Universe>(cfg1);
auto* feed = ftl::create<ftl::streams::Feed>(cfg2, net); auto* feed = ftl::create<ftl::stream::Feed>(cfg2, net);
feed->add("file.ftl"); feed->add("file.ftl");
feed->add("file:///absolutefile.ftl"); feed->add("file:///absolutefile.ftl");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment