OGG full readout possible
This commit is contained in:
parent
e3861f9fc6
commit
b600d6b603
2 changed files with 11 additions and 4 deletions
12
lib/ogg.cpp
12
lib/ogg.cpp
|
@ -15,7 +15,7 @@ namespace OGG{
|
||||||
|
|
||||||
bool Page::read(std::string & newData){
|
bool Page::read(std::string & newData){
|
||||||
dataSum = 0;
|
dataSum = 0;
|
||||||
datasize = 0;
|
//datasize = 0;
|
||||||
if (newData.size()<27){
|
if (newData.size()<27){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ namespace OGG{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
memcpy(data + 27 + getPageSegments(), newData.c_str() + 27 + getPageSegments(), dataSum);
|
memcpy(data + 27 + getPageSegments(), newData.c_str() + 27 + getPageSegments(), dataSum);
|
||||||
newData.erase(0, datasize);
|
newData.erase(0, getPageSize());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,13 +167,17 @@ namespace OGG{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned long int Page::getPageSize(){
|
||||||
|
return 27 + getPageSegments()+dataSum;
|
||||||
|
}
|
||||||
|
|
||||||
char* Page::getFullPayload(){
|
char* Page::getFullPayload(){
|
||||||
return data + 27 + getPageSegments();
|
return data + 27 + getPageSegments();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Page::toPrettyString(){
|
std::string Page::toPrettyString(){
|
||||||
std::stringstream r;
|
std::stringstream r;
|
||||||
r << "Size(" << datasize << ")(" << dataSum << ")" << std::endl;
|
r << "Size(" << getPageSize() << ")(" << dataSum << ")" << std::endl;
|
||||||
r << "Magic_Number: " << std::string(data, 4) << std::endl;
|
r << "Magic_Number: " << std::string(data, 4) << std::endl;
|
||||||
r << "Version: " << (int)getVersion() << std::endl;
|
r << "Version: " << (int)getVersion() << std::endl;
|
||||||
r << "Header_type: " << std::hex << (int)getHeaderType() << std::dec;
|
r << "Header_type: " << std::hex << (int)getHeaderType() << std::dec;
|
||||||
|
@ -224,7 +228,7 @@ namespace OGG{
|
||||||
long unsigned int retVal = 0;
|
long unsigned int retVal = 0;
|
||||||
long unsigned int oldChecksum = getCRCChecksum();
|
long unsigned int oldChecksum = getCRCChecksum();
|
||||||
setCRCChecksum (0);
|
setCRCChecksum (0);
|
||||||
retVal = Compute(data, datasize);
|
retVal = Compute(data, getPageSize());
|
||||||
setCRCChecksum (oldChecksum);
|
setCRCChecksum (oldChecksum);
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,10 @@ namespace OGG{
|
||||||
std::deque<unsigned int> getSegmentTableDeque();
|
std::deque<unsigned int> getSegmentTableDeque();
|
||||||
bool setSegmentTable(std::vector<unsigned int> layout);
|
bool setSegmentTable(std::vector<unsigned int> layout);
|
||||||
void setSegmentTable(char* newVal, unsigned int length);
|
void setSegmentTable(char* newVal, unsigned int length);
|
||||||
|
unsigned long int getPageSize();
|
||||||
char* getFullPayload();
|
char* getFullPayload();
|
||||||
|
char* getSegment(long unsigned int);
|
||||||
|
|
||||||
std::string toPrettyString();
|
std::string toPrettyString();
|
||||||
private:
|
private:
|
||||||
long unsigned int calcChecksum();
|
long unsigned int calcChecksum();
|
||||||
|
|
Loading…
Add table
Reference in a new issue