diff --git a/components/streams/include/ftl/streams/stream.hpp b/components/streams/include/ftl/streams/stream.hpp index 04adcf4e88f5718c4fc8f35938432820da3330ed..c90b5ce4f68faad388bf3bc7f37e3b9a4e45f4b6 100644 --- a/components/streams/include/ftl/streams/stream.hpp +++ b/components/streams/include/ftl/streams/stream.hpp @@ -112,7 +112,7 @@ class Muxer : public Stream { explicit Muxer(nlohmann::json &config); virtual ~Muxer(); - void add(Stream *); + void add(Stream *, int fsid=0); bool onPacket(const StreamCallback &) override; diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index 37e6467f0578cb7c27d4fb51d7a89acd3b792555..161188e9c722163e10423e583820ad1a6a945943 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -310,6 +310,7 @@ void Receiver::setStream(ftl::stream::Stream *s) { //LOG(INFO) << "PACKET: " << spkt.timestamp << ", " << (int)spkt.channel << ", " << (int)pkt.codec << ", " << (int)pkt.definition; // TODO: Allow for multiple framesets + if (spkt.frameSetID() > 0) LOG(INFO) << "Frameset " << spkt.frameSetID() << " received"; if (spkt.frameSetID() > 0) return; // Too many frames, so ignore. diff --git a/components/streams/src/stream.cpp b/components/streams/src/stream.cpp index 2710dfdd2add91de17924885c06ad457bb2f78d5..8175a9a30791fb1ddd99af1b5ca77dfc967c0ad6 100644 --- a/components/streams/src/stream.cpp +++ b/components/streams/src/stream.cpp @@ -49,18 +49,18 @@ Muxer::~Muxer() { } -void Muxer::add(Stream *s) { +void Muxer::add(Stream *s, int fsid) { UNIQUE_LOCK(mutex_,lk); auto &se = streams_.emplace_back(); int i = streams_.size()-1; se.stream = s; - s->onPacket([this,s,i](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { + s->onPacket([this,s,i,fsid](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { //SHARED_LOCK(mutex_, lk); ftl::codecs::StreamPacket spkt2 = spkt; - spkt2.streamID = 0; + spkt2.streamID = fsid; if (spkt2.frame_number < 255) { int id = _lookup(i, spkt.frame_number);