From 1d6e641e9651912ef561b562d43462f7593a51c5 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Mon, 27 Jan 2020 10:29:33 +0200
Subject: [PATCH] Allow lookup of origin stream

---
 components/streams/include/ftl/streams/stream.hpp | 2 ++
 components/streams/src/stream.cpp                 | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/components/streams/include/ftl/streams/stream.hpp b/components/streams/include/ftl/streams/stream.hpp
index 2502f8b69..397d2f117 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 23cd06598..6e8c7770b 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;
-- 
GitLab