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;
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);
//selectedTracks.insert(it->first);
if (trackSpec.str() != ""){
trackSpec << " ";
}
@ -207,6 +206,10 @@ namespace Mist {
while(lastPack){//loop through all
int tid = lastPack.getTrackId();
if (!tid){
getNext(false);
continue;
}
if (!bookKeeping.count(tid)){
bookKeeping[tid].first = 1;
bookKeeping[tid].curPart = 0;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -66,7 +66,7 @@ namespace Mist {
char dataheader[] = {0, 0, 0, 0, 0};
unsigned int dheader_len = 1;
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);
DTSC::Track & track = myMeta.tracks[currentPacket.getTrackId()];

View file

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

View file

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