Fixes to DTSCFix and DTSCMerge programs.

This commit is contained in:
Erik Zandvliet 2013-08-23 15:08:52 +02:00 committed by Thulinma
parent 333c74a2c4
commit 22461badea
3 changed files with 10 additions and 9 deletions

View file

@ -316,7 +316,8 @@ namespace Connector_HTTP {
sstream << "t " << myRef["trackid"].asInt() << "\n"; sstream << "t " << myRef["trackid"].asInt() << "\n";
sstream << "s " << (requestedTime / 10000) << "\np " << (mstime + mslen) <<"\n"; sstream << "s " << (requestedTime / 10000) << "\n";
sstream << "p " << (mstime + mslen) <<"\n";
ss.SendNow(sstream.str().c_str()); ss.SendNow(sstream.str().c_str());
unsigned int myDuration; unsigned int myDuration;

View file

@ -10,7 +10,7 @@
namespace Converters { namespace Converters {
class HeaderEntryDTSC { class HeaderEntryDTSC {
public: public:
HeaderEntryDTSC() : totalSize(0), lastKeyTime(-5000), trackID(0), firstms(-1), lastms(0), keynum(0) {} HeaderEntryDTSC() : totalSize(0), lastKeyTime(-5000), trackID(0), firstms(0x7FFFFFFF), lastms(0), keynum(0) {}
long long int totalSize; long long int totalSize;
std::vector<long long int> parts; std::vector<long long int> parts;
long long int lastKeyTime; long long int lastKeyTime;
@ -125,12 +125,12 @@ namespace Converters {
//should create new track but this shouldnt be needed... //should create new track but this shouldnt be needed...
} }
} }
if (F.getJSON()["time"].asInt() < trackData[currentID].firstms){
trackData[currentID].firstms = F.getJSON()["time"].asInt();
}
if (F.getJSON()["time"].asInt() >= nowpack){ if (F.getJSON()["time"].asInt() >= nowpack){
nowpack = F.getJSON()["time"].asInt(); nowpack = F.getJSON()["time"].asInt();
} }
if (trackData[currentID].firstms == -1){
trackData[currentID].firstms = nowpack;
}
if (trackData[currentID].type == "video"){ if (trackData[currentID].type == "video"){
if (F.getJSON().isMember("keyframe")){ if (F.getJSON().isMember("keyframe")){
int newNum = meta["tracks"][currentID]["keys"].size(); int newNum = meta["tracks"][currentID]["keys"].size();
@ -231,7 +231,7 @@ namespace Converters {
if (fragDur / 1000){ if (fragDur / 1000){
thisFrag["bps"] = fragSize / (fragDur / 1000); thisFrag["bps"] = fragSize / (fragDur / 1000);
if (maxBps < (fragSize / (fragDur / 1000))){ if (maxBps < (fragSize / (fragDur / 1000))){
maxBps = (fragSize / (fragDur / 1000)); maxBps = (fragSize / (fragDur / 999));
} }
} else { } else {
thisFrag["bps"] = 1; thisFrag["bps"] = 1;

View file

@ -122,12 +122,12 @@ namespace Converters {
inFiles[sortIt->second.fileName].selectTracks(trackSelector); inFiles[sortIt->second.fileName].selectTracks(trackSelector);
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){ 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][sortIt->second.trackID];
outFile.writePacket(inFiles[sortIt->second.fileName].getJSON()); outFile.writePacket(inFiles[sortIt->second.fileName].getJSON());
inFiles[sortIt->second.fileName].seekNext();
} }
inFiles[sortIt->second.fileName].seekNext();
} }
} }