Removed debug messages and compile warnings from ogg optimizes.

This commit is contained in:
Thulinma 2014-01-13 15:44:10 +01:00
parent 3f66afff24
commit 6e651f9e1b
2 changed files with 19 additions and 78 deletions

View file

@ -48,7 +48,7 @@ namespace Utils{
std::string data; std::string data;
private: private:
long long unsigned int readBuffer; long long unsigned int readBuffer;
int readBufferOffset; unsigned int readBufferOffset;
void fixData(); void fixData();
}; };
} }

View file

@ -173,94 +173,67 @@ namespace vorbis{
std::deque<mode> header::readModeDeque(char audioChannels){ std::deque<mode> header::readModeDeque(char audioChannels){
Utils::bitstreamLSBF stream; Utils::bitstreamLSBF stream;
stream.append(data,datasize); stream.append(data,datasize);
long long unsigned int beginsize = stream.size();
stream.skip(28); //skipping common header part stream.skip(28); //skipping common header part
stream.skip(28); //skipping common header part stream.skip(28); //skipping common header part
char codebook_count = stream.get(8) + 1; char codebook_count = stream.get(8) + 1;
//std::cerr << "Codebook Count: " << (int)codebook_count << std::endl;
for (int i = 0; i < codebook_count; i++){ for (int i = 0; i < codebook_count; i++){
//std::cerr << "codebook entry: " << i << std::endl;
long long unsigned int CMN = stream.get(24); long long unsigned int CMN = stream.get(24);
//std::cerr << " Codebook magic number: " << std::hex << CMN << std::dec << std::endl;
if (CMN != 0x564342){ if (CMN != 0x564342){
exit(1); exit(1);
} }
unsigned short codebook_dimensions = stream.get(16); unsigned short codebook_dimensions = stream.get(16);
unsigned int codebook_entries = stream.get(24); unsigned int codebook_entries = stream.get(24);
//std::cerr << " Codebook_dimensions, entries: "<< std::hex << codebook_dimensions << ", " <<codebook_entries << std::dec<< std::endl;
bool orderedFlag = stream.get(1); bool orderedFlag = stream.get(1);
//std::cerr << " Ordered Flag: " << orderedFlag << std::endl;
if (!orderedFlag){ if (!orderedFlag){
bool sparseFlag = stream.get(1); bool sparseFlag = stream.get(1);
//std::cerr << " Sparse Flag: " << sparseFlag << std::endl;
if (sparseFlag){//sparse flag if (sparseFlag){//sparse flag
//sparse handling //sparse handling
for (int o = 0; o < codebook_entries; o++){ for (unsigned int o = 0; o < codebook_entries; o++){
if (stream.get(1)){ if (stream.get(1)){
//long long unsigned int length = stream.get(5)+1;
//std::cerr << " codeword length: "<< length <<std::endl;
stream.skip(5); stream.skip(5);
} }
} }
//exit(1);
}else{ }else{
for (int o = 0; o < codebook_entries; o++){ for (unsigned int o = 0; o < codebook_entries; o++){
//long long unsigned int length = stream.get(5)+1;
//std::cerr << " codeword length: "<< length <<std::endl;
stream.skip(5); stream.skip(5);
} }
} }
}else{ }else{
//ordered handling //ordered handling
//std::cerr << "WARNING: Ordered codebook decoding in vorbis setup header NOT tested!" << std::endl; stream.skip(5);
long long unsigned int length = stream.get(5) + 1; for (unsigned int o = 0; o < codebook_entries; o++){
for (int o = 0; o < codebook_entries; o++){
int readnow = (std::log(codebook_entries-o))/(std::log(2))+1; int readnow = (std::log(codebook_entries-o))/(std::log(2))+1;
//std::cerr << " Read amount of bits: " << readnow << ";" << codebook_entries-o << std::endl;
o+=stream.get(readnow); o+=stream.get(readnow);
} }
//exit(2);
} }
char codebook_lookup_type = stream.get(4); char codebook_lookup_type = stream.get(4);
//std::cerr << " codebook_lookup_type: " <<std::hex<< (int)codebook_lookup_type <<std::dec << std::endl;
if (codebook_lookup_type != 0){ if (codebook_lookup_type != 0){
stream.skip(32); stream.skip(32);
stream.skip(32); stream.skip(32);
char codebook_value_bits = stream.get(4) + 1; char codebook_value_bits = stream.get(4) + 1;
//std::cerr << " codebook_value_bits: " << (int)codebook_value_bits << std::endl; stream.skip(1);
bool codebook_sequence_flag = stream.get(1);
unsigned int codebook_lookup_value; unsigned int codebook_lookup_value;
if (codebook_lookup_type == 1){ if (codebook_lookup_type == 1){
codebook_lookup_value = std::pow(codebook_entries, (1.0/codebook_dimensions)); codebook_lookup_value = std::pow(codebook_entries, (1.0/codebook_dimensions));
//std::cerr << " std::pow(" << codebook_entries << ", (1/" << codebook_dimensions << ")) =";
}else{ }else{
codebook_lookup_value = codebook_entries * codebook_dimensions; codebook_lookup_value = codebook_entries * codebook_dimensions;
//std::cerr << " " << codebook_entries << " * " << codebook_dimensions << " = ";
} }
//std::cerr << " codebook_lookup_value: " << codebook_lookup_value << std::endl << " "; for (unsigned int i = 0; i < codebook_lookup_value; i++){
for (int i = 0; i < codebook_lookup_value; i++){
//(int)stream.get(codebook_value_bits) << " ";
stream.skip(codebook_value_bits); stream.skip(codebook_value_bits);
} }
//std::cerr << std::endl;
} }
} }
//end of codebooks //end of codebooks
//std::cerr << "bits in to time domain transforms: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
//time domain transforms //time domain transforms
long long unsigned int TDT = stream.get(6) + 1; long long unsigned int TDT = stream.get(6) + 1;
//std::cerr << "Time domain Transforms: " << TDT << std::endl; for (unsigned int i = 0; i < TDT; i++){
for (int i = 0; i < TDT; i++){
stream.skip(16); stream.skip(16);
} }
//std::cerr << "bits in to floors: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
//Floors //Floors
long long unsigned int floors = stream.get(6) + 1; long long unsigned int floors = stream.get(6) + 1;
//std::cerr << "Floors: " << floors << std::endl; for (unsigned int i = 0; i < floors; i++){
for (int i = 0; i < floors; i++){
long long unsigned int floorType = stream.get(16); long long unsigned int floorType = stream.get(16);
//std::cerr << "FloorType: " << floorType << std::endl;
switch(floorType){ switch(floorType){
case 0:{ case 0:{
std::cerr << "WARNING: FloorType 0 in vorbis setup header not tested!" << std::endl; std::cerr << "WARNING: FloorType 0 in vorbis setup header not tested!" << std::endl;
@ -270,7 +243,7 @@ namespace vorbis{
stream.skip(6);//amplitude bits stream.skip(6);//amplitude bits
stream.skip(8);//amplitude offset stream.skip(8);//amplitude offset
long long unsigned int numberOfBooks = stream.get(4)+1; long long unsigned int numberOfBooks = stream.get(4)+1;
for (int o = 0; o < numberOfBooks; o++){ for (unsigned int o = 0; o < numberOfBooks; o++){
stream.skip(8);//book list array stream.skip(8);//book list array
} }
break; break;
@ -278,19 +251,15 @@ namespace vorbis{
case 1:{ case 1:{
long long unsigned int floorPartitions = stream.get(5); long long unsigned int floorPartitions = stream.get(5);
long long int max = -1; long long int max = -1;
//std::cerr << " floorPartitions: " << floorPartitions << std::endl;
std::deque<int> partition_class; std::deque<int> partition_class;
for (int o = 0; o < floorPartitions; o++){ for (unsigned int o = 0; o < floorPartitions; o++){
long long int temp = stream.get(4); long long int temp = stream.get(4);
partition_class.push_back(temp); partition_class.push_back(temp);
//std::cerr << " partition_class: " << temp << std::endl;
if (temp>max) max = temp; if (temp>max) max = temp;
} }
std::deque<int> class_dimensions; std::deque<int> class_dimensions;
//std::cerr << " Max: " << max << std::endl;
for (int o = 0; o <= max; o++){ for (int o = 0; o <= max; o++){
class_dimensions.push_back(stream.get(3)+1);//class dimensions PUT IN ARRAY! class_dimensions.push_back(stream.get(3)+1);//class dimensions PUT IN ARRAY!
//std::cerr << " class dimension: " << class_dimensions.back() << std::endl;
int class_subclass = stream.get(2); int class_subclass = stream.get(2);
if (class_subclass !=0){ if (class_subclass !=0){
stream.skip(8);//class_master_books stream.skip(8);//class_master_books
@ -301,17 +270,14 @@ namespace vorbis{
} }
stream.skip(2);//floor1_multiplier stream.skip(2);//floor1_multiplier
int rangebits = stream.get(4);//rangebits int rangebits = stream.get(4);//rangebits
//std::cerr << " rangebits: " << rangebits << std::endl;
long long unsigned int count = 0; long long unsigned int count = 0;
long long unsigned int skipper = 0; long long unsigned int skipper = 0;
for (int o = 0; o < floorPartitions; o++){ for (unsigned int o = 0; o < floorPartitions; o++){
count += class_dimensions[(partition_class[o])]; count += class_dimensions[(partition_class[o])];
//std::cerr << " count: " << count << std::endl << " ";
while (skipper < count){ while (skipper < count){
stream.skip(rangebits); stream.skip(rangebits);
skipper ++; skipper ++;
} }
//std::cerr << std::endl;
} }
break; break;
} }
@ -319,55 +285,42 @@ namespace vorbis{
exit(0); exit(0);
} }
} }
//std::cerr << "bits in to Residues: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
//Residues //Residues
long long unsigned int residues = stream.get(6) + 1; long long unsigned int residues = stream.get(6) + 1;
//std::cerr << "Residue count: " << residues << std::endl; for(unsigned int i = 0; i < residues; i++){
for(int i = 0; i < residues; i++){
std::deque<char> residueCascade; std::deque<char> residueCascade;
long long unsigned int residueType = stream.get(16); long long unsigned int residueType = stream.get(16);
//std::cerr << "ResidueType: " << residueType << std::endl;
if(residueType<=2){ if(residueType<=2){
stream.skip(24);//residue begin stream.skip(24);//residue begin
stream.skip(24);//residue end stream.skip(24);//residue end
stream.skip(24);//residue partition size stream.skip(24);//residue partition size
long long unsigned int residueClass = stream.get(6)+1;//residue classifications long long unsigned int residueClass = stream.get(6)+1;//residue classifications
//std::cerr<< " ResidueCLassification: " << residueClass << std::endl;
stream.skip(8);//residue classbook stream.skip(8);//residue classbook
for (int o = 0; o < residueClass; o++){ for (unsigned int o = 0; o < residueClass; o++){
char temp = stream.get(3);//low bits char temp = stream.get(3);//low bits
bool bitFlag = stream.get(1); bool bitFlag = stream.get(1);
//std::cerr << " bitFlag: " << bitFlag << std::endl;
if (bitFlag){ if (bitFlag){
temp += stream.get(5) << 3; temp += stream.get(5) << 3;
} }
//std::cerr << " temp: " << (int)temp << std::endl;
residueCascade.push_back(temp); residueCascade.push_back(temp);
} }
for (int o = 0; o < residueClass; o++){ for (unsigned int o = 0; o < residueClass; o++){
//std::cerr << " "; for (unsigned int p = 0; p < 7; p++){
for (int p = 0; p < 7; p++){
if (((residueCascade[o] >> p) & 1) == 1){ if (((residueCascade[o] >> p) & 1) == 1){
//std::cerr << "1";
stream.skip(8); stream.skip(8);
}else{ }else{
//std::cerr << "0";
} }
} }
//std::cerr << std::endl;
} }
}else{ }else{
exit(0); exit(0);
} }
} }
//std::cerr << "bits in to Mappings: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
//Mappings //Mappings
long long unsigned int mappings = stream.get(6) + 1; long long unsigned int mappings = stream.get(6) + 1;
//std::cerr << "Mapping count: " << mappings << std::endl; for(unsigned int i = 0; i < mappings; i++){
for(int i = 0; i < mappings; i++){
long long unsigned int mapType = stream.get(16); long long unsigned int mapType = stream.get(16);
//std::cerr << "MapType: " << mapType << std::endl;
if (mapType == 0){ if (mapType == 0){
char mappingSubmaps = 1; char mappingSubmaps = 1;
if (stream.get(1)==1){ if (stream.get(1)==1){
@ -376,11 +329,8 @@ namespace vorbis{
long long unsigned int coupling_steps = 0; long long unsigned int coupling_steps = 0;
if (stream.get(1)==1){ if (stream.get(1)==1){
coupling_steps = stream.get(8)+1; coupling_steps = stream.get(8)+1;
//std::cerr << " coupling steps: " << coupling_steps << std::endl; for (unsigned int o = 0; o<coupling_steps; o++){
//std::cerr << " AudioChannels: " << (int)audioChannels << std::endl;
for (int o = 0; o<coupling_steps; o++){
int temp = (std::log((audioChannels-o)-1))/(std::log(2)) + 1; int temp = (std::log((audioChannels-o)-1))/(std::log(2)) + 1;
//std::cerr << " ilogAudioChannels: " << temp << std::endl;
if (temp>0){ if (temp>0){
stream.skip(temp);//mapping magnitude stream.skip(temp);//mapping magnitude
stream.skip(temp);//mapping angle stream.skip(temp);//mapping angle
@ -392,7 +342,6 @@ namespace vorbis{
std::cerr << " Sanity Check ==0 : " << (int)meh << std::endl; std::cerr << " Sanity Check ==0 : " << (int)meh << std::endl;
exit(0); exit(0);
} }
//std::cerr << " Mapping Submaps: " << mappingSubmaps << std::endl;
if (mappingSubmaps > 1){ if (mappingSubmaps > 1){
for (int o = 0; o < audioChannels; o++){ for (int o = 0; o < audioChannels; o++){
stream.skip(4); stream.skip(4);
@ -409,25 +358,17 @@ namespace vorbis{
} }
} }
//Modes //Modes
//std::cerr << "bits in to Modes: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
long long unsigned int modes = stream.get(6) + 1; long long unsigned int modes = stream.get(6) + 1;
//std::cerr << "Mode count: " << modes << std::endl;
std::deque<mode> retVal; std::deque<mode> retVal;
for (int i = 0; i < modes; i++){ for (unsigned int i = 0; i < modes; i++){
mode temp; mode temp;
temp.blockFlag = stream.get(1); temp.blockFlag = stream.get(1);
//std::cerr << " blockFlag: " << temp.blockFlag << std::endl;
temp.windowType = stream.get(16); temp.windowType = stream.get(16);
//std::cerr << " windowType: " << temp.windowType << std::endl;
temp.transformType = stream.get(16); temp.transformType = stream.get(16);
//std::cerr << " transformType: " << temp.transformType << std::endl;
temp.mapping = stream.get(8); temp.mapping = stream.get(8);
//std::cerr << " mapping: " << (int)temp.mapping << std::endl;
retVal.push_back(temp); retVal.push_back(temp);
} }
//std::cerr << "Ending Bitflag (!=0): " << stream.get(1) << std::endl;
stream.skip(1); stream.skip(1);
//std::cerr << "bits left: " << (beginsize-stream.size()) << ", " << stream.size() << std::endl;
return retVal; return retVal;
} }