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

Minor correction to frame id mapping

parent de61f18c
No related branches found
No related tags found
No related merge requests found
......@@ -85,6 +85,8 @@ void Builder::push(int64_t timestamp, int ix, ftl::rgbd::Frame &frame) {
UNIQUE_LOCK(mutex_, lk);
//LOG(INFO) << "BUILDER PUSH: " << timestamp << ", " << ix << ", " << size_;
// Size is determined by largest frame index received... note that size
// cannot therefore reduce.
if (ix >= size_) {
......@@ -224,6 +226,7 @@ ftl::rgbd::FrameSet *Builder::_findFrameset(int64_t ts) {
ftl::rgbd::FrameSet *Builder::_getFrameset() {
for (auto i=framesets_.begin(); i!=framesets_.end(); i++) {
auto *f = *i;
//LOG(INFO) << "GET: " << f->count << " of " << size_;
if (!f->stale && f->count >= size_) {
//LOG(INFO) << "GET FRAMESET and remove: " << f->timestamp;
auto j = framesets_.erase(i);
......
......@@ -232,7 +232,7 @@ void Receiver::_processVideo(const StreamPacket &spkt, const Packet &pkt) {
if ((frame.completed & sel) == sel) {
timestamp_ = frame.timestamp;
//LOG(INFO) << "BUILDER PUSH: " << timestamp_ << ", " << spkt.frameNumber();
//LOG(INFO) << "BUILDER PUSH: " << timestamp_ << ", " << spkt.frameNumber() << ", " << (int)pkt.frame_count;
if (frame.state.getLeft().width == 0) {
LOG(WARNING) << "Missing calibration, skipping frame";
......
......@@ -55,11 +55,15 @@ void Muxer::add(Stream *s) {
s->onPacket([this,s,i](const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) {
//SHARED_LOCK(mutex_, lk);
int id = _lookup(i, spkt.frame_number);
ftl::codecs::StreamPacket spkt2 = spkt;
spkt2.streamID = 0;
spkt2.frame_number = id;
if (spkt2.frame_number < 255) {
int id = _lookup(i, spkt.frame_number);
spkt2.frame_number = id;
}
_notify(spkt2, pkt);
s->select(spkt.streamID, selected(0));
});
......@@ -79,6 +83,8 @@ bool Muxer::post(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packe
auto [sid, ssid] = revmap_[spkt.frame_number];
auto &se = streams_[sid];
//LOG(INFO) << "POST " << spkt.frame_number;
ftl::codecs::StreamPacket spkt2 = spkt;
spkt2.streamID = 0;
spkt2.frame_number = ssid;
......@@ -138,7 +144,7 @@ int Muxer::_lookup(int sid, int ssid) {
void Muxer::_notify(const ftl::codecs::StreamPacket &spkt, const ftl::codecs::Packet &pkt) {
SHARED_LOCK(mutex_, lk);
available(spkt.frameSetID()) += spkt.channel;
if (cb_) cb_(spkt, pkt);
if (cb_) cb_(spkt, pkt); // spkt.frame_number < 255 &&
}
// ==== Broadcaster ============================================================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment