DTSC to ogg comitted. Now REALLY fully working
This commit is contained in:
parent
0fbaf42b25
commit
4020835ed5
1 changed files with 27 additions and 3 deletions
|
@ -63,15 +63,18 @@ namespace Converters{
|
||||||
long long int prevID = DTSCFile.getJSON()["trackid"].asInt();
|
long long int prevID = DTSCFile.getJSON()["trackid"].asInt();
|
||||||
long long int prevGran = DTSCFile.getJSON()["granule"].asInt();
|
long long int prevGran = DTSCFile.getJSON()["granule"].asInt();
|
||||||
bool OggEOS = false;
|
bool OggEOS = false;
|
||||||
//bool IDChange = false;
|
bool OggCont = false;
|
||||||
//bool GranChange = false;
|
bool IDChange = false;
|
||||||
|
bool GranChange = false;
|
||||||
std::string pageBuffer;
|
std::string pageBuffer;
|
||||||
|
|
||||||
while(DTSCFile.getJSON()){
|
while(DTSCFile.getJSON()){
|
||||||
if(DTSCFile.getJSON()["trackid"].asInt()!=prevID || DTSCFile.getJSON()["granule"].asInt()!=prevGran){
|
if(DTSCFile.getJSON()["trackid"].asInt()!=prevID || DTSCFile.getJSON()["granule"].asInt()!=prevGran){
|
||||||
curOggPage.clear();
|
curOggPage.clear();
|
||||||
curOggPage.setVersion();
|
curOggPage.setVersion();
|
||||||
if (OggEOS){
|
if (OggCont){
|
||||||
|
curOggPage.setHeaderType(1);//headertype 1 = Continue Page
|
||||||
|
}else if (OggEOS){
|
||||||
curOggPage.setHeaderType(4);//headertype 4 = end of stream
|
curOggPage.setHeaderType(4);//headertype 4 = end of stream
|
||||||
}else{
|
}else{
|
||||||
curOggPage.setHeaderType(0);//headertype 0 = normal
|
curOggPage.setHeaderType(0);//headertype 0 = normal
|
||||||
|
@ -97,8 +100,29 @@ namespace Converters{
|
||||||
}else{
|
}else{
|
||||||
OggEOS=false;
|
OggEOS=false;
|
||||||
}
|
}
|
||||||
|
if (DTSCFile.getJSON()["OggCont"]){
|
||||||
|
OggCont=true;
|
||||||
|
}else{
|
||||||
|
OggCont=false;
|
||||||
|
}
|
||||||
DTSCFile.parseNext();
|
DTSCFile.parseNext();
|
||||||
}
|
}
|
||||||
|
//quick copy-paste fix to output the last ogg page
|
||||||
|
curOggPage.clear();
|
||||||
|
curOggPage.setVersion();
|
||||||
|
curOggPage.setHeaderType(4);//headertype 4 = end of stream
|
||||||
|
curOggPage.setGranulePosition(prevGran);
|
||||||
|
curOggPage.setBitstreamSerialNumber(DTSCID2OGGSerial[prevID]);
|
||||||
|
curOggPage.setPageSequenceNumber(DTSCID2seqNum[prevID]++);
|
||||||
|
curOggPage.setSegmentTable(curSegTable);
|
||||||
|
curOggPage.setPayload((char*)pageBuffer.c_str(), pageBuffer.size());
|
||||||
|
curOggPage.setCRCChecksum(curOggPage.calcChecksum());
|
||||||
|
std::cout << std::string(curOggPage.getPage(), curOggPage.getPageSize());
|
||||||
|
pageBuffer = "";
|
||||||
|
curSegTable.clear();
|
||||||
|
//write one pagebuffer as Ogg page
|
||||||
|
//end quick fix
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue