diff --git a/applications/vision/src/main.cpp b/applications/vision/src/main.cpp index 8d1b46c75208ecba8f0ff6edde83f73e7836e6d0..a2dd5e1c044e0f26c69d0afabc2cf059767f3494 100644 --- a/applications/vision/src/main.cpp +++ b/applications/vision/src/main.cpp @@ -201,7 +201,7 @@ static void run(ftl::Configurable *root) { // Send any remaining channels... // Note: Ensures these send now, otherwise waits until destructor - //fs->flush(); + fs->flush(Channel::Depth); ++frames; latency += float(ftl::timer::get_time() - fs->timestamp()); diff --git a/components/streams/src/netstream.cpp b/components/streams/src/netstream.cpp index 361df1b92cd2421a87b07fca1010620c1c562847..2f2046a18be77dfe7943d59beabc21d365b7a758 100644 --- a/components/streams/src/netstream.cpp +++ b/components/streams/src/netstream.cpp @@ -88,6 +88,7 @@ bool Net::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet try { // FIXME: This doesn't work for file sources with file relative timestamps... short pre_transmit_latency = short(ftl::timer::get_time() - spkt.timestamp); + if (!net_->send(client.peerid, uri_, pre_transmit_latency, // Time since timestamp for tx diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp index c75d2677a3451aff14266dc45921582187becd95..27abc33b46c749d81d3471ed85369a6e95c7a700 100644 --- a/components/streams/src/sender.cpp +++ b/components/streams/src/sender.cpp @@ -166,10 +166,12 @@ void Sender::post(ftl::data::FrameSet &fs, ftl::codecs::Channel c) { bool do_inject = !do_inject_.test_and_set(); if (do_inject) injection_timestamp_ = fs.timestamp(); - bool do_iframe = injection_timestamp_ == fs.timestamp(); // Add an iframe at the requested frequency. if (add_iframes_ > 0) iframe_ = (iframe_+1) % add_iframes_; + if (iframe_ == 0) injection_timestamp_ = fs.timestamp(); + + bool do_iframe = injection_timestamp_ == fs.timestamp(); FTL_Profile("SenderPost", 0.02); @@ -284,7 +286,7 @@ void Sender::post(ftl::data::FrameSet &fs, ftl::codecs::Channel c) { if (needs_encoding) { // TODO: One thread per channel. - _encodeChannel(fs, c, do_iframe || iframe_ == 0); + _encodeChannel(fs, c, do_iframe); } //do_inject_ = false;