Almost workzez. Precious is a bit unoptimised.

This commit is contained in:
Oswald Auguste de Bruin 2013-09-11 15:05:00 +02:00 committed by Erik Zandvliet
parent 8178aa9e80
commit 4d3e06277d

View file

@ -39,6 +39,7 @@ namespace Connector_HTTP {
OGG::headerPages oggMeta; OGG::headerPages oggMeta;
OGG::Page curOggPage; OGG::Page curOggPage;
std::map <long long unsigned int, std::vector<JSON::Value> > DTSCBuffer; std::map <long long unsigned int, std::vector<JSON::Value> > DTSCBuffer;
std::set <long long unsigned int> sendReady;
//std::map <long long unsigned int, long long unsigned int> prevGran; //std::map <long long unsigned int, long long unsigned int> prevGran;
std::vector<unsigned int> curSegTable; std::vector<unsigned int> curSegTable;
long long int currID = 0; long long int currID = 0;
@ -166,6 +167,9 @@ namespace Connector_HTTP {
oggMeta.readDTSCHeader(Strm.metadata); oggMeta.readDTSCHeader(Strm.metadata);
conn.SendNow((char*)oggMeta.parsedPages.c_str(), oggMeta.parsedPages.size()); conn.SendNow((char*)oggMeta.parsedPages.c_str(), oggMeta.parsedPages.size());
progressive_has_sent_header = true; progressive_has_sent_header = true;
//setting sendReady to not ready
sendReady.clear();
//prevID = Strm.getPacket()["trackid"].asInt(); //prevID = Strm.getPacket()["trackid"].asInt();
//prevGran = Strm.getPacket()["granule"].asInt(); //prevGran = Strm.getPacket()["granule"].asInt();
} }
@ -183,10 +187,17 @@ namespace Connector_HTTP {
} }
if ((prevGran != 0 && (prevGran == -1 || currGran != prevGran)) ){ if ((prevGran != 0 && (prevGran == -1 || currGran != prevGran)) ){
curOggPage.readDTSCVector(DTSCBuffer[currID], oggMeta.DTSCID2OGGSerial[currID], oggMeta.DTSCID2seqNum[currID]); curOggPage.readDTSCVector(DTSCBuffer[currID], oggMeta.DTSCID2OGGSerial[currID], oggMeta.DTSCID2seqNum[currID]);
conn.SendNow((char*)curOggPage.getPage(), curOggPage.getPageSize()); //conn.SendNow((char*)curOggPage.getPage(), curOggPage.getPageSize());
sendBuffer += std::string((char*)curOggPage.getPage(), curOggPage.getPageSize());
DTSCBuffer[currID].clear(); DTSCBuffer[currID].clear();
sendReady.insert(currID);
oggMeta.DTSCID2seqNum[currID]++; oggMeta.DTSCID2seqNum[currID]++;
} }
if (sendReady.size()==oggMeta.DTSCID2OGGSerial.size()){
conn.SendNow(sendBuffer);
sendBuffer = "";
sendReady.clear();
}
DTSCBuffer[currID].push_back(Strm.getPacket()); DTSCBuffer[currID].push_back(Strm.getPacket());
prevID = currID; prevID = currID;
} }