Skip to content
Snippets Groups Projects
Commit 4329a615 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

WIP Fix loading of multiple ftl files

parent 79b7725a
No related branches found
No related tags found
1 merge request!316Resolves #343 GUI and Frame Refactor
......@@ -147,7 +147,7 @@ class Muxer : public Stream {
SHARED_MUTEX mutex_;
void _notify(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt);
int _lookup(size_t fsid, int sid, int ssid);
int _lookup(size_t fsid, int sid, int ssid, int count);
};
/**
......
......@@ -346,6 +346,7 @@ bool File::run() {
}
bool File::begin(bool dorun) {
if (active_) return true;
if (mode_ == Mode::Read) {
if (!checked_) _checkFile();
_open();
......
......@@ -95,7 +95,7 @@ void Muxer::add(Stream *s, size_t fsid) {
spkt2.streamID = fsid;
if (spkt2.frame_number < 255) {
int id = _lookup(fsid, i, spkt.frame_number);
int id = _lookup(fsid, i, spkt.frame_number, pkt.frame_count);
spkt2.frame_number = id;
}
......@@ -168,7 +168,7 @@ void Muxer::reset() {
}
}
int Muxer::_lookup(size_t fsid, int sid, int ssid) {
int Muxer::_lookup(size_t fsid, int sid, int ssid, int count) {
SHARED_LOCK(mutex_, lk);
auto &se = streams_[sid];
if (static_cast<uint32_t>(ssid) >= se.maps.size()) {
......@@ -179,6 +179,11 @@ int Muxer::_lookup(size_t fsid, int sid, int ssid) {
int nid = nid_[fsid]++;
revmap_[fsid].push_back({sid, static_cast<uint32_t>(se.maps.size())});
se.maps.push_back(nid);
for (int i=1; i<count; ++i) {
int nid = nid_[fsid]++;
revmap_[fsid].push_back({sid, static_cast<uint32_t>(se.maps.size())});
se.maps.push_back(nid);
}
}
}
lk.lock();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment