From 4d3e06277d1d8bf6fc0856bf907aec8b6127840a Mon Sep 17 00:00:00 2001 From: Oswald Auguste de Bruin Date: Wed, 11 Sep 2013 15:05:00 +0200 Subject: [PATCH] Almost workzez. Precious is a bit unoptimised. --- src/connectors/conn_http_progressive_ogg.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/connectors/conn_http_progressive_ogg.cpp b/src/connectors/conn_http_progressive_ogg.cpp index bca9dbf1..e7cf2547 100644 --- a/src/connectors/conn_http_progressive_ogg.cpp +++ b/src/connectors/conn_http_progressive_ogg.cpp @@ -39,6 +39,7 @@ namespace Connector_HTTP { OGG::headerPages oggMeta; OGG::Page curOggPage; std::map > DTSCBuffer; + std::set sendReady; //std::map prevGran; std::vector curSegTable; long long int currID = 0; @@ -166,6 +167,9 @@ namespace Connector_HTTP { oggMeta.readDTSCHeader(Strm.metadata); conn.SendNow((char*)oggMeta.parsedPages.c_str(), oggMeta.parsedPages.size()); progressive_has_sent_header = true; + //setting sendReady to not ready + sendReady.clear(); + //prevID = Strm.getPacket()["trackid"].asInt(); //prevGran = Strm.getPacket()["granule"].asInt(); } @@ -183,10 +187,17 @@ namespace Connector_HTTP { } if ((prevGran != 0 && (prevGran == -1 || currGran != prevGran)) ){ 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(); + sendReady.insert(currID); oggMeta.DTSCID2seqNum[currID]++; } + if (sendReady.size()==oggMeta.DTSCID2OGGSerial.size()){ + conn.SendNow(sendBuffer); + sendBuffer = ""; + sendReady.clear(); + } DTSCBuffer[currID].push_back(Strm.getPacket()); prevID = currID; }