Memory optimizations and supporting code for libmist changes.

This commit is contained in:
Thulinma 2014-05-11 14:37:35 +02:00
parent 6ade063756
commit 8e3d636381
9 changed files with 15 additions and 12 deletions

View file

@ -187,7 +187,6 @@ namespace Mist {
std::stringstream trackSpec; std::stringstream trackSpec;
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++) { for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++) {
DEBUG_MSG(DLVL_VERYHIGH, "Track %d encountered", it->first); DEBUG_MSG(DLVL_VERYHIGH, "Track %d encountered", it->first);
//selectedTracks.insert(it->first);
if (trackSpec.str() != ""){ if (trackSpec.str() != ""){
trackSpec << " "; trackSpec << " ";
} }
@ -207,6 +206,10 @@ namespace Mist {
while(lastPack){//loop through all while(lastPack){//loop through all
int tid = lastPack.getTrackId(); int tid = lastPack.getTrackId();
if (!tid){
getNext(false);
continue;
}
if (!bookKeeping.count(tid)){ if (!bookKeeping.count(tid)){
bookKeeping[tid].first = 1; bookKeeping[tid].first = 1;
bookKeeping[tid].curPart = 0; bookKeeping[tid].curPart = 0;

View file

@ -56,10 +56,10 @@ namespace Mist {
void Output::updateMeta(){ void Output::updateMeta(){
//read metadata from page to myMeta variable //read metadata from page to myMeta variable
if (streamIndex.mapped){ if (streamIndex.mapped){
JSON::Value jsonMeta; DTSC::Packet tmpMeta(streamIndex.mapped, streamIndex.len, true);
unsigned int i = 0; if (tmpMeta){
JSON::fromDTMI((const unsigned char*)streamIndex.mapped + 8, streamIndex.len - 8, i, jsonMeta); myMeta.reinit(tmpMeta);
myMeta = DTSC::Meta(jsonMeta); }
} }
} }

View file

@ -108,7 +108,7 @@ namespace Mist {
bool IsKeyFrame = false; bool IsKeyFrame = false;
char * dataPointer = 0; char * dataPointer = 0;
int dataLen = 0; unsigned int dataLen = 0;
currentPacket.getString("data", dataPointer, dataLen); currentPacket.getString("data", dataPointer, dataLen);
if (currentPacket.getTime() >= until){ if (currentPacket.getTime() >= until){

View file

@ -79,7 +79,7 @@ namespace Mist {
return; return;
} }
char * dataPointer = 0; char * dataPointer = 0;
int len = 0; unsigned int len = 0;
currentPacket.getString("data", dataPointer, len); currentPacket.getString("data", dataPointer, len);
HTTP_S.Chunkify(dataPointer, len, myConn); HTTP_S.Chunkify(dataPointer, len, myConn);
} }

View file

@ -25,7 +25,7 @@ namespace Mist {
void OutProgressiveMP3::sendNext(){ void OutProgressiveMP3::sendNext(){
char * dataPointer = 0; char * dataPointer = 0;
int len = 0; unsigned int len = 0;
currentPacket.getString("data", dataPointer, len); currentPacket.getString("data", dataPointer, len);
myConn.SendNow(dataPointer, len); myConn.SendNow(dataPointer, len);
} }

View file

@ -435,7 +435,7 @@ namespace Mist {
void OutProgressiveMP4::sendNext(){ void OutProgressiveMP4::sendNext(){
static bool perfect = true; static bool perfect = true;
char * dataPointer = 0; char * dataPointer = 0;
int len = 0; unsigned int len = 0;
currentPacket.getString("data", dataPointer, len); currentPacket.getString("data", dataPointer, len);
if (currentPacket.getTrackId() != sortSet.begin()->trackID || currentPacket.getTime() != sortSet.begin()->time){ if (currentPacket.getTrackId() != sortSet.begin()->trackID || currentPacket.getTime() != sortSet.begin()->time){
if (perfect){ if (perfect){

View file

@ -66,7 +66,7 @@ namespace Mist {
char dataheader[] = {0, 0, 0, 0, 0}; char dataheader[] = {0, 0, 0, 0, 0};
unsigned int dheader_len = 1; unsigned int dheader_len = 1;
char * tmpData = 0;//pointer to raw media data char * tmpData = 0;//pointer to raw media data
int data_len = 0;//length of processed media data unsigned int data_len = 0;//length of processed media data
currentPacket.getString("data", tmpData, data_len); currentPacket.getString("data", tmpData, data_len);
DTSC::Track & track = myMeta.tracks[currentPacket.getTrackId()]; DTSC::Track & track = myMeta.tracks[currentPacket.getTrackId()];

View file

@ -33,7 +33,7 @@ namespace Mist {
void OutProgressiveSRT::sendNext(){ void OutProgressiveSRT::sendNext(){
char * dataPointer = 0; char * dataPointer = 0;
int len = 0; unsigned int len = 0;
currentPacket.getString("data", dataPointer, len); currentPacket.getString("data", dataPointer, len);
std::stringstream tmp; std::stringstream tmp;
if(!webVTT) { if(!webVTT) {

View file

@ -61,7 +61,7 @@ namespace Mist {
bool IsKeyFrame = false; bool IsKeyFrame = false;
char * dataPointer = 0; char * dataPointer = 0;
int dataLen = 0; unsigned int dataLen = 0;
currentPacket.getString("data", dataPointer, dataLen); currentPacket.getString("data", dataPointer, dataLen);
//detect packet type, and put converted data into ToPack. //detect packet type, and put converted data into ToPack.