From 98438b680b22f388d6f0c605d3b5ca21edc0f759 Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Thu, 21 Jul 2016 17:43:47 +0200 Subject: [PATCH] Renegotiation of extra tracks if a new header is sent in dtsc pull --- src/input/input_dtsc.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/input/input_dtsc.cpp b/src/input/input_dtsc.cpp index 51013922..8fa84313 100644 --- a/src/input/input_dtsc.cpp +++ b/src/input/input_dtsc.cpp @@ -259,6 +259,22 @@ namespace Mist { //Read next packet before returning thisPacket.reInit(srcConn); } + }else if (thisPacket.getVersion() == DTSC::DTSC_HEAD){ + DTSC::Meta newMeta; + newMeta.reinit(thisPacket); + std::set newTracks; + for (std::map::iterator it = newMeta.tracks.begin(); it != newMeta.tracks.end(); it++){ + if (!myMeta.tracks.count(it->first)){ + newTracks.insert(it->first); + } + } + + for (std::set::iterator it = newTracks.begin(); it != newTracks.end(); it++){ + INFO_MSG("Adding track %d to internal metadata", *it); + myMeta.tracks[*it] = newMeta.tracks[*it]; + continueNegotiate(*it, true); + } + thisPacket.reInit(srcConn); } }else{ if (smart) {