Memory optimizations and supporting code for libmist changes.
This commit is contained in:
parent
6ade063756
commit
8e3d636381
9 changed files with 15 additions and 12 deletions
|
@ -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;
|
||||||
|
|
|
@ -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);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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){
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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){
|
||||||
|
|
|
@ -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()];
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Add table
Reference in a new issue