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
		Add a link
		
	
		Reference in a new issue
	
	 Oswald Auguste de Bruin
						Oswald Auguste de Bruin