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){
|
||||
dataSum = 0;
|
||||
datasize = 0;
|
||||
//datasize = 0;
|
||||
if (newData.size()<27){
|
||||
return false;
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ namespace OGG{
|
|||
return false;
|
||||
}
|
||||
memcpy(data + 27 + getPageSegments(), newData.c_str() + 27 + getPageSegments(), dataSum);
|
||||
newData.erase(0, datasize);
|
||||
newData.erase(0, getPageSize());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -167,13 +167,17 @@ namespace OGG{
|
|||
}
|
||||
}
|
||||
|
||||
unsigned long int Page::getPageSize(){
|
||||
return 27 + getPageSegments()+dataSum;
|
||||
}
|
||||
|
||||
char* Page::getFullPayload(){
|
||||
return data + 27 + getPageSegments();
|
||||
}
|
||||
|
||||
std::string Page::toPrettyString(){
|
||||
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 << "Version: " << (int)getVersion() << std::endl;
|
||||
r << "Header_type: " << std::hex << (int)getHeaderType() << std::dec;
|
||||
|
@ -224,7 +228,7 @@ namespace OGG{
|
|||
long unsigned int retVal = 0;
|
||||
long unsigned int oldChecksum = getCRCChecksum();
|
||||
setCRCChecksum (0);
|
||||
retVal = Compute(data, datasize);
|
||||
retVal = Compute(data, getPageSize());
|
||||
setCRCChecksum (oldChecksum);
|
||||
return retVal;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,10 @@ namespace OGG{
|
|||
std::deque<unsigned int> getSegmentTableDeque();
|
||||
bool setSegmentTable(std::vector<unsigned int> layout);
|
||||
void setSegmentTable(char* newVal, unsigned int length);
|
||||
unsigned long int getPageSize();
|
||||
char* getFullPayload();
|
||||
char* getSegment(long unsigned int);
|
||||
|
||||
std::string toPrettyString();
|
||||
private:
|
||||
long unsigned int calcChecksum();
|
||||
|
|
Loading…
Add table
Reference in a new issue