Minor fixes to dtscMerge and Player.

This commit is contained in:
Erik Zandvliet 2013-08-09 09:51:31 +02:00
parent aad94e2ded
commit 6d4fa4d1ef
2 changed files with 14 additions and 9 deletions

View file

@ -172,6 +172,7 @@ int main(int argc, char** argv){
bool ret = source.seek_time(ms); bool ret = source.seek_time(ms);
lasttime = Util::epoch(); lasttime = Util::epoch();
lastTime = 0; lastTime = 0;
playUntil = 0;
break; break;
} }
case 'p': { //play case 'p': { //play

View file

@ -83,7 +83,6 @@ namespace Converters {
long long int oldID = trackIt->second["trackid"].asInt(); long long int oldID = trackIt->second["trackid"].asInt();
long long int mappedID = getNextFree(trackMapping); long long int mappedID = getNextFree(trackMapping);
trackMapping[it->first].insert(std::pair<int,int>(oldID,mappedID)); trackMapping[it->first].insert(std::pair<int,int>(oldID,mappedID));
trackIt->second["trackid"] = mappedID;
for (JSON::ArrIter keyIt = trackIt->second["keys"].ArrBegin(); keyIt != trackIt->second["keys"].ArrEnd(); keyIt++){ for (JSON::ArrIter keyIt = trackIt->second["keys"].ArrBegin(); keyIt != trackIt->second["keys"].ArrEnd(); keyIt++){
keyframeInfo tmpInfo; keyframeInfo tmpInfo;
tmpInfo.fileName = it->first; tmpInfo.fileName = it->first;
@ -99,12 +98,15 @@ namespace Converters {
} }
allSorted.insert(std::pair<int,keyframeInfo>((*keyIt)["time"].asInt(),tmpInfo)); allSorted.insert(std::pair<int,keyframeInfo>((*keyIt)["time"].asInt(),tmpInfo));
} }
trackIt->second.removeMember("keys"); std::cerr << it->first << "::" << oldID << ":\n" << trackIt->second.toPrettyString() << std::endl << std::endl;
trackIt->second.removeMember("frags"); newMeta["tracks"][it->first + JSON::Value(mappedID).asString()] = trackIt->second;
newMeta["tracks"][JSON::Value(mappedID).asString()] = trackIt->second; newMeta["tracks"][it->first + JSON::Value(mappedID).asString()]["trackid"] = mappedID;
newMeta["tracks"][it->first + JSON::Value(mappedID).asString()].removeMember("keys");
newMeta["tracks"][it->first + JSON::Value(mappedID).asString()].removeMember("frags");
} }
} }
} }
newMeta["allsortedsize"] = (long long int)allSorted.size();
if (fullSort){ if (fullSort){
meta.null(); meta.null();
@ -121,16 +123,18 @@ namespace Converters {
inFiles[sortIt->second.fileName].seek_time(sortIt->second.keyTime); inFiles[sortIt->second.fileName].seek_time(sortIt->second.keyTime);
inFiles[sortIt->second.fileName].seekNext(); inFiles[sortIt->second.fileName].seekNext();
while (inFiles[sortIt->second.fileName].getJSON() && inFiles[sortIt->second.fileName].getBytePos() < sortIt->second.endBPos && !inFiles[sortIt->second.fileName].reachedEOF()){ while (inFiles[sortIt->second.fileName].getJSON() && inFiles[sortIt->second.fileName].getBytePos() < sortIt->second.endBPos && !inFiles[sortIt->second.fileName].reachedEOF()){
if (inFiles[sortIt->second.fileName].getJSON()["trackid"].asInt() == sortIt->second.trackID){
inFiles[sortIt->second.fileName].getJSON()["trackid"] = trackMapping[sortIt->second.fileName][inFiles[sortIt->second.fileName].getJSON()["trackid"].asInt()]; inFiles[sortIt->second.fileName].getJSON()["trackid"] = trackMapping[sortIt->second.fileName][inFiles[sortIt->second.fileName].getJSON()["trackid"].asInt()];
outFile.writePacket(inFiles[sortIt->second.fileName].getJSON()); outFile.writePacket(inFiles[sortIt->second.fileName].getJSON());
inFiles[sortIt->second.fileName].seekNext(); inFiles[sortIt->second.fileName].seekNext();
} }
} }
}
if (fullSort || (meta.isMember("merged") && meta["merged"])){ if (fullSort || (meta.isMember("merged") && meta["merged"])){
newMeta["tracks"]["merged"] = true; newMeta["merged"] = true;
}else{ }else{
newMeta["tracks"].removeMember("merged"); newMeta.removeMember("merged");
} }
std::string writeMeta = newMeta.toPacked(); std::string writeMeta = newMeta.toPacked();
meta["moreheader"] = outFile.addHeader(writeMeta); meta["moreheader"] = outFile.addHeader(writeMeta);