From 96079492985a05182f0bbcd0cf41995b30805a10 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Mon, 13 Jul 2020 12:41:01 +0300 Subject: [PATCH] Move packet request flag --- components/streams/src/netstream.cpp | 7 ++++--- components/streams/src/receiver.cpp | 2 +- components/streams/src/sender.cpp | 2 +- components/streams/src/stream.cpp | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/components/streams/src/netstream.cpp b/components/streams/src/netstream.cpp index e871df7ec..44ae5c804 100644 --- a/components/streams/src/netstream.cpp +++ b/components/streams/src/netstream.cpp @@ -202,7 +202,7 @@ bool Net::begin() { // If hosting and no data then it is a request for data // Note: a non host can receive empty data, meaning data is available // but that you did not request it - if (host_ && pkt.data.size() == 0 && pkt.flags == ftl::codecs::kFlagRequest) { + if (host_ && pkt.data.size() == 0 && (spkt.flags & ftl::codecs::kFlagRequest)) { // FIXME: Allow unselecting ...? if (spkt.frameSetID() == 255) { for (size_t i=0; i<size(); ++i) { @@ -294,15 +294,16 @@ bool Net::_sendRequest(Channel c, uint8_t frameset, uint8_t frames, uint8_t coun 0, count, bitrate, - ftl::codecs::kFlagRequest + 0 }; StreamPacket spkt = { - 4, + 5, ftl::timer::get_time(), frameset, frames, c, + ftl::codecs::kFlagRequest, 0, 0, 0 diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index b29654052..29f008819 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -385,7 +385,7 @@ void Receiver::setStream(ftl::stream::Stream *s) { // No data packet means channel is only available. if (pkt.data.size() == 0) { - if (spkt.streamID < 255 && pkt.flags == 0) { + if (spkt.streamID < 255 && !(spkt.flags & ftl::codecs::kFlagRequest)) { // Get the frameset auto fs = builder(spkt.streamID).get(spkt.timestamp, spkt.frame_number+pkt.frame_count-1); const auto *cs = stream_; diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp index 05b5ebcca..9348322ab 100644 --- a/components/streams/src/sender.cpp +++ b/components/streams/src/sender.cpp @@ -46,7 +46,7 @@ void Sender::setStream(ftl::stream::Stream*s) { //if (stream_) stream_->onPacket(nullptr); stream_ = s; handle_ = stream_->onPacket([this](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { - if (pkt.data.size() > 0 || pkt.flags == 0) return true; + if (pkt.data.size() > 0 || !(spkt.flags & ftl::codecs::kFlagRequest)) return true; LOG(INFO) << "SENDER REQUEST : " << (int)spkt.channel; diff --git a/components/streams/src/stream.cpp b/components/streams/src/stream.cpp index d5cb76a8d..c80f9f284 100644 --- a/components/streams/src/stream.cpp +++ b/components/streams/src/stream.cpp @@ -120,7 +120,7 @@ int Muxer::originStream(size_t fsid, int fid) { bool Muxer::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { SHARED_LOCK(mutex_, lk); - if (pkt.data.size() > 0 || !(pkt.flags & ftl::codecs::kFlagRequest)) available(spkt.frameSetID()) += spkt.channel; + if (pkt.data.size() > 0 || !(spkt.flags & ftl::codecs::kFlagRequest)) available(spkt.frameSetID()) += spkt.channel; if (spkt.streamID < ftl::stream::kMaxStreams && spkt.frame_number < revmap_[spkt.streamID].size()) { auto [sid, ssid] = revmap_[spkt.streamID][spkt.frame_number]; -- GitLab