diff --git a/src/connectors/conn_http_smooth.cpp b/src/connectors/conn_http_smooth.cpp index c5ccd847..090e8780 100644 --- a/src/connectors/conn_http_smooth.cpp +++ b/src/connectors/conn_http_smooth.cpp @@ -316,7 +316,8 @@ namespace Connector_HTTP { 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()); unsigned int myDuration; diff --git a/src/converters/dtscfix.cpp b/src/converters/dtscfix.cpp index 65243d22..f946b68d 100644 --- a/src/converters/dtscfix.cpp +++ b/src/converters/dtscfix.cpp @@ -10,7 +10,7 @@ namespace Converters { class HeaderEntryDTSC { 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; std::vector parts; long long int lastKeyTime; @@ -125,12 +125,12 @@ namespace Converters { //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){ nowpack = F.getJSON()["time"].asInt(); } - if (trackData[currentID].firstms == -1){ - trackData[currentID].firstms = nowpack; - } if (trackData[currentID].type == "video"){ if (F.getJSON().isMember("keyframe")){ int newNum = meta["tracks"][currentID]["keys"].size(); @@ -231,7 +231,7 @@ namespace Converters { if (fragDur / 1000){ thisFrag["bps"] = fragSize / (fragDur / 1000); if (maxBps < (fragSize / (fragDur / 1000))){ - maxBps = (fragSize / (fragDur / 1000)); + maxBps = (fragSize / (fragDur / 999)); } } else { thisFrag["bps"] = 1; diff --git a/src/converters/dtscmerge.cpp b/src/converters/dtscmerge.cpp index 6d34919a..436072f4 100644 --- a/src/converters/dtscmerge.cpp +++ b/src/converters/dtscmerge.cpp @@ -122,12 +122,12 @@ namespace Converters { inFiles[sortIt->second.fileName].selectTracks(trackSelector); inFiles[sortIt->second.fileName].seek_time(sortIt->second.keyTime); 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][sortIt->second.trackID]; outFile.writePacket(inFiles[sortIt->second.fileName].getJSON()); - inFiles[sortIt->second.fileName].seekNext(); } + inFiles[sortIt->second.fileName].seekNext(); } }