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

Working pose response in feed live stream

parent ac04332c
Branches
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
......@@ -93,10 +93,6 @@ bool CameraView3D::keyboardCharacterEvent(unsigned int codepoint) {
}
Eigen::Matrix4d CameraView3D::getUpdatedPose() {
double now = glfwGetTime();
delta_ = now - ftime_;
ftime_ = now;
float rrx = ((float)ry_ * 0.2f * delta_);
float rry = (float)rx_ * 0.2f * delta_;
float rrz = 0.0;
......@@ -117,6 +113,10 @@ Eigen::Matrix4d CameraView3D::getUpdatedPose() {
}
void CameraView3D::draw(NVGcontext* ctx) {
double now = glfwGetTime();
delta_ = now - ftime_;
ftime_ = now;
// poll from ctrl_ or send on event instead?
if (!pose_up_to_date_.test_and_set()) {
ctrl_->sendPose(getUpdatedPose());
......
......@@ -137,6 +137,7 @@ class Muxer : public Stream {
struct StreamEntry {
Stream *stream;
std::vector<int> maps;
uint32_t original_fsid = 0;
};
std::vector<StreamEntry> streams_;
......
......@@ -86,12 +86,14 @@ void Muxer::add(Stream *s, size_t fsid) {
auto &se = streams_.emplace_back();
int i = streams_.size()-1;
se.stream = s;
ftl::stream::Muxer::StreamEntry *ptr = &se;
handles_.push_back(std::move(s->onPacket([this,s,i,fsid](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) {
handles_.push_back(std::move(s->onPacket([this,s,i,fsid,ptr](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) {
//TODO: Allow input streams to have other streamIDs
// Same fsid means same streamIDs map together in the end
ftl::codecs::StreamPacket spkt2 = spkt;
ptr->original_fsid = spkt.streamID;
spkt2.streamID = fsid;
if (spkt2.frame_number < 255) {
......@@ -129,9 +131,9 @@ bool Muxer::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packe
//LOG(INFO) << "POST " << spkt.frame_number;
ftl::codecs::StreamPacket spkt2 = spkt;
spkt2.streamID = 0;
spkt2.streamID = se.original_fsid;
spkt2.frame_number = ssid;
se.stream->select(0, selected(spkt.frameSetID()));
se.stream->select(spkt2.streamID, selected(spkt.frameSetID()));
return se.stream->post(spkt2, pkt);
} else {
return false;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment