diff --git a/components/streams/include/ftl/streams/stream.hpp b/components/streams/include/ftl/streams/stream.hpp index 2502f8b69c7566b6e94c8d7cacb11ebf7614a904..397d2f11771a76303f9b199529ddd157969b8e01 100644 --- a/components/streams/include/ftl/streams/stream.hpp +++ b/components/streams/include/ftl/streams/stream.hpp @@ -125,6 +125,8 @@ class Muxer : public Stream { void reset() override; + int originStream(int fsid, int fid); + private: struct StreamEntry { Stream *stream; diff --git a/components/streams/src/stream.cpp b/components/streams/src/stream.cpp index 23cd0659884ed67200e0f06523feb3debe05b1d8..6e8c7770baa929bf207f5a61fca8f16eb45664fb 100644 --- a/components/streams/src/stream.cpp +++ b/components/streams/src/stream.cpp @@ -75,6 +75,13 @@ bool Muxer::onPacket(const std::function<void(const ftl::codecs::StreamPacket &, return true; } +int Muxer::originStream(int fsid, int fid) { + if (fid < revmap_.size()) { + return std::get<0>(revmap_[fid]); + } + return -1; +} + bool Muxer::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) { SHARED_LOCK(mutex_, lk); available(spkt.frameSetID()) += spkt.channel;