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

Reset speaker on packet errors

parent c4673e5a
No related branches found
No related tags found
1 merge request!343Recorder and packet ordering fixes
Pipeline #29512 passed
......@@ -35,8 +35,7 @@ InputOutput::InputOutput(ftl::Configurable *root, ftl::net::Universe *net) :
feed_ = std::unique_ptr<ftl::stream::Feed>
(ftl::create<ftl::stream::Feed>(root, "feed", net));
speaker_ = std::unique_ptr<ftl::audio::Speaker>
(ftl::create<ftl::audio::Speaker>(root, "speaker"));
speaker_ = feed_->speaker();
//auto* f = feed_->filter({ftl::codecs::Channel::Colour, ftl::codecs::Channel::Depth});
//feed_->render(f, Eigen::Matrix4d::Identity());
......
......@@ -35,13 +35,13 @@ public:
ftl::net::Universe* net() const;
ftl::ctrl::Master* master() const { return master_.get(); }
ftl::stream::Feed* feed() const { return feed_.get(); }
ftl::audio::Speaker* speaker() const { return speaker_.get(); }
ftl::audio::Speaker* speaker() const { return speaker_; }
private:
ftl::net::Universe* net_;
std::unique_ptr<ftl::stream::Feed> feed_;
std::unique_ptr<ftl::ctrl::Master> master_;
std::unique_ptr<ftl::audio::Speaker> speaker_;
ftl::audio::Speaker *speaker_;
};
......
......@@ -10,6 +10,7 @@
#include <ftl/rgbd/source.hpp>
#include <ftl/data/framepool.hpp>
#include <ftl/audio/mixer.hpp>
#include <ftl/audio/speaker.hpp>
#include <ftl/streams/stream.hpp>
#include <ftl/streams/receiver.hpp>
......@@ -141,6 +142,8 @@ public:
inline ftl::audio::StereoMixerF<100> &mixer() { return mixer_; }
ftl::audio::Speaker *speaker() { return speaker_; }
void startRecording(Filter *, const std::string &filename);
void startStreaming(Filter *, const std::string &filename);
void startStreaming(Filter *);
......@@ -181,6 +184,7 @@ private:
std::condition_variable cv_net_connect_;
ftl::net::Universe* const net_;
ftl::audio::Speaker *speaker_;
std::unique_ptr<ftl::data::Pool> pool_;
std::unique_ptr<ftl::stream::Intercept> interceptor_;
// multiple streams to single fs
......
......@@ -102,6 +102,8 @@ Feed::Feed(nlohmann::json &config, ftl::net::Universe*net) :
"recorder"
});
speaker_ = ftl::create<ftl::audio::Speaker>(this, "speaker");
pool_ = std::make_unique<ftl::data::Pool>(3,5);
stream_ = std::unique_ptr<ftl::stream::Muxer>
......@@ -169,6 +171,8 @@ Feed::Feed(nlohmann::json &config, ftl::net::Universe*net) :
handle_rec_error_ = receiver_->onError([this](ftl::data::FrameID fid) {
LOG(WARNING) << "Receiver error: resetting";
stream_->reset();
speaker_->reset();
mixer_.reset();
return true;
});
......@@ -267,6 +271,8 @@ Feed::~Feed() {
for (auto *s : garbage) {
delete s;
}
delete speaker_;
}
void Feed::_processAudio(const ftl::data::FrameSetPtr &fs) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment