diff --git a/src/input/input_buffer.cpp b/src/input/input_buffer.cpp index 4501ce84..37561e14 100644 --- a/src/input/input_buffer.cpp +++ b/src/input/input_buffer.cpp @@ -57,7 +57,16 @@ namespace Mist { long long unsigned int firstms = 0xFFFFFFFFFFFFFFFFull; long long unsigned int lastms = 0; for (std::map::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++) { - if (it->second.firstms < firstms) { + if (it->second.init.size()){ + if (!initData.count(it->first) || initData[it->first] != it->second.init){ + initData[it->first] = it->second.init; + } + }else{ + if (initData.count(it->first)){ + it->second.init = initData[it->first]; + } + } + if (it->second.firstms < firstms){ firstms = it->second.firstms; } if (it->second.lastms > lastms){ diff --git a/src/input/input_buffer.h b/src/input/input_buffer.h index f3fce2ad..c7d55616 100644 --- a/src/input/input_buffer.h +++ b/src/input/input_buffer.h @@ -33,6 +33,9 @@ namespace Mist { std::map > bufferLocations; std::map pushLocation; inputBuffer * singleton; + + //This is used for an ugly fix to prevent metadata from dissapearing in some cases. + std::map initData; }; }