Small updates and fixes to the dtsc library.

This commit is contained in:
Erik Zandvliet 2013-06-27 13:06:09 +02:00
parent f88bee5baf
commit 526feda148
2 changed files with 8 additions and 5 deletions

View file

@ -212,15 +212,16 @@ void DTSC::Stream::addPacket(JSON::Value & newPack){
JSON::Value key; JSON::Value key;
key["time"] = newPack["time"]; key["time"] = newPack["time"];
if (keySize){ if (keySize){
key["num"] = (*(metadata["tracks"][trackMapping[newPos.trackID]]["keys"].ArrEnd()--))["num"].asInt() + 1; key["num"] = metadata["tracks"][trackMapping[newPos.trackID]]["keys"][keySize -1]["num"].asInt() + 1;
}else{ }else{
key["num"] = 1; key["num"] = 1;
} }
metadata["tracks"][trackMapping[newPos.trackID]]["keys"].append(key);
} }
unsigned int timeBuffered = 0; unsigned int timeBuffered = 0;
if (keySize > 1){ if (keySize > 1){
//increase buffer size if no keyframes available or too little time available //increase buffer size if no keyframes available or too little time available
timeBuffered = (buffers.end()--)->second["time"].asInt() - buffers.begin()->second["time"].asInt(); timeBuffered = buffers.rbegin()->second["time"].asInt() - buffers.begin()->second["time"].asInt();
} }
if (buffercount > 1 && (keyframes.size() < 2 || timeBuffered < buffertime)){ if (buffercount > 1 && (keyframes.size() < 2 || timeBuffered < buffertime)){
buffercount++; buffercount++;
@ -612,9 +613,11 @@ void DTSC::File::readHeader(int pos){
} }
//if there is another header, read it and replace metadata with that one. //if there is another header, read it and replace metadata with that one.
if (metadata.isMember("moreheader") && metadata["moreheader"].asInt() > 0){ if (metadata.isMember("moreheader") && metadata["moreheader"].asInt() > 0){
if (metadata["moreheader"].asInt() < getBytePosEOF()){
readHeader(metadata["moreheader"].asInt()); readHeader(metadata["moreheader"].asInt());
return; return;
} }
}
metadata["vod"] = true; metadata["vod"] = true;
metadata.netPrepare(); metadata.netPrepare();
} }